Compare commits

...

5040 Commits

Author SHA1 Message Date
DarkPhoenix
87fd358c4e Bump version 2024-12-05 15:08:54 +01:00
Anton Vorobyov
0f4b082b4b Merge pull request #2629 from cryonox/dev/issue2121
Fix wxWidget crash caused by GDI object limit
2024-12-05 13:20:53 +01:00
DarkPhoenix
59847c3756 Update for today's patch 2024-12-05 13:16:56 +01:00
DarkPhoenix
b5d3dc6d56 Bump version 2024-11-28 17:28:21 +01:00
DarkPhoenix
3500867336 Revert wxpython version bump 2024-11-27 23:41:29 +01:00
Anton Vorobyov
ea26d57566 Merge pull request #2635 from wereii/fix-syntax-warnings
Fix invalid escape syntax warnings
2024-11-27 23:38:15 +01:00
Anton Vorobyov
45f0743c57 Merge branch 'master' into fix-syntax-warnings 2024-11-27 23:37:50 +01:00
DarkPhoenix
08d4e852d3 Fix comparison issue which broke graphs in some cases 2024-11-27 23:25:49 +01:00
Anton Vorobyov
7edf1f93cb Merge pull request #2631 from ugurilter/master
fix arbitrary content being dragged and dropped causing errors
2024-11-26 19:59:08 +01:00
DarkPhoenix
31cfa7c93a Bump version 2024-11-26 19:17:50 +01:00
DarkPhoenix
da1d42b578 Fix drone sorter for EFT export 2024-11-26 19:16:44 +01:00
DarkPhoenix
502e5a8d8e Update static data 2024-11-26 19:03:00 +01:00
DarkPhoenix
087867bdca Update static data and icons 2024-11-14 14:12:20 +01:00
DarkPhoenix
86ad17b075 Expand breacher tooltip 2024-11-13 15:37:40 +01:00
DarkPhoenix
b8ad4772b8 Bump version 2024-11-13 12:32:24 +01:00
DarkPhoenix
e0e5be5870 Change tooltip 2024-11-13 12:32:07 +01:00
DarkPhoenix
8b2f7c56db Update effects 2024-11-13 12:30:51 +01:00
DarkPhoenix
0ca1a675c2 Update static data 2024-11-13 12:30:28 +01:00
DarkPhoenix
6a0bfce262 Expand radius tooltip 2024-11-13 11:02:02 +01:00
DarkPhoenix
362aebe658 Increase size of inputs 2024-11-13 10:35:09 +01:00
DarkPhoenix
bbe3e931f7 Bump wxpython version 2024-11-13 05:58:11 +01:00
DarkPhoenix
f5743af6a4 Cache calculated values 2024-11-13 05:57:05 +01:00
DarkPhoenix
dbc2993fb9 Support inflicted damage for breachers 2024-11-13 05:35:41 +01:00
DarkPhoenix
219173c43e A few fixes for breachers on graphs 2024-11-13 05:13:37 +01:00
DarkPhoenix
6074cfe15a Rework damage stats calculation to always expose full breacher info 2024-11-13 04:37:15 +01:00
DarkPhoenix
f0a72f4307 Add full HP parameter to graphs (for now, unused) 2024-11-12 17:14:52 +01:00
DarkPhoenix
ecc3f9fa7e Add base support for breacher pods to graphs 2024-11-12 16:58:18 +01:00
DarkPhoenix
c660e4058c Fix graphs 2024-11-12 14:49:52 +01:00
DarkPhoenix
7664b00b59 Minor fixes 2024-11-12 14:45:41 +01:00
DarkPhoenix
5721beacf5 Expose breacher DPS and volley to stats 2024-11-12 14:20:20 +01:00
DarkPhoenix
13f3793515 Implement breacher logic on module level 2024-11-11 21:17:32 +01:00
DarkPhoenix
f8e0520344 Add HP value to target profile editor 2024-11-11 15:07:40 +01:00
DarkPhoenix
2c8e306dc2 Add HP field to target profile 2024-11-11 14:34:38 +01:00
DarkPhoenix
7c37d8fd74 Add a few bits to breacher volley calculation 2024-11-11 14:12:06 +01:00
DarkPhoenix
88129c0df4 Do not choke on mutated drones in drone panel, since they lost market group 2024-11-10 12:10:10 +01:00
DarkPhoenix
fa67efd9cb Revert wxpython version change, since binary wheels seem to be unavailable for it yet 2024-11-09 23:54:00 +01:00
DarkPhoenix
38a345df93 Allow release info change on linux 2024-11-09 17:29:53 +01:00
DarkPhoenix
b41ec8a5a9 Bump version 2024-11-09 16:45:26 +01:00
DarkPhoenix
4ba9bb7b99 Add info to misc column 2024-11-09 16:37:46 +01:00
DarkPhoenix
f3c8f485b9 Implement breacher pod skill effects 2024-11-09 12:01:28 +01:00
DarkPhoenix
8d204dd173 Add deathless faction icon 2024-11-09 11:37:24 +01:00
DarkPhoenix
f870d7e6d2 Add effects for new ships 2024-11-09 11:28:29 +01:00
DarkPhoenix
715997041a Update icons 2024-11-09 09:23:19 +01:00
DarkPhoenix
003191d9a4 Update effects for everything but new ships 2024-11-09 09:21:48 +01:00
DarkPhoenix
9302d79e1d Sort glorified mutaplasmids right after their base versions, and shorten them to Gl. 2024-11-09 09:04:18 +01:00
DarkPhoenix
401fc671d4 Fix a few regex warnings 2024-11-09 08:40:55 +01:00
DarkPhoenix
fbadcf0af6 Update static data 2024-11-09 08:28:44 +01:00
DarkPhoenix
c7f600f88c Bump wxpython version 2024-11-02 08:15:33 +01:00
DarkPhoenix
229dd0ddae Fix sorter for structure fighters 2024-11-02 08:15:21 +01:00
DarkPhoenix
8883b18025 Bump version 2024-10-31 00:50:26 +01:00
DarkPhoenix
ea9b67cedd Implement python effects 2024-10-31 00:50:08 +01:00
DarkPhoenix
c4cf1d1ecb Implement Cobra effects 2024-10-31 00:32:50 +01:00
DarkPhoenix
f76f7e85db Add ability to override character security status via a menu 2024-10-31 00:08:31 +01:00
DarkPhoenix
b807e2a36b Add on-fit pilot security attribute, and use it in effects 2024-10-30 20:09:26 +01:00
DarkPhoenix
2bb35a15ce Change lower limit of SS to be -10 instead of -5 2024-10-30 19:12:19 +01:00
DarkPhoenix
376bda7a94 Implement sidewinder effects 2024-10-30 19:10:25 +01:00
DarkPhoenix
a642bdc8c9 Move prize ships to separate category 2024-10-30 18:16:14 +01:00
DarkPhoenix
71f3e7b858 Update icons 2024-10-30 18:12:47 +01:00
DarkPhoenix
88f5ed2da5 Update staticdata 2024-10-30 18:04:41 +01:00
DarkPhoenix
3b9bbae0c3 Bump version 2024-10-03 13:37:54 +02:00
DarkPhoenix
6d474492ea Update effects file 2024-10-03 13:37:25 +02:00
DarkPhoenix
ebc61efef8 Update static data 2024-10-03 13:28:30 +02:00
Ugur Ilter
3892dfc78c fix arbitrary content being dragged and dropped causing errors
Fixes #2630
2024-09-26 15:52:26 +03:00
DarkPhoenix
7b5c95213f Bump version 2024-09-18 13:54:33 +02:00
DarkPhoenix
1312177e0e Add new renames 2024-09-18 13:42:53 +02:00
DarkPhoenix
5b0df0a9c3 Update static data to 2682489 2024-09-18 13:33:03 +02:00
wereii
954a164922 Fix invalid escape syntax warnings
Additionally use rawstrings with all regex calls
2024-09-11 17:25:38 +02:00
DarkPhoenix
1ea6136cb2 Update static data 2024-09-11 16:32:13 +02:00
DarkPhoenix
da2b6bbb6d Bump version 2024-09-10 00:01:40 +02:00
DarkPhoenix
87007af5f8 Pass package path to importlib call, not module path 2024-09-09 23:35:07 +02:00
DarkPhoenix
dd5ab872b1 Reapply "Make it 3.9+, but get rid of deprecation warnings"
This reverts commit 65fb46885a.
2024-09-09 23:31:19 +02:00
DarkPhoenix
65fb46885a Revert "Make it 3.9+, but get rid of deprecation warnings"
This reverts commit 01354a0a83.
2024-09-09 23:00:24 +02:00
DarkPhoenix
fad1e401b2 Bump version 2024-09-09 20:25:02 +02:00
DarkPhoenix
d59f8afd8a Update icons 2024-09-09 20:24:33 +02:00
DarkPhoenix
7c42d00219 Update static data 2024-09-09 20:20:44 +02:00
cryonox
32fd38ad7c Fix wxWidget crash caused by GDI id limit 2024-08-15 17:50:41 +08:00
DarkPhoenix
777ba69ac4 Ensure context menus can be called on items w/o market group 2024-07-20 19:09:00 +02:00
DarkPhoenix
9a3bde872b Fix regex pattern to remove syntax warning 2024-07-09 23:23:49 +02:00
DarkPhoenix
01354a0a83 Make it 3.9+, but get rid of deprecation warnings 2024-07-09 21:49:05 +02:00
DarkPhoenix
8c3b8589d5 Adjust jargon loader to be py3.12-compatible 2024-07-09 21:46:39 +02:00
Anton Vorobyov
451b5d4312 Merge pull request #2624 from lunedis/feature/charges-for-fit
Add "Charges For Active Fit" market tree shortcut
2024-07-09 23:31:53 +04:00
Anton Vorobyov
d204e70afc Merge pull request #2614 from kgasiorowski/issue/2613
Rename Industrial to Hauler
2024-07-09 23:29:02 +04:00
Karl Werner
ce9ce17ad2 use mode to limit refresh 2024-07-07 14:41:16 +02:00
Karl Werner
6a7cdda91a add comments 2024-07-06 16:01:58 +02:00
Karl Werner
f38c61da51 update on fit change, new icon 2024-07-06 15:52:18 +02:00
Karl Werner
735827a25b proof of concept 2024-07-06 12:12:48 +02:00
DarkPhoenix
d3fcdcbe47 Marshal bonus is not stacking penalized 2024-06-29 23:50:03 +02:00
DarkPhoenix
a3dce73663 Update static data 2024-06-27 21:21:35 +02:00
Kuba Gasiorowski
594b58388f Merge branch 'master' into issue/2613 2024-06-14 18:40:49 -04:00
DarkPhoenix
fa6be2edfb Bump version 2024-06-13 16:20:49 +02:00
DarkPhoenix
1177968b02 Update renders 2024-06-13 16:20:29 +02:00
DarkPhoenix
c04b370410 Update static data 2024-06-13 16:15:45 +02:00
DarkPhoenix
038b95531d Bump version 2024-06-12 16:04:00 +02:00
DarkPhoenix
56bc5c3376 Fix icons script and add missing renders 2024-06-12 16:03:09 +02:00
DarkPhoenix
f5d8be7861 Update static data and add new effect 2024-06-12 15:11:15 +02:00
Kuba Gasiorowski
5366c23db2 Merge branch 'master' into issue/2613 2024-06-11 14:03:24 -04:00
DarkPhoenix
d147db22f1 Bump version 2024-06-11 16:33:10 +02:00
DarkPhoenix
28ebcd2739 Fix upwell ship race detection 2024-06-08 03:12:34 +02:00
DarkPhoenix
2f57eb6ea6 Bump version 2024-06-08 03:01:13 +02:00
DarkPhoenix
3a7ee4699e Update effects and related things 2024-06-08 03:00:45 +02:00
DarkPhoenix
fa7f991fae Update icons 2024-06-08 01:37:13 +02:00
DarkPhoenix
0be8b429aa Add renames 2024-06-08 01:19:22 +02:00
DarkPhoenix
7d94e2de7d Update static data to 2604967 2024-06-08 00:57:34 +02:00
Kuba Gasiorowski
6d32db5827 Rename Industrial to Hauler 2024-05-26 23:45:27 -04:00
DarkPhoenix
0fbb318d8a Bump version 2024-04-30 04:10:53 +06:00
DarkPhoenix
cd013e8287 Add new effects 2024-04-30 04:10:33 +06:00
DarkPhoenix
e667453c1e Add new icons 2024-04-30 03:59:25 +06:00
DarkPhoenix
24e2db0f88 Update static data to 2563119 2024-04-30 03:55:34 +06:00
DarkPhoenix
3c47f8c6bb Add OS version comments to windows manifest 2024-04-17 02:42:42 +06:00
DarkPhoenix
42c2b3f253 Bundle extra library with appimage 2024-04-16 22:16:35 +06:00
DarkPhoenix
71d6830ac0 Bundle extra library with appimage 2024-04-16 22:03:25 +06:00
DarkPhoenix
ac2fb01a7c Update icons 2024-04-16 21:32:17 +06:00
DarkPhoenix
fc66c212fc Bump version 2024-04-16 21:31:29 +06:00
DarkPhoenix
9625fafda7 Merge remote-tracking branch 'origin/master' 2024-04-16 21:21:46 +06:00
DarkPhoenix
6b1aca4306 Update static data to 2550121 2024-04-16 21:21:33 +06:00
Anton Vorobyov
fd5a094304 Merge pull request #2597 from josephdouce/patch-2
Searchable exportHtml.py
2024-02-28 20:10:02 +04:00
Joseph Douce
a3142ff62f Update exportHtml.py 2024-02-28 15:36:02 +00:00
Joseph Douce
58ebfd3643 Searchable exportHtml.py
added searchable fits
2024-02-28 15:33:18 +00:00
Anton Vorobyov
e272267842 Merge pull request #2596 from josephdouce/patch-1
Fix exportHtml.py
2024-02-28 19:25:20 +04:00
Joseph Douce
b0256542bc Fix exportHtml.py 2024-02-28 13:17:23 +00:00
DarkPhoenix
9b8fd24987 Update pot 2024-02-27 16:30:06 +06:00
DarkPhoenix
9c68889a6d Call SelectAll() after Fit() since that's what seems to be causing issues under windows 2024-02-27 08:15:39 +06:00
DarkPhoenix
a4ed6e8066 Move select all call earlier, to see which call breaks it on windows 2024-02-27 07:38:01 +06:00
DarkPhoenix
9fe8163a69 Select all text even later 2024-02-27 05:54:55 +06:00
DarkPhoenix
9f9b496726 Select all text even later 2024-02-27 05:30:03 +06:00
DarkPhoenix
3b8fa68a4c Bump version 2024-02-27 04:11:02 +06:00
DarkPhoenix
9f5a649b04 Change migration to include newly added constraints 2024-02-27 04:05:19 +06:00
DarkPhoenix
fb45736c14 Extend UNIQUE constraint by new server column, to avoid possible collisions 2024-02-27 03:36:43 +06:00
Anton Vorobyov
b8a58fc7a6 Merge pull request #2590 from huangzheng2016/master
Update the SSO Login for Serenity and Singularity server's player
2024-02-26 23:35:31 +04:00
DarkPhoenix
b04c521805 Make sure not to crash character editor during SSO init when char editor is opened 2024-02-27 01:18:01 +06:00
DarkPhoenix
526695fa9a Try setting size for graph input boxes as a workaround for wx bug 2024-02-27 00:30:19 +06:00
Anton Vorobyov
d6be77d107 Merge pull request #2589 from pyfa-org/dependabot/pip/cryptography-42.0.4
Bump cryptography from 42.0.2 to 42.0.4
2024-02-26 22:22:33 +04:00
DarkPhoenix
907da343b1 Rework how progress dialog is used 2024-02-27 00:04:44 +06:00
DarkPhoenix
3fadccc715 Select all after setting focus as an attempt to fix input box not selecting everything under windows 2024-02-26 06:25:07 +06:00
DarkPhoenix
82a912858f Fix items in market's item view 2024-02-26 04:45:18 +06:00
正汰
cc1fdddc0a Merge branch 'pyfa-org:master' into master 2024-02-23 02:50:41 +08:00
正汰
e314ecf887 Fix the esi problem for Serenity when setting 2024-02-23 02:48:54 +08:00
正汰
94b1c8b029 Fix the esi problem for Serenity when setting 2024-02-23 02:47:59 +08:00
正汰
6e3b7ff132 Fix the esi problem for Serenity when setting 2024-02-23 02:47:47 +08:00
正汰
ff14855808 Fix the esi problem for Serenity when setting 2024-02-23 02:47:27 +08:00
dependabot[bot]
4761857b84 Bump cryptography from 42.0.2 to 42.0.4
Bumps [cryptography](https://github.com/pyca/cryptography) from 42.0.2 to 42.0.4.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/42.0.2...42.0.4)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-21 20:48:49 +00:00
DarkPhoenix
bb53e75bfe Force light rack colors on windows regardless of OS theme 2024-02-21 03:04:36 +06:00
DarkPhoenix
cc146401b6 Bump version 2024-02-21 01:17:32 +06:00
DarkPhoenix
465e43ed45 Change how colors are defined and used 2024-02-21 00:28:21 +06:00
DarkPhoenix
f89a8a9f87 Make use of defined error color 2024-02-21 00:01:55 +06:00
DarkPhoenix
768c417c8e Add alternate colors for fitting pane (for dark mode on macos) 2024-02-21 00:00:44 +06:00
DarkPhoenix
494b6353b8 Fix icons script and update icons 2024-02-20 22:59:32 +06:00
DarkPhoenix
69ef7825af Add perl regexp lib to linux bundle 2024-02-20 22:20:52 +06:00
DarkPhoenix
e0a71754ce Merge remote-tracking branch 'origin/master' 2024-02-20 22:17:06 +06:00
DarkPhoenix
b959d9dd07 Fix mercoxit rig bonus 2024-02-20 22:15:54 +06:00
Anton Vorobyov
2c2455a644 Merge pull request #2573 from salartarium/master
update links
2024-02-20 20:09:39 +04:00
Anton Vorobyov
e2dbfb52e9 Merge pull request #2561 from m-sasha/abyssal-xml
Add mutation info to XML export/import.
2024-02-20 19:43:24 +04:00
Anton Vorobyov
612591b59b Merge pull request #2582 from pyfa-org/dependabot/pip/cryptography-42.0.2
Bump cryptography from 41.0.7 to 42.0.2
2024-02-20 19:36:03 +04:00
DarkPhoenix
3e00d5d4ae Add new effect 2024-02-20 21:18:37 +06:00
DarkPhoenix
539be1527b Clean up effects 2024-02-20 21:00:06 +06:00
DarkPhoenix
d00db1e167 Update static data to 2497879 2024-02-20 20:55:35 +06:00
dependabot[bot]
fc6d5fea48 Bump cryptography from 41.0.7 to 42.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 41.0.7 to 42.0.2.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/41.0.7...42.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-17 00:47:08 +00:00
salartarium
ecf4d6c0de Update upgrade4.py
update link
2024-01-15 05:21:38 -08:00
salartarium
f5f7f92166 Update upgrade25.py
update link, typos in comments
2024-01-15 05:20:26 -08:00
salartarium
f5d7e754a6 Update upgrade1.py
update link
2024-01-15 05:18:33 -08:00
正汰
be85080d8d Merge branch 'pyfa-org:master' into master 2024-01-12 11:00:13 +08:00
Alexander Maryanovsky
6ed34be118 Merge branch 'master' into abyssal-xml 2023-12-25 06:39:51 +02:00
Anton Vorobyov
59dceadfee Merge pull request #2475 from pyfa-org/crowdin_master
New Crowdin updates
2023-12-25 05:08:01 +04:00
Anton Vorobyov
2a74c779c8 Merge pull request #2558 from fruitchewy/dark-style
Improve AutoListCtrl legibility in dark mode
2023-12-25 05:07:36 +04:00
Alexander Maryanovsky
f63331454b Merge branch 'master' into abyssal-xml 2023-12-22 10:36:35 +02:00
DarkPhoenix
d105748348 When importing skills, import their prerequisites as well 2023-12-22 03:43:47 +06:00
Alexander Maryanovsky
cdd7077346 Merge branch 'master' into abyssal-xml 2023-12-21 22:49:06 +02:00
DarkPhoenix
f965497186 Fix tooltip 2023-12-21 10:03:06 +06:00
Alexander Maryanovsky
6b06b5b46c Add mutation info to XML export/import. 2023-12-20 16:51:59 +02:00
akauble
d1e19406d0 Style AutoListCtrl highlighting manually in dark mode 2023-12-12 23:45:16 -06:00
DarkPhoenix
2a3c586be6 Add VTS as a jargon entry 2023-12-12 01:56:59 +06:00
DarkPhoenix
23f014c32e Do not use system theme for ListCtrl under windows 2023-12-09 17:46:31 +06:00
DarkPhoenix
0ac6a14ebb Show salvage chance next to salvage drones too 2023-12-09 17:24:35 +06:00
DarkPhoenix
0dc2632fc4 Bump version 2023-12-08 22:58:39 +06:00
DarkPhoenix
fc43691275 Revert pyinstaller to 6.0.0 for windows 2023-12-08 21:48:09 +06:00
DarkPhoenix
21a9b779f3 Bump version 2023-12-07 19:27:18 +06:00
DarkPhoenix
b8dc55a3a6 Fix HTML export 2023-12-07 18:51:18 +06:00
DarkPhoenix
b7a5b33ff6 Ensure ints are passed to SetDeviceOrigin() 2023-12-06 22:47:59 +06:00
DarkPhoenix
3593d16bd1 Ensure ints are passed to Scale() 2023-12-06 21:19:00 +06:00
DarkPhoenix
57830fd5a5 Bump version 2023-12-06 08:58:33 +06:00
DarkPhoenix
313d793175 Remove debug print 2023-12-06 08:58:17 +06:00
DarkPhoenix
f8e20e23bb Restore debugging in pyfa 2023-12-06 08:35:53 +06:00
DarkPhoenix
1959681250 Attempt to workaround appimage builder issue 2023-12-06 08:35:32 +06:00
DarkPhoenix
0192c77df1 Give up on debugging XDG_DATA_DIRS since it's appimage-builder bug 2023-12-06 08:08:48 +06:00
DarkPhoenix
b709629d7b Try defining substitution without dollar sign 2023-12-06 07:28:07 +06:00
DarkPhoenix
3071aead5c Remove escaping from xdg variable 2023-12-06 06:55:11 +06:00
DarkPhoenix
3f2df69022 Add print to debug XDG issues 2023-12-06 06:35:49 +06:00
DarkPhoenix
e9a48817a7 Try to "escape" xdg variable 2023-12-06 05:30:36 +06:00
DarkPhoenix
ed19ea5f2f Downgrade pyinstaller 1 step 2023-12-06 04:51:33 +06:00
DarkPhoenix
19366a09b4 Exclude some icon resources from linux build 2023-12-06 04:51:14 +06:00
DarkPhoenix
f8f01cd63c Round numbers in calls to bitmaps 2023-12-06 04:19:34 +06:00
DarkPhoenix
21a0e2b9c5 Remove unused import 2023-12-06 02:59:20 +06:00
DarkPhoenix
0ba8ba33ef Append bundled share path to XDG_DATA_DIRS 2023-12-06 02:26:21 +06:00
DarkPhoenix
346184d06a Set default XDG_DATA_DIRS for linux build 2023-12-06 02:00:36 +06:00
DarkPhoenix
46fc9e65bb Do minor file cleanup 2023-12-06 01:44:28 +06:00
DarkPhoenix
2d51da4d02 Update pot file 2023-12-05 19:18:02 +06:00
DarkPhoenix
b5e77415cf Bump version 2023-12-05 18:34:14 +06:00
DarkPhoenix
4c75daf36c Add icons 2023-12-05 18:33:25 +06:00
DarkPhoenix
4a120b8abf Update static data and effects 2023-12-05 18:32:15 +06:00
DarkPhoenix
fc43510fbc Merge remote-tracking branch 'origin/master' 2023-12-05 17:46:03 +06:00
Anton Vorobyov
28c7ff54aa Merge pull request #2485 from kols/fix-proxy-proto-strip
fix proxy proto string strip
2023-12-05 15:11:23 +04:00
DarkPhoenix
89f1e0a126 Remove all the things which are handled by AppImage builder now 2023-12-05 16:36:09 +06:00
DarkPhoenix
b6ff1cada9 Pin current versions of dependencies 2023-12-05 16:17:10 +06:00
DarkPhoenix
cc0d6465d6 Do not crash on failure to fetch localization percentage 2023-12-05 15:31:18 +06:00
DarkPhoenix
c49a914584 Fix crowdin script error printing 2023-12-05 15:26:34 +06:00
DarkPhoenix
e6e6568571 Fix path to certificate bundle 2023-12-05 02:10:27 +06:00
DarkPhoenix
7120000202 Bundle svg image loader lib for linux 2023-12-05 01:36:52 +06:00
DarkPhoenix
c3f7078053 Bundle webkit lib for linux 2023-12-05 01:06:24 +06:00
DarkPhoenix
b70f02fa3e Bump version 2023-12-05 00:17:51 +06:00
DarkPhoenix
8d893ce648 Replace tiff/jpg libs by full GTK package 2023-12-05 00:01:10 +06:00
DarkPhoenix
c230480464 Do not modify package after it was built 2023-12-04 23:11:34 +06:00
DarkPhoenix
da7a4a2df0 Bundle certificates with AppImage 2023-12-04 17:28:18 +06:00
DarkPhoenix
62bde4b8c9 Bump version 2023-12-04 16:35:05 +06:00
DarkPhoenix
43967b70ae Add tiff lib 2023-12-04 15:58:21 +06:00
DarkPhoenix
782c007200 Add libjpeg dependency 2023-12-04 08:51:17 +06:00
DarkPhoenix
5812d333d9 Keep pyfa source in /opt/ 2023-12-04 08:36:00 +06:00
DarkPhoenix
c461bf469e Adjust path to artifact 2023-12-04 08:18:12 +06:00
DarkPhoenix
d5c8c92b48 Build linux binaries first 2023-12-04 08:08:47 +06:00
DarkPhoenix
1abffd6c5d Fix file extension 2023-12-04 08:08:00 +06:00
DarkPhoenix
a824cc5e48 Fix path to python, and disable debugging once again 2023-12-04 08:06:18 +06:00
DarkPhoenix
db7afffd65 Re-enable debugging again 2023-12-04 07:42:22 +06:00
DarkPhoenix
4d02a1292f A few minor fixes, and disable ssh 2023-12-04 07:16:12 +06:00
DarkPhoenix
00f72294d4 Fix variable name 2023-12-04 06:55:52 +06:00
DarkPhoenix
0d45be0597 Add missing dependency 2023-12-04 06:52:57 +06:00
DarkPhoenix
f60090fc79 Move lots of preprocessing out of appimg recipe (to support calculation of app version) 2023-12-04 06:39:28 +06:00
DarkPhoenix
713807df13 Get pip since provided python doesn't have it 2023-12-04 05:53:30 +06:00
DarkPhoenix
c020bd8898 More progress on linux build job 2023-12-04 05:29:11 +06:00
DarkPhoenix
39ee8586d4 Do build process using system interpreter, then install dependencies into bundled one 2023-12-04 04:59:04 +06:00
DarkPhoenix
653a1585dc Use appdir variable instead of "hardcoded" path 2023-12-04 04:03:01 +06:00
DarkPhoenix
2dcf011020 Move script to execute after runtime 2023-12-04 02:26:45 +06:00
DarkPhoenix
555e72a27a Another attempt to bundle python with appimg 2023-12-04 00:57:09 +06:00
DarkPhoenix
85e740d75a Add keys to repositories 2023-12-03 23:41:47 +06:00
DarkPhoenix
d604ed300a Fetch full repo right away 2023-12-03 22:15:05 +06:00
DarkPhoenix
3aea4e5f23 Remove empty section 2023-12-03 21:50:51 +06:00
DarkPhoenix
a54adddc74 Use python package from repo 2023-12-03 21:50:35 +06:00
DarkPhoenix
dda397fea3 Use AppDir variable instead of BuildDir 2023-12-03 17:03:31 +06:00
Anton Vorobyov
3cd718350e Merge pull request #2545 from Grange-Nagy/dep_facelift
fix infinite redraws on macos
2023-12-03 14:01:38 +04:00
Grange Nagy
e87860a700 Merge branch 'pyfa-org:dep_facelift' into dep_facelift 2023-12-03 02:24:54 -05:00
Grange Nagy
451d21eaa0 let go of drag object 2023-12-03 02:24:13 -05:00
Grange Nagy
718f9ef859 allow fit drag bmp to be smaller 2023-12-03 02:18:51 -05:00
Grange Nagy
193adc4ba5 fix fit drag bitmap causing redraws on macos 2023-12-03 01:47:32 -05:00
Grange Nagy
cdfa52e9ed remove drag rendering entirely for now 2023-12-02 21:53:31 -05:00
Anton Vorobyov
2752b288ad Merge pull request #2544 from Grange-Nagy/dep_facelift
fix runtime bitmap scaling error on macos sonoma
2023-12-03 06:49:06 +04:00
DarkPhoenix
8dce968780 Add one dependency just to detect bundle arch 2023-12-03 08:46:12 +06:00
Grange Nagy
b889da7e68 fix runtime bitmap scaling error on mac 2023-12-02 18:09:02 -05:00
DarkPhoenix
0dd7dea708 More work on new appimage build process 2023-12-02 11:16:31 +06:00
DarkPhoenix
8af1c8da7d Add script which extracts config values 2023-12-02 01:09:46 +06:00
DarkPhoenix
8d4f83156d Strip python appimage from linux build 2023-12-01 18:44:46 +06:00
DarkPhoenix
798bdf3fe0 Enable SSH for debugging 2023-12-01 17:25:42 +06:00
DarkPhoenix
a7cf4aab76 Specify architecture 2023-12-01 03:43:36 +06:00
DarkPhoenix
d910e324f3 Specify apt architecture 2023-12-01 01:49:01 +06:00
DarkPhoenix
d800db5ccb Do not specify package name 2023-12-01 00:56:56 +06:00
DarkPhoenix
6c5d0a3e4f Try to make use of AppImageBuilder for linux 2023-12-01 00:41:00 +06:00
DarkPhoenix
9389a0421f Merge branch 'master' into dep_facelift 2023-12-01 00:13:09 +06:00
DarkPhoenix
6f3ab6cee8 Remove evemarketer price source, add evetycoon 2023-12-01 00:11:50 +06:00
DarkPhoenix
258dcd49a0 Merge branch 'master' into dep_facelift 2023-11-30 23:05:34 +06:00
DarkPhoenix
5f0320d1e3 Bump version 2023-11-30 22:59:01 +06:00
DarkPhoenix
54052899f9 Add new suppression effect as dark code (looks like it's not active yet) 2023-11-30 22:58:22 +06:00
DarkPhoenix
eda53e9318 Merge branch 'master' into dep_facelift 2023-11-30 22:32:43 +06:00
DarkPhoenix
4d8a891fd8 Update effects 2023-11-30 22:32:04 +06:00
DarkPhoenix
2d4b97afe6 Update renders 2023-11-30 17:55:01 +06:00
DarkPhoenix
49d1ec17e8 Update static data to 2438956 2023-11-30 17:53:30 +06:00
DarkPhoenix
cfecacacf9 Add appimagebuilder spec file 2023-11-30 17:39:10 +06:00
DarkPhoenix
a9112c04a3 Set it up to debug manually 2023-11-30 06:44:13 +06:00
DarkPhoenix
5f2a74691c Fix python appimage download command 2023-11-30 06:23:25 +06:00
DarkPhoenix
17c22df0f4 Update debug key 2023-11-30 06:08:39 +06:00
DarkPhoenix
c53bc82929 Try out new package tool 2023-11-30 05:51:45 +06:00
DarkPhoenix
7113f41b9a Try adding libjpeg (current appimage fails to launch due to this dep) 2023-11-30 05:02:58 +06:00
DarkPhoenix
aa66d63085 Do not hardcode python version for startup script 2023-11-30 04:28:49 +06:00
DarkPhoenix
140ee70dc3 Update python appimage 2023-11-30 03:50:18 +06:00
DarkPhoenix
5023a6cbae Try to fix binary distributive of wx on linux 2023-11-30 03:20:56 +06:00
DarkPhoenix
aafa77baed Try to fix binary distributive of wx on linux 2023-11-30 02:48:51 +06:00
DarkPhoenix
16dabd57ca Attempt to fix macos pyinstaller 2023-11-30 02:10:48 +06:00
DarkPhoenix
8668d2dd55 Try to fix binary distributive of wx on linux 2023-11-30 02:09:52 +06:00
DarkPhoenix
5c5f37a9ae Use binary distributive of wx on linux 2023-11-30 00:19:15 +06:00
DarkPhoenix
621c36f1cd Use newer pyinstaller on macos 2023-11-29 23:27:17 +06:00
DarkPhoenix
be2cc523c2 Fix skill level suffix 2023-11-29 23:03:32 +06:00
DarkPhoenix
bd83c403a1 Fix spec file again 2023-11-29 22:51:10 +06:00
DarkPhoenix
043f533a10 Move contents-directory specification to spec file 2023-11-29 22:31:09 +06:00
DarkPhoenix
57a23affd0 Adapt to changes in pyinstaller 2023-11-29 21:47:16 +06:00
DarkPhoenix
b678152ac6 Change pyinstaller command for windows 2023-11-29 20:50:14 +06:00
DarkPhoenix
747bbc8200 Revert to python 3.11 2023-11-29 20:36:25 +06:00
DarkPhoenix
871cf42d88 Fix crowdin script on newer python versions 2023-11-29 20:16:17 +06:00
DarkPhoenix
28533d60d3 Update appveyor images 2023-11-29 20:07:39 +06:00
DarkPhoenix
ca12b3c94f Pin older sqlalchemy 2023-11-29 20:01:44 +06:00
DarkPhoenix
81e449dd83 Merge branch 'master' into dep_facelift 2023-11-14 20:13:50 +06:00
DarkPhoenix
368f2c33a9 Attempt to work around postgres issue on linux 2023-11-14 19:45:22 +06:00
DarkPhoenix
c445bb4423 Add some debug commands to work around postgres issue in image 2023-11-14 19:28:44 +06:00
DarkPhoenix
9b216b5d48 Merge branch 'master' into dep_facelift 2023-11-14 18:54:35 +06:00
DarkPhoenix
4b932d210f Bump version 2023-11-14 18:54:09 +06:00
DarkPhoenix
a1ca29fb30 Update effects 2023-11-14 18:53:50 +06:00
DarkPhoenix
876c85ee19 Update icons 2023-11-14 18:41:56 +06:00
DarkPhoenix
ac1d935712 Update static data to 2420589 2023-11-14 18:39:57 +06:00
DarkPhoenix
2ccc829d3b Merge branch 'singularity' 2023-11-14 18:39:01 +06:00
DarkPhoenix
061ab27286 Merge branch 'singularity' into dep_facelift 2023-11-13 21:45:51 +06:00
DarkPhoenix
d127dd9a7e Implement RR diminishing returns 2023-11-13 21:45:40 +06:00
DarkPhoenix
6d13ab8bcb Merge branch 'master' into dep_facelift 2023-10-31 00:06:47 +06:00
DarkPhoenix
e5d95dd4d8 Fix something which was not supposed to be committed 2023-10-31 00:06:31 +06:00
DarkPhoenix
08c5c9a4b7 Fix an omission 2023-10-31 00:05:21 +06:00
DarkPhoenix
115ea9a36c Merge branch 'master' into dep_facelift 2023-10-31 00:02:35 +06:00
DarkPhoenix
a484698a9d Add option to export implants/boosters via ESI 2023-10-31 00:01:16 +06:00
DarkPhoenix
bafaed1d81 Fix character editor search crash 2023-10-30 23:33:35 +06:00
DarkPhoenix
c56f274a5f Merge branch 'singularity' into dep_facelift 2023-10-23 06:46:36 +06:00
DarkPhoenix
02f7fbf1b1 Do not stacking penalize shield/armor HP bonuses 2023-10-23 06:46:00 +06:00
DarkPhoenix
96214eaa27 Merge branch 'singularity' into dep_facelift 2023-10-19 05:46:01 +06:00
DarkPhoenix
3ed85112c6 Bump version 2023-10-19 05:45:24 +06:00
DarkPhoenix
fed39b75e3 Add new icons 2023-10-19 05:44:08 +06:00
DarkPhoenix
8a3defded5 Update metadata and effects to 2395039 2023-10-19 05:42:31 +06:00
DarkPhoenix
2fef60eaaa Merge branch 'master' into dep_facelift 2023-10-10 02:59:39 +06:00
DarkPhoenix
88970c7a95 Bump version 2023-10-10 02:50:42 +06:00
DarkPhoenix
fddaf27055 Update icons 2023-10-10 02:47:00 +06:00
DarkPhoenix
dd575bd3a0 Update static data and effects 2023-10-10 02:43:44 +06:00
DarkPhoenix
0c9b73727b Fix DD weapon application 2023-10-10 00:15:47 +06:00
DarkPhoenix
807622a1ec Merge branch 'master' into dep_facelift 2023-09-19 23:56:38 +03:00
DarkPhoenix
ade9fc389a Bump version 2023-09-19 23:52:50 +03:00
DarkPhoenix
b6c5f67085 Update effects 2023-09-19 23:52:24 +03:00
DarkPhoenix
7d86d58993 Add new icons 2023-09-19 23:34:33 +03:00
DarkPhoenix
a7ab046bc6 Update static data to 2363654 2023-09-19 23:11:22 +03:00
DarkPhoenix
d126b62d63 Merge branch 'master' into dep_facelift 2023-09-10 17:30:53 +06:00
DarkPhoenix
c94693a72d Update icons 2023-09-10 17:30:41 +06:00
DarkPhoenix
9e50de96f3 Merge branch 'master' into dep_facelift 2023-09-10 17:27:49 +06:00
DarkPhoenix
ea335b7d41 Bump version 2023-09-10 09:12:59 +06:00
DarkPhoenix
4838f69c40 Add effects for new AT ships 2023-09-10 09:12:29 +06:00
DarkPhoenix
e67083a79b Add effects for new AT ships 2023-09-10 09:11:42 +06:00
DarkPhoenix
b103e576d2 Merge branch 'master' into dep_facelift 2023-09-10 08:42:32 +06:00
DarkPhoenix
fb81e6c043 Add shapash/cybele hardcoded ships 2023-09-10 08:38:39 +06:00
DarkPhoenix
84716af82b Update effect file 2023-09-10 07:09:28 +06:00
DarkPhoenix
30dd77d462 Add renames 2023-09-10 07:03:24 +06:00
DarkPhoenix
9148611a8e Update static data to 2353888 2023-09-10 06:51:03 +06:00
DarkPhoenix
e7be51b70e Remove evepraiisal market source 2023-09-10 05:44:17 +06:00
DarkPhoenix
194e4657eb Fix appimage build 2023-06-14 05:30:12 +06:00
DarkPhoenix
b472adb404 Merge branch 'master' into dep_facelift 2023-06-14 01:09:58 +06:00
DarkPhoenix
b08986ba74 Duration is not penalized 2023-06-14 01:09:46 +06:00
DarkPhoenix
7e5150be8c Merge branch 'master' into dep_facelift 2023-06-14 01:05:32 +06:00
DarkPhoenix
57d8a672d9 Fix rep systems-related effect stacking penalties 2023-06-14 01:05:16 +06:00
DarkPhoenix
261d510ccb Merge branch 'master' into dep_facelift 2023-06-13 22:07:40 +06:00
DarkPhoenix
47dbfbd6d5 Bump version 2023-06-13 22:01:44 +06:00
DarkPhoenix
cbbf4863fb Update static data 2023-06-13 21:56:47 +06:00
DarkPhoenix
858b0b243a Merge branch 'singularity' into dep_facelift 2023-06-11 06:41:09 +06:00
DarkPhoenix
369f62bd68 Bump version 2023-06-11 04:34:01 +06:00
DarkPhoenix
53385f2458 Merge branch 'singularity' into dep_facelift 2023-06-11 04:28:36 +06:00
DarkPhoenix
885ad4deb3 Update effects 2023-06-11 04:28:18 +06:00
DarkPhoenix
7d3371c379 Merge branch 'singularity' into dep_facelift 2023-06-11 00:29:49 +06:00
DarkPhoenix
0ce3b861a4 Update EVE images 2023-06-11 00:28:05 +06:00
DarkPhoenix
48ee543c00 Update static data to 2291839 2023-06-11 00:26:27 +06:00
Anton Vorobyov
e07e2bc4f7 Merge pull request #2507 from superusercode/patch-1
Replace dead README badges with current CI badge
2023-06-10 21:19:57 +04:00
Anton Vorobyov
d94116ea1c Merge branch 'master' into dep_facelift 2023-05-23 01:11:07 +06:00
Code
17dec4d732 Update README.md 2023-05-11 21:36:00 -04:00
Anton Vorobyov
effb7e6429 Bump version 2023-04-28 01:49:55 +06:00
Anton Vorobyov
63f7762e34 Add option to export missing skills in roman / evemon format 2023-04-28 01:49:31 +06:00
Anton Vorobyov
76ff52aea8 Show seconds, not milliseconds 2023-04-28 01:38:26 +06:00
Anton Vorobyov
cd12279404 Add ADC ability duration 2023-04-28 01:36:45 +06:00
Anton Vorobyov
263929b6e3 Update icons 2023-04-28 01:33:03 +06:00
Anton Vorobyov
759135d3fe Add auto targeting system as acronym 2023-04-28 01:31:32 +06:00
Anton Vorobyov
d240f547cc Update effects & add mobiile depot hold 2023-04-28 01:28:55 +06:00
Anton Vorobyov
0a4f3481da Update static data to 2258955 2023-04-27 23:06:33 +06:00
Anton Vorobyov
b248cdefdd Bump version 2023-03-16 17:50:33 +06:00
Anton Vorobyov
6172ceda0f Update static data to 2232464 2023-03-16 17:25:10 +06:00
Anton Vorobyov
ba236bcb54 Update static data and effects to 2228687 2023-03-10 02:26:12 +06:00
Anton Vorobyov
b4e115eb7b Update icons 2023-02-22 19:07:51 +06:00
Anton Vorobyov
52b567a06d Disable effect overrides for AT18 ships, and add effects for them 2023-02-22 19:06:59 +06:00
Anton Vorobyov
dd1f7e224c Update static data to 2218819 2023-02-22 18:12:42 +06:00
Anton Vorobyov
338b298077 Specify requests version 2023-02-18 03:57:42 +06:00
Anton Vorobyov
512b370e3e Bump version 2023-02-14 19:26:03 +06:00
Anton Vorobyov
a14210f356 Add rename mapping 2023-02-14 19:25:45 +06:00
Anton Vorobyov
f81cf4ee7b Update effects 2023-02-14 19:22:15 +06:00
Anton Vorobyov
87b072b567 Update static data to 2214901 2023-02-14 19:18:36 +06:00
Anton Vorobyov
e21789d29c Fix fof missile application hardwiring 2022-12-21 00:16:45 +04:00
Anton Vorobyov
dd93f348e6 Fix loki SB heat bonus 2022-12-21 00:12:03 +04:00
Anton Vorobyov
cae8088ad3 Bump version 2022-12-18 04:47:57 +04:00
Anton Vorobyov
a92cbe92f1 Update static data 2022-12-18 04:47:25 +04:00
Anton Vorobyov
52fd0bb13f Fix fighters export 2022-12-12 04:50:28 +04:00
Anton Vorobyov
afcddeea70 Bump appimage version 2022-12-11 14:04:12 +04:00
Anton Vorobyov
e5eb001cf3 Fix bestla rof bonus and bump version 2022-12-11 13:49:36 +04:00
Anton Vorobyov
0d186ba56b Bump version 2022-12-11 06:09:25 +04:00
Anton Vorobyov
e2273f90b4 Add overrides for new AT ships 2022-12-11 06:08:51 +04:00
Anton Vorobyov
d6501df509 Assign geri and bestla to limited edition ships group 2022-12-11 04:57:59 +04:00
Anton Vorobyov
96d639996a Update effect docstrings & add missing drug effect 2022-12-11 04:56:29 +04:00
Anton Vorobyov
625c52720d Update static data to 2178459 2022-12-11 04:45:11 +04:00
Anton Vorobyov
69221eac24 Ensure that there is always some text in command fit name, even if fit itself has empty name 2022-11-29 20:57:15 +04:00
kane
5d95663f63 fix proxy proto string strip 2022-11-28 14:20:23 +08:00
Anton Vorobyov
74daf99aed Update icons/renders 2022-11-10 04:38:54 +04:00
Anton Vorobyov
eaf637d1d9 Bump version 2022-11-10 04:33:26 +04:00
Anton Vorobyov
c262ea6e35 Update static data to 2154998 2022-11-10 04:33:09 +04:00
Anton Vorobyov
128de58b83 New translations lang.pot (Japanese) 2022-11-05 01:34:48 +03:00
DarkPhoenix
1c541c82bf Bump version 2022-11-04 22:29:43 +04:00
DarkPhoenix
1824d1b866 Update static data & other stuff to 2151933 2022-11-04 22:28:34 +04:00
Anton Vorobyov
47eb8d422f New translations lang.pot (Japanese) 2022-11-04 00:10:59 +03:00
Anton Vorobyov
38ddf83da4 New translations lang.pot (Japanese) 2022-11-03 00:01:02 +03:00
DarkPhoenix
90025f22e5 Bump version 2022-11-02 17:17:11 +04:00
DarkPhoenix
9e71ed88e9 Update using latest sisi data 2022-11-02 17:16:35 +04:00
Anton Vorobyov
58142a8641 New translations lang.pot (Japanese) 2022-11-02 00:03:26 +03:00
Anton Vorobyov
d86f0f40ac New translations lang.pot (Japanese) 2022-10-31 23:47:48 +03:00
Anton Vorobyov
62944e4ce3 New translations lang.pot (Japanese) 2022-10-30 23:14:52 +03:00
Anton Vorobyov
812201d8b3 New translations lang.pot (Japanese) 2022-10-29 22:53:28 +03:00
Anton Vorobyov
52abd5620f New translations lang.pot (Japanese) 2022-10-28 22:56:28 +03:00
DarkPhoenix
be07d8e338 Bump version 2022-10-26 21:57:32 +04:00
DarkPhoenix
242fbba6d6 Update staticdata to 2143320 2022-10-26 21:57:00 +04:00
DarkPhoenix
b21b756fa6 Merge branch 'singularity' into dep_facelift 2022-10-25 01:53:45 +04:00
DarkPhoenix
7f1e0fcc58 Bump version 2022-10-25 01:53:07 +04:00
DarkPhoenix
072a53eabc Fix a couple of effects 2022-10-25 01:51:18 +04:00
DarkPhoenix
492adb4dfd Merge branch 'singularity' into dep_facelift 2022-10-25 01:33:18 +04:00
DarkPhoenix
3115268fb8 Implement effect changes 2022-10-25 01:32:52 +04:00
DarkPhoenix
0631bd65e1 Update static data to 2141324 and update effect doctrings 2022-10-24 22:19:23 +04:00
Anton Vorobyov
e47112a1f2 New translations lang.pot (Japanese) 2022-10-23 22:57:24 +03:00
DarkPhoenix
5fa7b2c86a Merge branch 'master' into dep_facelift 2022-10-23 10:19:39 +04:00
DarkPhoenix
6b7a4b3f9d Bump appimage version 2022-10-23 08:27:05 +04:00
DarkPhoenix
0ba65cab1f Bump version 2022-10-23 08:02:38 +04:00
DarkPhoenix
f6120f09ac Bump version 2022-10-23 07:58:00 +04:00
Anton Vorobyov
00a6835f50 New translations lang.pot (Japanese) 2022-10-22 21:46:14 +03:00
DarkPhoenix
4995c7994f Merge branch 'master' into dep_facelift 2022-10-22 21:36:54 +04:00
Anton Vorobyov
d75419d858 Merge pull request #2470 from pyfa-org/crowdin_master
New Crowdin updates
2022-10-22 20:35:35 +03:00
DarkPhoenix
771dfca1c8 Remove obsolete invasion-related system-wide effects and move destructible beacons one level above 2022-10-22 21:34:36 +04:00
DarkPhoenix
620ce89a05 Merge branch 'master' into dep_facelift 2022-10-21 23:09:03 +04:00
DarkPhoenix
73a5f62d90 Update static data & effects to 2138646 2022-10-21 23:08:02 +04:00
Anton Vorobyov
3982670dff New translations lang.pot (Japanese) 2022-10-21 21:43:38 +03:00
DarkPhoenix
73dc056e61 Fix creating of new implant sets / damage patterns / target profiles on new wx 2022-10-21 07:21:57 +04:00
Anton Vorobyov
79d2ded836 New translations lang.pot (Japanese) 2022-10-20 21:38:33 +03:00
Anton Vorobyov
55bc0cd40f New translations lang.pot (Japanese) 2022-10-19 21:11:18 +03:00
Anton Vorobyov
9da09a279e New translations lang.pot (Japanese) 2022-10-17 06:43:14 +03:00
Anton Vorobyov
889047f891 New translations lang.pot (Japanese) 2022-10-16 06:14:15 +03:00
DarkPhoenix
97625d11ab Merge branch 'master' into dep_facelift 2022-10-15 07:12:26 +04:00
DarkPhoenix
8f645fa425 Sort drone/fighter export the same was as in the additions panel 2022-10-15 07:12:12 +04:00
DarkPhoenix
21bd4272d9 Merge branch 'master' into dep_facelift 2022-09-30 20:52:40 +04:00
DarkPhoenix
e3e7f92b8d Add missing renders 2022-09-30 20:52:17 +04:00
DarkPhoenix
332c91d661 Merge branch 'master' into dep_facelift 2022-09-30 20:50:36 +04:00
DarkPhoenix
22f37995cf Bump appimage version 2022-09-30 19:25:43 +04:00
DarkPhoenix
92119c01f6 Change item comparison highlight implementation 2022-09-30 19:03:43 +04:00
DarkPhoenix
719125657f Merge branch 'master' into dep_facelift 2022-09-30 17:50:31 +04:00
DarkPhoenix
95841c44dc Remove eve.db which slipped in with the merge 2022-09-30 17:47:38 +04:00
Anton Vorobyov
e7b3040c0f Merge pull request #2466 from yeaido/feature/compare_highlight
Feature/compare highlight
2022-09-30 16:40:43 +03:00
DarkPhoenix
78af68cac2 Fix #2467 2022-09-30 17:37:20 +04:00
DarkPhoenix
9621a54257 Merge branch 'master' into dep_facelift 2022-09-30 16:50:07 +04:00
DarkPhoenix
3e5eb989f9 Bump version 2022-09-30 16:49:37 +04:00
DarkPhoenix
975d6f8776 Update images 2022-09-30 16:48:58 +04:00
DarkPhoenix
4e89a87ec1 Update effects 2022-09-30 16:43:05 +04:00
DarkPhoenix
eef644fb4c Update static data to 2123216 2022-09-30 13:56:52 +04:00
yeaido
8131dd4ace tidy 2022-09-05 08:12:57 +01:00
yeaido
c8059d6132 format 2022-09-04 20:18:11 +01:00
yeaido
cc008a57e1 vscode ignore 2022-09-04 20:16:47 +01:00
yeaido
ce6910fd63 Added highlight feature to the compare item window. Double click and item to highlight and bold it. 2022-09-04 12:32:07 +01:00
DarkPhoenix
bfc580cf7c Merge branch 'master' into dep_facelift 2022-08-29 15:49:54 +04:00
DarkPhoenix
7892e637b2 Force min query limit to be 1 for CJK languages in the market browser too 2022-08-29 15:33:47 +04:00
DarkPhoenix
6543a2c225 Revert "Use binary distribution of wx for appimage build"
This reverts commit 1e59d3d6ac.
2022-08-29 15:22:32 +04:00
DarkPhoenix
1e59d3d6ac Use binary distribution of wx for appimage build 2022-08-29 14:36:15 +04:00
DarkPhoenix
fd2f76ee41 Merge branch 'master' into dep_facelift 2022-08-29 02:53:09 +04:00
DarkPhoenix
11d0566433 Bump version 2022-08-29 02:52:48 +04:00
DarkPhoenix
b8d84d3af2 Add new name conversions 2022-08-29 02:51:55 +04:00
DarkPhoenix
1831fea819 Update effects file 2022-08-29 02:50:00 +04:00
DarkPhoenix
d15322a57c Update static data to 2099371 2022-08-29 02:37:11 +04:00
DarkPhoenix
9e01d15e60 Merge branch 'master' into dep_facelift 2022-08-29 02:32:12 +04:00
DarkPhoenix
48981460ab Add drone EHP and shield regen columns 2022-08-29 01:56:15 +04:00
Anton Vorobyov
eaca4a179f Merge pull request #2461 from wereii/fix-appimage
Fix AppImage build
2022-08-28 21:10:18 +03:00
wereii
e249cf917b Fix AppImage build 2022-08-15 17:24:47 +02:00
DarkPhoenix
23ee164a76 Merge branch 'master' into dep_facelift 2022-07-13 00:58:29 +04:00
DarkPhoenix
1de7a4ea82 Update static data to 2073715 2022-07-12 23:42:51 +04:00
DarkPhoenix
289acc099c Fix electropunch damage profile 2022-07-11 03:07:29 +04:00
DarkPhoenix
99ddc36027 Merge branch 'master' into dep_facelift 2022-07-10 02:52:44 +04:00
DarkPhoenix
ce3678debb Fix a couple of effects 2022-07-10 02:50:00 +04:00
DarkPhoenix
0e36794578 Use raw attribute value for maxGroupFitted restriction 2022-07-10 02:49:44 +04:00
DarkPhoenix
6d67b23a7e Update static data to 2072413 2022-07-09 15:39:25 +04:00
DarkPhoenix
a33f48a83b Merge branch 'master' into dep_facelift 2022-07-04 22:32:43 +04:00
DarkPhoenix
a95d69623b Hide mining blitz boosters 2022-07-04 22:22:12 +04:00
DarkPhoenix
11c060103a Merge branch 'master' into dep_facelift 2022-07-04 05:55:43 +04:00
DarkPhoenix
7578532949 Update effects' definitions 2022-07-04 05:52:43 +04:00
DarkPhoenix
a067c77c4c Forcefully publish AIR boosters 2022-07-04 05:46:49 +04:00
DarkPhoenix
ac6b6f70eb Merge branch 'master' into dep_facelift 2022-07-04 05:24:52 +04:00
DarkPhoenix
c6dd22f04f Bump version 2022-07-04 05:24:30 +04:00
DarkPhoenix
2e1f53184a Merge branch 'master' of github.com:pyfa-org/Pyfa 2022-07-04 05:24:13 +04:00
Anton Vorobyov
3159d399a6 Merge pull request #2452 from sajuukthanatoskhar/EFS_BurstJammer_Optimal_Not_Showing
Issue 2450 : ECM Burst Jammers burst range is 0 when exported to EFS
2022-07-04 04:09:38 +03:00
Anton Vorobyov
357dab2964 Merge pull request #2451 from sajuukthanatoskhar/Issue2425
Issue 2425 : Remote Capacitor Transmitters not being correctly written in EFS format
2022-07-04 03:43:53 +03:00
Anton Vorobyov
41c93efd83 Merge pull request #2441 from pyfa-org/crowdin_master
New Crowdin updates
2022-07-04 03:27:24 +03:00
DarkPhoenix
baf10b24d6 Merge branch 'master' into dep_facelift 2022-07-04 04:09:49 +04:00
DarkPhoenix
628aa9d905 Update static data to 2069533 2022-07-04 03:45:02 +04:00
DarkPhoenix
0ab485115c Merge branch 'master' into dep_facelift 2022-06-27 01:13:26 +04:00
DarkPhoenix
f9248dec6f Update effects' descriptions 2022-06-27 01:10:59 +04:00
DarkPhoenix
9d5ea487d5 Update static data to 2064776 2022-06-27 01:01:34 +04:00
DarkPhoenix
e76ce71701 Fix expanded cargohold penalty 2022-06-27 00:44:54 +04:00
Sajuukthanatoskhar
5a91e01746 MOD: version upped to 0.06
ADD: Added Remote Capacitor Transmitters!
2022-06-19 12:56:19 +02:00
Sajuukthanatoskhar
355e6dd0fe MOD: version upped to 0.06
FIX: Added check to correct add the burst jammer's burst radius
2022-06-19 12:45:16 +02:00
Anton Vorobyov
49da362dc3 New translations lang.pot (Chinese Simplified) 2022-06-13 13:20:08 +03:00
blitzmann
27101732ca Add a couple of bug fixes, and make the server option a checkbox 2022-05-08 13:48:38 -04:00
blitzmann
ed48a8b5d0 Re-work the exceptions related to logging a character in 2022-05-08 13:21:23 -04:00
Anton Vorobyov
460cf26236 New translations lang.pot (Chinese Simplified) 2022-05-08 19:40:32 +03:00
blitzmann
5a6fe373f1 Merge branch 'master' into huangzheng2016-master
# Conflicts:
#	gui/builtinPreferenceViews/pyfaEsiPreferences.py
2022-05-08 12:35:46 -04:00
blitzmann
cceaed8d61 rename gh_pages -> docs 2022-05-08 12:34:00 -04:00
Ryan Holmes
d9df4958a6 Merge pull request #2440 from pyfa-org/merge-gh-pages
Merge gh pages
2022-05-08 12:32:07 -04:00
blitzmann
e43e7ba51e move gh pages files to subdirectory 2022-05-08 12:31:47 -04:00
blitzmann
50e76deab7 Merge branch 'gh-pages' into merge-gh-pages 2022-05-08 12:30:05 -04:00
blitzmann
3c6eb6d054 Some updates to allow code / token paste regardless of server setting 2022-05-08 12:24:12 -04:00
blitzmann
e109cce36b Update the callback to always allow the code to be shown 2022-05-07 22:44:51 -04:00
blitzmann
dc997f0dc4 Various updates to support server-aware calls per character 2022-05-07 12:35:16 -04:00
DarkPhoenix
f8895a14c5 Merge branch 'master' into dep_facelift 2022-05-05 21:54:14 +04:00
Anton Vorobyov
893f9f8467 Merge pull request #2424 from pyfa-org/issue2402
Add option in settings to disregard JWT exp issues
2022-05-05 20:53:49 +03:00
DarkPhoenix
c612545636 Bump version 2022-05-05 21:43:44 +04:00
DarkPhoenix
4fe729c512 Move Bobook to limited issue ships 2022-05-05 21:43:09 +04:00
DarkPhoenix
22eabcea8d Merge branch 'master' into dep_facelift 2022-05-05 21:17:17 +04:00
DarkPhoenix
a7d52c9fc2 Update icons 2022-05-05 21:15:58 +04:00
DarkPhoenix
207e9018a8 Update effects 2022-05-05 21:12:17 +04:00
DarkPhoenix
a9598d4fc9 Update static data 2022-05-05 19:35:51 +04:00
DarkPhoenix
ccd3498594 Even more fixes for silent coercion, which is no more 2022-05-05 18:41:17 +04:00
Ryan Holmes
60015fb3b8 Merge branch 'master' into issue2402 2022-05-03 13:31:29 -04:00
blitzmann
14afc83e86 Fix client ID that is used 2022-04-30 10:17:51 -04:00
hz2016
216dd2a787 Update the SSO Login for Serenity and Singularity server's player 2022-04-28 15:58:33 +08:00
DarkPhoenix
71d088b90a More fixes for silent coercion, which is no more 2022-04-24 02:19:26 +04:00
DarkPhoenix
17712d8b7d More fixes for silent coercion, which is no more 2022-04-20 15:58:46 +04:00
DarkPhoenix
4a224ea9a5 Fix preferences panel 2022-04-20 15:25:52 +04:00
DarkPhoenix
6664b5620a Fix type casts for graphs
See #2391 for more info
2022-04-20 15:23:03 +04:00
DarkPhoenix
a98e898bd8 Cast coordinates passed to various wx objects into ints
See #2391 for more info
2022-04-20 02:12:46 +04:00
DarkPhoenix
e98ae5de39 Cast colors into ints before passing to wx
See #2391 for more info
2022-04-20 01:26:52 +04:00
DarkPhoenix
a51fbbc238 Merge branch 'master' into dep_facelift
# Conflicts:
#	.appveyor.yml
#	requirements.txt
2022-04-20 00:42:04 +04:00
DarkPhoenix
ebd7a1a4ad Fix lock amount effect 2022-04-08 21:45:25 +03:00
DarkPhoenix
63c9d98e3f Bump version 2022-04-05 21:20:52 +03:00
DarkPhoenix
14aafef866 Update effects 2022-04-05 21:20:16 +03:00
DarkPhoenix
55d6bb57d6 Process renames 2022-04-05 18:00:47 +03:00
DarkPhoenix
4bb71dbdb8 Update effects 2022-04-05 17:29:01 +03:00
DarkPhoenix
c9117c2a73 Merge branch 'master' of github.com:pyfa-org/Pyfa 2022-04-05 17:04:17 +03:00
DarkPhoenix
0a193939ed Update static data to 2027534 2022-04-05 17:03:42 +03:00
Anton Vorobyov
a0a27720ef Merge pull request #2426 from nmalaguti/feature/fix-readme-linux-standalone
Update README for self-contained Linux AppImage.
2022-04-03 17:19:08 +03:00
Nick Malaguti
d38417de9e Update README for self-contained Linux AppImage.
Also update OS X to macOS.
2022-04-01 21:50:40 -04:00
DarkPhoenix
2de214d7cd Fix orca shield burst bonus 2022-03-31 23:29:19 +03:00
DarkPhoenix
d9d546ca25 Bump version 2022-03-31 23:11:12 +03:00
DarkPhoenix
2c0e6fa73b Update static data to 2024431 2022-03-31 21:14:39 +03:00
Ryan Holmes
9dc18ac81b Add option in settings to disregard JWT exp issues 2022-03-30 15:17:11 -04:00
DarkPhoenix
86e171f13d Add condenser pack damage profiles 2022-03-30 21:49:25 +03:00
DarkPhoenix
20f222b9bf Split team burner damage patterns into their separate group 2022-03-30 21:28:43 +03:00
Ryan Holmes
01721f9dac Merge pull request #2419 from pyfa-org/issue2410
AppImage
2022-03-30 00:39:19 -04:00
Ryan Holmes
e57b7e5a8f Merge pull request #2422 from nmalaguti/feature/jwt-aud-fix
Skip validation of JWT "aud" claim
2022-03-30 00:38:17 -04:00
Nick Malaguti
4ba037d6e1 Skip validation of JWT "aud" claim
Due to unexpected ESI SSO breakage by adding an "aud" claim, skip
validation of the claim. If in the future CCP specifies which "aud"
claim to verify against, this can be changed to pass the appropriate
"audience" value.

Fixes #2421
2022-03-28 21:36:49 -04:00
Ryan Holmes
f89061a9d8 Merge branch 'master' into issue2410 2022-03-27 09:31:39 -04:00
Ryan Holmes
52b8b4bc6c Merge pull request #2356 from pyfa-org/crowdin_master
New Crowdin updates
2022-03-24 00:07:28 -04:00
Ryan Holmes
51e351d1ba Merge branch 'master' into crowdin_master 2022-03-24 00:07:01 -04:00
blitzmann
518b4abf8c fix crowdin error for PRs 2022-03-23 22:55:22 -04:00
blitzmann
67119fcff1 fix crowdin error for PRs 2022-03-23 22:32:54 -04:00
blitzmann
b1beebda26 Convert makefile to shell commands in appveyor config, various other tweaks 2022-03-23 10:28:04 -04:00
blitzmann
f7ea438ebc Merge tag 'v2.39.2docker' into issue2410 2022-03-23 10:27:12 -04:00
DarkPhoenix
ee6b57ecc1 Rename burner damage profiles and fix sentinel profile 2022-03-19 12:59:53 +03:00
Tomas S
e17fe434ee Update with GTK3 Info 2022-03-17 12:02:19 +01:00
wereii
7cad0b2658 AppImage build 2022-03-16 20:39:55 +01:00
DarkPhoenix
9e06106a1c Save & restore RAH-specific damage pattern through do-undo actions 2022-03-12 13:49:18 +03:00
DarkPhoenix
ae115b640a Allow RAH-specific pattern control 2022-03-12 02:19:03 +03:00
DarkPhoenix
0c292e8d6e Add more burner profiles 2022-03-09 19:20:00 +03:00
DarkPhoenix
68fad93282 Bump version 2022-03-09 00:38:19 +03:00
DarkPhoenix
9067c0b8b3 Update effects 2022-03-09 00:37:01 +03:00
DarkPhoenix
3d4849799b Update static data to 2013787 2022-03-09 00:33:10 +03:00
DarkPhoenix
fc848cd2d0 More mobility data for burners 2022-03-09 00:19:49 +03:00
DarkPhoenix
72b18f7935 Add mobility data to burners 2022-03-05 17:19:00 +03:00
DarkPhoenix
f9b4c7b5ea Merge branch 'singularity' into dep_facelift 2022-03-01 13:23:03 +03:00
DarkPhoenix
014d389dc8 Update static data to 2010918 2022-03-01 13:11:41 +03:00
DarkPhoenix
bded2d505f Update staticdata to 2008716 2022-02-23 22:24:27 +03:00
DarkPhoenix
4e83f52532 Silence more SQLAlchemy warnings 2022-02-22 23:54:33 +03:00
DarkPhoenix
ec0b543393 Silence some of SQLAlchemy warnings 2022-02-22 23:45:09 +03:00
DarkPhoenix
cff94a12ee Set a few gamedata relations view-only
New sqlalchemy complains about them, and we never set them via those relations anyway
2022-02-22 01:12:02 +03:00
DarkPhoenix
da39975ba8 Update requirements specified in CI specification 2022-02-21 23:26:27 +03:00
DarkPhoenix
82515343ee Update requirements to "latest" version of every package 2022-02-21 23:00:25 +03:00
DarkPhoenix
532268d4e6 Bump version 2022-02-19 01:43:10 +03:00
DarkPhoenix
6445d4219a Update icons 2022-02-19 01:42:17 +03:00
DarkPhoenix
9e7e994e1d Update effects 2022-02-19 01:39:35 +03:00
DarkPhoenix
209120a0dd Filter out placeholders 2022-02-19 01:14:11 +03:00
DarkPhoenix
0e0d820cb5 Update staticdata to 2006012 and update DB generation script 2022-02-19 00:48:54 +03:00
DarkPhoenix
8cd87929b9 Bump version 2022-02-09 18:20:53 +03:00
Anton Vorobyov
acd853bdde Merge pull request #2403 from shyadow/probesx8
Probes x8 instead of x1000
2022-02-09 18:19:35 +03:00
DarkPhoenix
94b4bed1fe Update effects 2022-02-09 16:23:50 +03:00
DarkPhoenix
01bed745a2 Update staticdata to 2000555 2022-02-09 16:05:00 +03:00
shyadow
40022d5d18 Change multiple-add for Scan Probes to be x8 2022-02-08 20:22:10 +01:00
shyadow
2ad4040ec7 Merge branch 'master' of github.com-shyadow:pyfa-org/Pyfa into master 2022-02-07 22:12:20 +01:00
DarkPhoenix
8cbe094ee6 Fix orca industrial core fuel effect 2022-02-05 04:57:29 +03:00
DarkPhoenix
2e11cbc5ae Bump version 2022-02-05 04:50:53 +03:00
DarkPhoenix
12f191d6d1 Update drug effects 2022-02-05 04:49:34 +03:00
DarkPhoenix
3918c4e3f9 Implement missing AT17 ships' effects 2022-02-05 04:26:30 +03:00
DarkPhoenix
779f1b476c Add missing staticdata updates and remove AT17 prize overrides 2022-02-05 04:01:51 +03:00
DarkPhoenix
61bb1ac225 Update static data to 1998655 2022-02-05 03:37:20 +03:00
DarkPhoenix
c459cbbc92 Remove drifter weapons from search results 2022-02-05 02:11:39 +03:00
DarkPhoenix
66018642f7 Show full burst strength even when burst is offline 2022-02-05 01:56:17 +03:00
DarkPhoenix
4c6d171793 Fix blackops + heated propmod interaction 2022-02-05 01:37:29 +03:00
DarkPhoenix
aa1ecd6bea Add support for implants & boosters as well 2022-02-05 01:25:15 +03:00
DarkPhoenix
be73ffd929 Track changes to underlying modules in stats windows 2022-02-05 00:56:39 +03:00
DarkPhoenix
3024ccd176 Alternate fix for #2400 2022-02-04 23:35:49 +03:00
blitzmann
d12128bc58 Publish "Mutated Drone Specialization" skill, #2399 2022-02-03 21:30:07 -05:00
blitzmann
c295482055 Fix for #2400 2022-02-03 20:53:04 -05:00
DarkPhoenix
b62260cd1f Fix minor issue with dragging modules to cargo on top of other modules 2022-01-23 01:29:15 +03:00
DarkPhoenix
a61e3ebaad Do not hide abyssal mining crystals 2022-01-19 02:43:42 +03:00
DarkPhoenix
9ae78aab0d Update AT ship stats 2022-01-17 20:47:39 +03:00
DarkPhoenix
06b9f8fe08 Bump version 2022-01-15 23:22:44 +03:00
DarkPhoenix
60ab34f6a4 Add AT ship effects 2022-01-15 23:21:46 +03:00
DarkPhoenix
18255d324c Revert changes to mac build for now 2022-01-15 22:00:23 +03:00
DarkPhoenix
51e43f6927 Implement attrib/effect overrides for new AT ships 2022-01-15 21:56:16 +03:00
DarkPhoenix
1208253110 Filter out expired boosters 2022-01-15 06:15:39 +03:00
DarkPhoenix
af4ed86324 Process effect updates and group renames 2022-01-15 06:14:12 +03:00
DarkPhoenix
8b34566d72 Update static data to 1989449 2022-01-15 05:39:43 +03:00
DarkPhoenix
5ab149d9f6 Ceil amount of targets instead of flooring (leshaks with base 7 targets actually have 4 in pochven) 2022-01-11 12:11:25 +03:00
Anton Vorobyov
bb38ba6564 New translations lang.pot (Spanish) 2022-01-10 15:44:16 +03:00
Anton Vorobyov
3f6aa91966 New translations lang.pot (Spanish) 2022-01-09 15:36:47 +03:00
Anton Vorobyov
e86e5933b5 New translations lang.pot (French) 2022-01-04 01:03:43 +03:00
Anton Vorobyov
000c1bc38f New translations lang.pot (French) 2022-01-03 01:04:57 +03:00
DarkPhoenix
feaa52c36b Find out which venv versions are out there 2021-12-11 04:03:35 +03:00
DarkPhoenix
a8e595b470 Update build environment to big sur fix 2021-12-11 01:21:07 +03:00
DarkPhoenix
157e709208 Update build environment to big sur 2021-12-11 00:07:22 +03:00
DarkPhoenix
ae4ec99308 Show mining stats in misc column even for inactive mods/drones 2021-12-09 23:20:02 +03:00
DarkPhoenix
aa7d3a1b7b Fix drone falloff display 2021-12-09 23:10:33 +03:00
DarkPhoenix
a7c2f700b4 Fix drone optimal display 2021-12-09 23:08:53 +03:00
DarkPhoenix
ce4b7f4f20 Update effects 2021-12-09 22:59:08 +03:00
DarkPhoenix
6c86aa95a3 Update static data to 1978193 2021-12-09 22:33:23 +03:00
DarkPhoenix
b52df842d5 Update effects & bump version 2021-12-08 17:01:06 +03:00
DarkPhoenix
4ccc64c7c7 Update static data to 1977292 2021-12-08 16:34:13 +03:00
DarkPhoenix
a0d2b13dd6 Add conversions 2021-12-07 15:11:32 +03:00
DarkPhoenix
7873853f97 Bump version 2021-12-07 14:42:12 +03:00
DarkPhoenix
877990d486 Update static data to 1975905 2021-12-07 14:35:52 +03:00
DarkPhoenix
1019c5f0cd Bump version 2021-12-02 15:05:20 +03:00
DarkPhoenix
b1b4284b6e Add new effects 2021-12-02 15:02:35 +03:00
DarkPhoenix
e0377a084f Update how mining waste is processed, to make it in line with new effects 2021-12-02 14:15:29 +03:00
DarkPhoenix
dbf9875d25 Remove unused effects and rerun effect use script 2021-12-02 13:40:39 +03:00
DarkPhoenix
5d66454e52 Update waste calculation 2021-12-02 13:35:28 +03:00
DarkPhoenix
f5d18fd606 More rename-related updates 2021-12-02 13:23:37 +03:00
DarkPhoenix
145e92b458 Add some rename updates 2021-12-02 13:18:20 +03:00
DarkPhoenix
ca8a8f0785 Handle renamed attributes and groups 2021-12-02 12:55:56 +03:00
DarkPhoenix
dfdcf0a804 Update static data to 1974215 2021-12-02 01:01:03 +03:00
DarkPhoenix
087284e048 Fix missile range column 2021-12-01 23:21:40 +03:00
DarkPhoenix
65741ed03b Superscript 3 in m3 2021-11-29 15:07:26 +03:00
DarkPhoenix
ae3d7ade0f Bump version 2021-11-28 23:46:48 +03:00
DarkPhoenix
789df97017 Merge branch 'master' into singularity 2021-11-28 04:04:56 +03:00
DarkPhoenix
7992ba43b2 Change how command burst misc column info is processed 2021-11-28 00:06:15 +03:00
DarkPhoenix
3595e24ad8 Merge branch 'master' into singularity 2021-11-27 15:35:30 +03:00
Anton Vorobyov
6677435474 Merge pull request #2360 from shyadow/master
Add Command Burst effect in Miscellanea Column
2021-11-27 15:18:47 +03:00
DarkPhoenix
1561d9f581 Fix drone group check 2021-11-27 15:12:52 +03:00
DarkPhoenix
1dee8ae648 Bump version 2021-11-27 00:21:16 +03:00
DarkPhoenix
51ea0c4f31 Fix another issue with restrictions 2021-11-27 00:09:43 +03:00
DarkPhoenix
9d8e338136 Implement multi-level selection menu for mining crystals 2021-11-27 00:05:18 +03:00
DarkPhoenix
48818c9709 Fix turret ammo picker 2021-11-26 21:39:08 +03:00
DarkPhoenix
ca356b413b Add mining waste readout to the misc column, and fix more issues related to the attribute fetching change 2021-11-26 21:27:47 +03:00
DarkPhoenix
a9ef5caf2d Fix attribute fetching, which is needed to calculate mining waste of crystal'd strip miners
This potentially can break many things. Some of those are fixed already, but there might be many more...
2021-11-26 20:43:46 +03:00
DarkPhoenix
22be97f901 Calculate waste stats for fits 2021-11-26 17:19:07 +03:00
DarkPhoenix
06f515ec0b Update icons and renders 2021-11-26 02:45:15 +03:00
DarkPhoenix
c878f4c155 Show yield for new gas hoarding modules 2021-11-26 02:42:08 +03:00
DarkPhoenix
5cf433a3eb Add industrial reconfiguration effect 2021-11-26 02:39:25 +03:00
DarkPhoenix
15191e5752 Add new orca & rorqual effects 2021-11-25 23:07:51 +03:00
DarkPhoenix
9d833d9cac Add new barge/exhumer effects 2021-11-25 22:48:33 +03:00
DarkPhoenix
5767c92985 Add more renames 2021-11-25 22:06:42 +03:00
DarkPhoenix
3246e58278 Process attribute renames, update changed effects, remove unused effects 2021-11-25 21:49:23 +03:00
DarkPhoenix
30546c6e45 Update staticdata to 1971319 2021-11-25 21:25:55 +03:00
DarkPhoenix
37fe587d90 Add/fix event booster effects 2021-11-25 21:00:20 +03:00
DarkPhoenix
09b1b50257 Add AT17 prizes to LE market group 2021-11-25 20:43:37 +03:00
DarkPhoenix
91a507eadd Add new module/charge effects 2021-11-25 20:41:54 +03:00
DarkPhoenix
dd92c3742c Add new barge/exhumer effects 2021-11-25 18:54:29 +03:00
DarkPhoenix
181170d7b0 Add new industrial effects 2021-11-25 17:11:12 +03:00
DarkPhoenix
1156f06db2 Add new orca/rorq effects 2021-11-25 16:57:32 +03:00
DarkPhoenix
90baffe267 Add new porpoise effects 2021-11-24 02:53:31 +03:00
DarkPhoenix
100a1fa01a Add support for new cargo types to UI 2021-11-24 02:29:55 +03:00
DarkPhoenix
d8d854da52 Add new endurance effects 2021-11-24 02:23:13 +03:00
DarkPhoenix
418339d000 Add new prospect effects 2021-11-24 01:33:20 +03:00
DarkPhoenix
24a0f4f53e Process renamed items and attributes 2021-11-24 01:01:40 +03:00
DarkPhoenix
94784bf1e0 Remove unused effects and update by which items effects are used 2021-11-23 20:54:03 +03:00
DarkPhoenix
d894df9819 Fix changed effects 2021-11-23 20:32:26 +03:00
DarkPhoenix
a5e1f3be40 Update static data to 1970121 2021-11-23 20:13:49 +03:00
shyadow
dcb6439444 Merge branch 'pyfa-org:master' into master 2021-11-20 17:34:20 +01:00
shyadow
5918d6371f Merge branch 'master' of github.com-shyadow:pyfa-org/Pyfa into master 2021-11-20 17:33:30 +01:00
Anton Vorobyov
8b1553df03 New translations lang.pot (Korean) 2021-11-04 02:22:53 +03:00
DarkPhoenix
98fa16d921 Bump version and add renamed mutaplasmid conversion 2021-10-28 14:39:57 +03:00
DarkPhoenix
d5795ed5f5 Update static data to 1957858 2021-10-28 14:35:27 +03:00
DarkPhoenix
fe809ed86b Always use base item attributes in mutator 2021-10-27 11:37:14 +03:00
Ryan Holmes
d09db832c3 Merge branch 'master' into master 2021-10-26 20:37:11 -04:00
Ryan Holmes
de4466b037 Merge pull request #2363 from pyfa-org/sso_v2
Sso v2
2021-10-26 17:22:46 -04:00
blitzmann
8ebf478cf7 fix typo in requirements 2021-10-26 16:50:04 -04:00
Ryan Holmes
530a12ea4f Merge branch 'master' into sso_v2 2021-10-26 12:21:10 -04:00
blitzmann
b94f6e8d0a Merge branch 'sso_v2' of https://github.com/pyfa-org/Pyfa into sso_v2 2021-10-26 12:20:20 -04:00
blitzmann
4b83169070 typo fix 2021-10-26 12:20:11 -04:00
DarkPhoenix
a7da9e20a5 Make new option for new mutated item names 2021-10-26 17:48:18 +03:00
Anton Vorobyov
0020dcdf0a Merge branch 'master' into sso_v2 2021-10-26 17:03:24 +03:00
DarkPhoenix
066f697186 Bump version 2021-10-26 13:06:52 +03:00
DarkPhoenix
b2217bb6cd Use short name only if short mutaplasmid name is available 2021-10-26 12:49:27 +03:00
DarkPhoenix
4669b4813c Use short muta + base names for mutated items 2021-10-26 12:22:25 +03:00
DarkPhoenix
a71701932c Do not store mutaplasmids in commands 2021-10-26 11:59:44 +03:00
DarkPhoenix
1be0d306bb Allow imports of mutated drone groups via ctrl-v and additions panel context menus 2021-10-26 11:29:25 +03:00
DarkPhoenix
85f63e237d Allow imports of separate mutated drones from clipboard 2021-10-26 10:19:10 +03:00
DarkPhoenix
acab787a7b Mark mutated drones unpublished 2021-10-26 09:59:32 +03:00
DarkPhoenix
da50c7dcfc Update icons 2021-10-26 09:55:12 +03:00
DarkPhoenix
b0d3469f01 User short mutaplasmid name in mutation panel 2021-10-26 01:31:09 +03:00
DarkPhoenix
148093f6ad Allow import of fits with mutated drones 2021-10-26 01:16:25 +03:00
DarkPhoenix
fab58bdb57 Implement mutated drone export 2021-10-26 00:44:11 +03:00
DarkPhoenix
34b2fdbd1b Store mutation results on window close for undo/redo purposes 2021-10-25 23:43:21 +03:00
DarkPhoenix
ea7a5b3c70 Implement drone mutation support with some exceptions 2021-10-25 23:34:08 +03:00
DarkPhoenix
056685ded5 Make mutaplasmid names short on menu list 2021-10-25 14:08:06 +03:00
DarkPhoenix
60f9e96b19 Add new event booster effects 2021-10-25 13:36:01 +03:00
DarkPhoenix
341950cb42 Add renames for quafe classic 2021-10-25 01:41:41 +03:00
DarkPhoenix
641e982614 Fix quafe apple stacking penalty & run effect used by script 2021-10-25 01:39:01 +03:00
DarkPhoenix
1e534e087a AIR booster stacking penalty fix 2021-10-25 01:32:28 +03:00
DarkPhoenix
0b7b80d0f6 Update bastion effect 2021-10-25 01:21:13 +03:00
DarkPhoenix
27bd9fc55b Update static data to 1954065 2021-10-25 01:18:36 +03:00
blitzmann
533f6f3b24 Handle API exceptions during fit deletion 2021-10-24 14:45:07 -04:00
blitzmann
c18cbe5e59 Handle server timeouts gracefully 2021-10-24 14:30:52 -04:00
blitzmann
adba55eb7d Ensure that the token error dialog spawns n the three most used API calls that might trigger token refresh: fetch skills, fetch fits, and export fit 2021-10-24 14:07:04 -04:00
blitzmann
03c6f7c894 Update token exception message to include button to manage ESI characters 2021-10-24 13:07:32 -04:00
DarkPhoenix
478b2bfe4c Fix cargo amount change command 2021-10-23 16:05:45 +03:00
DarkPhoenix
7e4d8a3074 Allow to change multiple cargo items at once 2021-10-23 04:05:20 +03:00
DarkPhoenix
8497d1f1bb Change how ECM chance is calculated so that sensor strength links are considered 2021-10-21 16:02:04 +03:00
blitzmann
1b5acc36d3 update callback 2021-10-19 00:15:22 -04:00
blitzmann
2a94dcebf8 Remove various preferences related to SSO, move callback to config 2021-10-19 00:15:10 -04:00
Ryan Holmes
2731e9962b Implement pyfa callback 2021-10-19 00:13:21 -04:00
blitzmann
7b9e196ca8 additional error handling 2021-10-19 00:02:53 -04:00
blitzmann
f3f7d688ab Properly handle the "manual" mode of copy and paste auth information 2021-10-18 14:06:36 -04:00
blitzmann
17391f119c No longer looks like esipy, removing comment chunk 2021-10-18 13:12:53 -04:00
blitzmann
abd138a015 Pull endpoints from .well-known route
Add request caching (only for meta calls for now)
Add server list (eventually want to support various servers, for now only TQ)
2021-10-18 13:09:16 -04:00
Anton Vorobyov
89d0ee4c77 New translations lang.pot (Korean) 2021-10-18 14:10:48 +03:00
blitzmann
33aa208513 Token validation and various cleanup 2021-10-17 21:01:30 -04:00
blitzmann
1874cbe0c5 Work on the server to handle the new structure 2021-10-16 16:52:23 -04:00
Ryan Holmes
76536a5dcc Create callback.html 2021-10-16 12:56:11 -04:00
Ryan Holmes
41d6828024 Create index.md 2021-10-16 12:53:08 -04:00
Ryan Holmes
bf4b4ab3c0 Set theme jekyll-theme-midnight 2021-10-16 12:49:45 -04:00
blitzmann
028fb42e18 Starting some tweaks on SSO 2021-10-16 12:46:25 -04:00
shyadow
6b444bfc63 Change all but first ifs to elifs 2021-10-14 18:28:13 +02:00
shyadow
1753d79bc1 Add Command Burst effect in Miscellanea Column 2021-10-14 13:19:00 +02:00
Ryan Holmes
d9b0d2e72a Update README.md 2021-10-13 23:22:39 -04:00
Ryan Holmes
e0234c343e Update README.md 2021-10-13 23:20:57 -04:00
Anton Vorobyov
d7d4643a33 New translations lang.pot (Korean) 2021-10-08 13:37:45 +03:00
Anton Vorobyov
166635d0a1 New translations lang.pot (Korean) 2021-10-07 13:17:56 +03:00
DarkPhoenix
b5816a312c Bump ESI character endpoint version 2021-10-05 16:32:42 +03:00
Anton Vorobyov
076e1999af New translations lang.pot (Korean) 2021-10-01 14:20:45 +03:00
Anton Vorobyov
69caff50c3 New translations lang.pot (Korean) 2021-09-30 13:56:01 +03:00
Anton Vorobyov
0db72f7a8c New translations lang.pot (Korean) 2021-09-29 13:59:34 +03:00
Anton Vorobyov
43ac76ac1f New translations lang.pot (Korean) 2021-09-28 04:36:38 +03:00
Anton Vorobyov
279c912703 New translations lang.pot (Korean) 2021-09-27 04:33:56 +03:00
Anton Vorobyov
e54cec47f2 New translations lang.pot (Korean) 2021-09-26 04:38:53 +03:00
Anton Vorobyov
50293081d1 New translations lang.pot (Russian) 2021-09-11 17:48:52 +03:00
Anton Vorobyov
4f526d7cc4 New translations lang.pot (Russian) 2021-09-10 17:52:14 +03:00
Anton Vorobyov
86cc025812 Merge pull request #2347 from chwons/master
fix text color when using a dark system theme
2021-07-13 15:51:06 +03:00
DarkPhoenix
8072f7e618 Bump version 2021-07-13 15:42:46 +03:00
DarkPhoenix
c34b12d806 Fix ewar booster effect 2021-07-13 15:42:33 +03:00
DarkPhoenix
67760fa2ab Update effects 2021-07-13 15:37:54 +03:00
DarkPhoenix
9a28dd17be Update client data to 1918815 2021-07-13 15:04:05 +03:00
chwons
6e4d1876ad Merge branch 'pyfa-org:master' into master 2021-07-08 07:59:50 +09:00
DarkPhoenix
40b0b27176 Run effects used by 2021-07-02 17:46:55 +03:00
DarkPhoenix
b238422f29 Update static data to 1916151 2021-07-02 17:33:30 +03:00
DarkPhoenix
4e20583b81 Update static data to 1914752 2021-06-28 19:54:32 +03:00
DarkPhoenix
f730cdb86a Bump version 2021-06-27 02:34:11 +03:00
DarkPhoenix
e05471fa6f Update effects 2021-06-27 02:33:48 +03:00
DarkPhoenix
45b517e097 Update static data to 1914498 2021-06-27 02:07:46 +03:00
DarkPhoenix
f27274c9e5 Update staticdata to 1913437 2021-06-27 01:44:52 +03:00
chwons
d32a8f0b61 stop testing 2021-06-23 01:59:28 +09:00
chwons
6a01086cf5 Update itemTraits.py 2021-06-23 01:49:27 +09:00
chwons
e0f65c2370 Update itemAttributes.py 2021-06-23 01:48:59 +09:00
chwons
e7c2f4cff7 Update itemDescription.py 2021-06-23 01:47:57 +09:00
chwons
93cce50d00 testing 2021-06-23 01:26:54 +09:00
DarkPhoenix
d1a2cdc586 Bump version 2021-06-20 04:05:51 +03:00
DarkPhoenix
9dab6b0f92 Bump version 2021-06-15 18:31:09 +03:00
DarkPhoenix
33e3ea6030 Add bubble launcher as an element for wubble alias 2021-06-15 18:27:21 +03:00
DarkPhoenix
9d97b27c3a Implement wubble application via interdiction module 2021-06-15 18:25:25 +03:00
DarkPhoenix
05d156c7f4 Fix covops effects 2021-06-15 18:17:30 +03:00
DarkPhoenix
2ddc4924cc Update metadata to 1910975 2021-06-15 16:30:46 +03:00
DarkPhoenix
e3fef6f1a7 Add custom wubble effect 2021-06-13 02:30:09 +03:00
DarkPhoenix
fbd8d04f68 Fix nullifier duration bonus 2021-06-11 23:53:16 +03:00
DarkPhoenix
23916165bb Bump version 2021-06-11 23:27:11 +03:00
DarkPhoenix
3cca6a6c95 Update effects 2021-06-11 23:26:09 +03:00
DarkPhoenix
a52172a3c6 Update static data to 1910538 2021-06-11 21:26:46 +03:00
Anton Vorobyov
8a2bfb48ce Merge pull request #2339 from pyfa-org/crowdin_master
New Crowdin updates
2021-06-11 21:08:04 +03:00
DarkPhoenix
b42254cb61 Avoid crashes on ctrl-backspace in notes view 2021-06-11 21:04:59 +03:00
DarkPhoenix
91fbcd4eb4 Fix bastion rof bonus 2021-06-11 20:58:17 +03:00
DarkPhoenix
bdc52da05d Remove travis configuration 2021-06-11 20:34:01 +03:00
DarkPhoenix
2bbe17722b Refresh deployment tokens 2021-06-09 13:57:03 +03:00
DarkPhoenix
3ef07b9153 Upload artifacts on tags to github 2021-06-08 22:47:00 +03:00
DarkPhoenix
5af904ca18 Split build process into multiple stages 2021-06-08 21:07:11 +03:00
DarkPhoenix
d3cdc67472 Update path to macos build 2021-06-08 21:01:38 +03:00
DarkPhoenix
0991124d5f Store package as an appveyor artifact 2021-06-08 20:55:10 +03:00
DarkPhoenix
83ea548c4d Try python 3.7
This is the version we used on Travis
2021-06-08 20:43:09 +03:00
DarkPhoenix
4752eee09d Fix venv path 2021-06-08 20:36:47 +03:00
DarkPhoenix
53d2d1fabe Activate python 3.8 2021-06-08 20:34:29 +03:00
DarkPhoenix
f600868eb2 Move sleep to init 2021-06-08 20:29:03 +03:00
DarkPhoenix
f6a489fa22 Add sleep to give some time to debug 2021-06-08 20:24:26 +03:00
DarkPhoenix
2962a89919 Enable macOS debugging 2021-06-08 20:19:50 +03:00
DarkPhoenix
c3d53f56a9 Preinstall pathlib on macOS 2021-06-08 19:46:43 +03:00
DarkPhoenix
3257abbeff Remove linking of gettext for macOS
Apprently, it's already linked on appveyor images
2021-06-08 19:36:48 +03:00
DarkPhoenix
5858d96deb Set python version to 3.8 for mac before building 2021-06-08 19:36:18 +03:00
DarkPhoenix
94d1eae464 Move macOS build scripts to appveyor configuration 2021-06-08 19:29:34 +03:00
DarkPhoenix
b7e2b782c9 Move all windows-specific code under windows section 2021-06-08 19:02:37 +03:00
DarkPhoenix
05e5958d36 Make PYTHON variable image-specific to test if it works 2021-06-08 18:54:07 +03:00
Anton Vorobyov
e9364fe65a New translations lang.pot (Russian) 2021-05-27 14:31:12 +03:00
Anton Vorobyov
b3b71896ae New translations lang.pot (Russian) 2021-05-26 14:22:49 +03:00
Anton Vorobyov
00d20f53d0 New translations lang.pot (Russian) 2021-05-19 21:03:26 +03:00
DarkPhoenix
88e4f7a77e Set SQLAlchemy version to last known working 2021-05-19 03:40:09 +03:00
DarkPhoenix
5763954f51 Fix bastion falloff bonus 2021-05-19 03:29:25 +03:00
DarkPhoenix
4fbfbcc84e Bump version 2021-05-19 03:12:20 +03:00
DarkPhoenix
1f2c20e95b Update icons 2021-05-19 03:11:13 +03:00
DarkPhoenix
d7aa744bc1 Do not activate WCS and nullifiers by default 2021-05-19 02:55:20 +03:00
DarkPhoenix
1117c786ff Add new nullifier/WCS effects 2021-05-19 02:52:29 +03:00
DarkPhoenix
6a715f6678 Update effects for metaliminal storms 2021-05-19 02:27:39 +03:00
DarkPhoenix
5e93235b02 Add jargon entries for SRS and wubble 2021-05-19 01:35:32 +03:00
DarkPhoenix
271b915ce6 Fix sig suppressor effect #2 2021-05-19 01:30:58 +03:00
DarkPhoenix
52667da64a Fix sig suppressor effect 2021-05-19 01:29:20 +03:00
DarkPhoenix
82f0fea1bf Run effectUsedBy script 2021-05-19 01:28:48 +03:00
DarkPhoenix
751823177b Update static data to 1903677 2021-05-19 01:19:49 +03:00
DarkPhoenix
ac7e8a1efa Fix msgformat 2021-05-19 00:40:29 +03:00
Anton Vorobyov
066a12e912 Merge pull request #2337 from pyfa-org/crowdin_master
New Crowdin updates
2021-05-19 00:23:35 +03:00
Anton Vorobyov
ea64657fba New translations lang.pot (Chinese Simplified) 2021-05-18 20:34:57 +03:00
Anton Vorobyov
17b94001e0 New translations lang.pot (Turkish) 2021-05-18 20:34:56 +03:00
Anton Vorobyov
cc481f9f29 New translations lang.pot (Russian) 2021-05-18 20:34:55 +03:00
Anton Vorobyov
f73bb14990 New translations lang.pot (Korean) 2021-05-18 20:34:53 +03:00
Anton Vorobyov
a5ed992cd2 New translations lang.pot (Japanese) 2021-05-18 20:34:52 +03:00
Anton Vorobyov
f7e792411a New translations lang.pot (Italian) 2021-05-18 20:34:51 +03:00
Anton Vorobyov
fc71d7b706 New translations lang.pot (Spanish) 2021-05-18 20:34:50 +03:00
Anton Vorobyov
162055d5ce New translations lang.pot (French) 2021-05-18 20:34:48 +03:00
DarkPhoenix
5cc87a439f Merge branch 'i18n' 2021-05-12 22:39:41 +03:00
Anton Vorobyov
d2d3a42adf Merge pull request #2331 from pyfa-org/crowdin_l10n
New Crowdin updates
2021-05-12 22:38:37 +03:00
Ryan Holmes
e43cb74906 New translations lang.pot (Korean) 2021-04-07 20:23:31 -04:00
DarkPhoenix
ace00d495a Add stacking penalty for bastion missile range bonus 2021-03-27 19:40:34 +03:00
DarkPhoenix
729b39e351 Define backref for boosters manually 2021-03-27 19:37:11 +03:00
DarkPhoenix
5ae1e64a76 Revert "Remove backref to owner since it seems to be unused, but it crashed attempts to remove items which have been removed from static data"
This reverts commit 8ee900a90e.
2021-03-27 18:51:15 +03:00
DarkPhoenix
88a9ce03ba Merge branch 'i18n' 2021-03-26 17:18:22 +03:00
Anton Vorobyov
cbd3d8cc1b Merge pull request #2319 from pyfa-org/crowdin_l10n
New Crowdin updates
2021-03-26 17:17:06 +03:00
Anton Vorobyov
65a126b4c5 Merge pull request #2312 from sajuukthanatoskhar/EFS_Information_Export_add_on
Adding more information to EFS Export
2021-03-25 15:47:56 +03:00
DarkPhoenix
241c744d40 Fixed stacking penalization of heat rof bonus 2021-03-25 15:37:09 +03:00
DarkPhoenix
8ee900a90e Remove backref to owner since it seems to be unused, but it crashed attempts to remove items which have been removed from static data 2021-03-25 15:13:18 +03:00
DarkPhoenix
1c415fbe06 Mark objects dirty so that they get removed, instead of setting their item ID to 0 2021-03-25 15:06:28 +03:00
DarkPhoenix
304aebbccf Update static data to 1889623 2021-03-25 14:31:41 +03:00
DarkPhoenix
18d9f6a542 Fix repr for boosters with no item 2021-03-25 13:52:40 +03:00
DarkPhoenix
cdc6e046b0 Fix #2308 2021-03-25 13:15:48 +03:00
DarkPhoenix
59bb9670b6 Multiple fixes related to sig suppressor 2021-03-25 12:49:50 +03:00
DarkPhoenix
9321a78a61 Update effects 2021-03-25 12:35:40 +03:00
DarkPhoenix
53191714f2 Exclude TSB from list of projectable mods for EFS purposes 2021-03-24 17:47:54 +03:00
DarkPhoenix
b17347156c Update static data to 1888542 2021-03-24 17:40:26 +03:00
DarkPhoenix
66ace06194 Run effect used by script 2021-03-23 18:44:06 +03:00
DarkPhoenix
e8697c6131 Update static data to 1888542 2021-03-23 18:38:26 +03:00
Ryan Holmes
7a6e87330d New translations lang.pot (Russian) 2021-03-02 10:09:27 -05:00
Ryan Holmes
2acf92160e New translations lang.pot (Russian) 2021-03-02 09:11:19 -05:00
DarkPhoenix
6e49f6fd7a Bump version 2021-02-23 21:34:06 +03:00
DarkPhoenix
6e56230a0e Update staticdata to 1878176 2021-02-23 21:28:30 +03:00
DarkPhoenix
01282d103a Add extraction filaments as well 2021-02-20 21:24:11 +03:00
DarkPhoenix
a0317d5b3c Bump version 2021-02-20 20:23:04 +03:00
DarkPhoenix
a697c1890a Adjust effects 2021-02-20 20:22:44 +03:00
DarkPhoenix
aaf719437f Update static data to 1877575 2021-02-20 20:09:24 +03:00
DarkPhoenix
3d6e703b7c Trigger travis builds only on tags 2021-02-19 21:17:34 +03:00
DarkPhoenix
ce26b22752 Add filament market group 2021-02-19 20:44:57 +03:00
DarkPhoenix
6b30b2859e Allow adding items to cargo via double-click 2021-02-19 20:39:10 +03:00
DarkPhoenix
961258618a Make filaments searchable 2021-02-19 20:36:11 +03:00
DarkPhoenix
f07684875f Use proper attribute for missiles 2021-02-19 10:37:52 +03:00
DarkPhoenix
538954f4a6 Fix vargur damage bonus 2021-02-19 02:16:57 +03:00
DarkPhoenix
30e73ed795 Fix bastion stacking penalties on RoF 2021-02-18 23:38:24 +03:00
DarkPhoenix
d216eb3e55 Bump version 2021-02-18 22:15:00 +03:00
DarkPhoenix
c25fa0f632 Update bastion effect 2021-02-18 22:11:51 +03:00
DarkPhoenix
8a115be0bd Update effect uses 2021-02-18 21:03:53 +03:00
DarkPhoenix
b897ee5146 Update static data to 1876339 2021-02-18 20:41:40 +03:00
Ryan Holmes
7b3bda5816 New translations lang.pot (Korean) 2021-01-27 11:06:59 -05:00
Ryan Holmes
f62e16288d New translations lang.pot (Korean) 2021-01-27 09:54:33 -05:00
Ryan Holmes
9aad8860a9 New translations lang.pot (Korean) 2021-01-26 23:57:54 -05:00
Ryan Holmes
f8dd1f27a9 New translations lang.pot (Korean) 2021-01-26 22:46:04 -05:00
DarkPhoenix
09bc2da863 Limit subwarp speed to 100 for warp considerations 2021-01-26 00:33:43 +03:00
Ryan Holmes
f531c144af New translations lang.pot (Chinese Simplified) 2021-01-23 21:52:34 -05:00
Gareth Williams
dfd08fa8e2 MOD: EFS Export Version Number to 0.05
ADD: OptimalSignatureRadius is now exported with each *turret*
2021-01-23 17:55:00 +01:00
Gareth Williams
e430848be9 ADD: Added the ability for EFS exports to contain the following information: shieldrecharge rate, inertia, energy|neutraliser Resistance 2021-01-09 22:34:29 +01:00
Anton Vorobyov
2d645b8f91 Merge pull request #2301 from pyfa-org/i18n
I18n
2020-12-08 20:00:30 +03:00
DarkPhoenix
e33cb80608 Bump version 2020-12-08 19:56:43 +03:00
Anton Vorobyov
fcc8c3eeb9 Merge pull request #2300 from pyfa-org/crowdin_l10n
New Crowdin updates
2020-12-08 19:51:37 +03:00
DarkPhoenix
c29d567255 Change default jargon definitions for missile types, they now include launchers as well 2020-12-08 19:46:13 +03:00
DarkPhoenix
e85b618cbc Add set of hacks to rename caustic to tachyon 2020-12-08 19:40:48 +03:00
DarkPhoenix
008b6a887d Rename Caustic to Tachyon 2020-12-08 19:30:21 +03:00
DarkPhoenix
05ab2d47c7 Fix error handler in a situation when gamedata metadata is not available 2020-12-08 19:16:05 +03:00
DarkPhoenix
75b611c94a Fix salvaging spec effect 2020-12-08 18:01:57 +03:00
Ryan Holmes
356d594637 New translations lang.pot (French) 2020-12-08 09:14:01 -05:00
Ryan Holmes
03f4bc1d75 New translations lang.pot (French) 2020-12-08 08:13:23 -05:00
DarkPhoenix
226c5d7fad Update static data to 1860847 2020-12-08 15:09:51 +03:00
DarkPhoenix
0c3998b640 Add new effects 2020-12-05 16:39:58 +03:00
DarkPhoenix
942f9a35ee Update static data to 1859379 2020-12-05 14:27:19 +03:00
DarkPhoenix
031a3c2d3e Fix IDs of new damage patterns 2020-11-27 18:03:18 +03:00
DarkPhoenix
ed7df2f1a7 Bump version 2020-11-26 15:57:15 +03:00
DarkPhoenix
fb2ad2cc10 Update static data to 1853874 2020-11-26 15:56:40 +03:00
DarkPhoenix
34bce4e083 Bump version 2020-11-24 14:56:39 +03:00
DarkPhoenix
fc45b43295 Update static data to 1852074 2020-11-24 14:53:32 +03:00
DarkPhoenix
4160b08388 Fix mining preservation charge 2020-11-24 13:08:25 +03:00
DarkPhoenix
95c25b274c Add logging to help with no localization debugging 2020-11-24 13:01:52 +03:00
DarkPhoenix
690e5caf52 Bump version 2020-11-19 15:33:11 +03:00
DarkPhoenix
95ada5d61d Fix misc column for ewar drones 2020-11-19 14:54:44 +03:00
DarkPhoenix
976820a7c0 Merge branch 'master' into singularity 2020-11-19 14:21:08 +03:00
DarkPhoenix
8ab14bcfcc Attempt to fix unavailable graphs 2020-11-19 14:20:41 +03:00
DarkPhoenix
6e8798eb08 Adjust effects 2020-11-19 14:01:03 +03:00
DarkPhoenix
15af830dca Update staticdata to 1848209 2020-11-19 13:36:14 +03:00
Anton Vorobyov
ce728243b0 Merge pull request #2287 from porowns/master
Fix typo in ECM targetting view
2020-11-19 12:50:19 +03:00
DarkPhoenix
2696b480fa Fix mistype 2020-11-17 19:20:25 +03:00
Kaleb
ca7a3cae9c Fix typo in ECM targetting view 2020-11-13 13:11:50 -05:00
DarkPhoenix
10613c9070 Consider a market group as non-final when it has sub-market groups 2020-11-11 22:37:49 +03:00
DarkPhoenix
a692b1fe74 Bump version 2020-11-11 00:30:49 +03:00
DarkPhoenix
0592d2c3f4 Update staticdata to 1842315 2020-11-11 00:24:19 +03:00
DarkPhoenix
301a3473cc Update static data to 1837348 2020-11-04 01:35:44 +03:00
DarkPhoenix
4887852de4 Update po template after merge 2020-10-28 15:29:11 +03:00
DarkPhoenix
6b3bf1f7a8 Merge branch 'master' of github.com:pyfa-org/Pyfa into master 2020-10-28 15:28:49 +03:00
DarkPhoenix
a4d163fc89 Update po template 2020-10-28 15:28:33 +03:00
Anton Vorobyov
e88e3996a8 Merge pull request #2282 from Neugeniko/master
Added new target and damage profiles for invasion drifters, rogue drones and sleepers.
2020-10-28 15:27:25 +03:00
Neugeniko
a36dd20890 Add new invasion target profiles for drifters, rogue drones and sleepers. 2020-10-28 20:41:02 +11:00
Neugeniko
c9f37457ab Add new invasion damage profiles for drifters, rogue drones and sleepers. 2020-10-28 20:39:35 +11:00
DarkPhoenix
4709cd78f3 Update contribution readme 2020-10-28 00:03:24 +03:00
DarkPhoenix
5ac5b3f5e4 Bump version 2020-10-27 23:05:40 +03:00
DarkPhoenix
da78c24d9b Do not persist messages across generation sessions 2020-10-27 22:56:02 +03:00
DarkPhoenix
566c87fa59 Avoid crash when .mo files are not generated 2020-10-27 22:42:03 +03:00
DarkPhoenix
e6d7a140cf Add message for case when mo files are not generated 2020-10-27 22:39:21 +03:00
DarkPhoenix
89e496f3af Move language setting to top 2020-10-27 22:17:06 +03:00
DarkPhoenix
d650284ae1 Update english translations 2020-10-27 21:42:18 +03:00
DarkPhoenix
b41d7d2603 Merge branch 'i18n' into master 2020-10-27 21:36:24 +03:00
Anton Vorobyov
33c20bfc3b Merge pull request #2239 from pyfa-org/crowdin_l10n
New Crowdin updates
2020-10-27 21:34:47 +03:00
DarkPhoenix
6f0778ad94 Update po template 2020-10-27 21:27:20 +03:00
DarkPhoenix
7ce39a0dac Update staticdata to 1832008 2020-10-27 15:55:38 +03:00
DarkPhoenix
7de7a17bae Update effect list 2020-10-27 13:25:47 +03:00
DarkPhoenix
50b8c3fc61 Avoid subtraction of attacker radius for ships with AoE bursts twice 2020-10-27 00:37:24 +03:00
DarkPhoenix
dab5d1f211 Fix item diff script 2020-10-25 00:11:56 +03:00
DarkPhoenix
5141a30e22 Update static data to 1830766 2020-10-23 21:27:18 +03:00
DarkPhoenix
1172e5011e Merge branch 'i18n' into singularity 2020-10-23 19:53:36 +03:00
DarkPhoenix
ea2141b719 Update effects 2020-10-22 17:58:10 +03:00
DarkPhoenix
9f7fdfc800 Update static data to 1828662 2020-10-22 13:53:57 +03:00
DarkPhoenix
de63b11a80 Rename invasion profiles 2020-10-22 12:38:55 +03:00
DarkPhoenix
514d11e6f2 Bump pyfa version 2020-10-13 18:38:29 +03:00
DarkPhoenix
9d759054ca Add migrations/conversions 2020-10-13 18:33:21 +03:00
DarkPhoenix
c162d96cc0 Rename triglavian profiles 2020-10-13 18:27:05 +03:00
DarkPhoenix
3c22397377 Update staticdata 2020-10-13 17:58:41 +03:00
DarkPhoenix
20e605c30f Make quantum cores invalid modules for pyfa fits 2020-09-24 16:51:40 +03:00
DarkPhoenix
9601887855 Add ability to import modules from ESI directly into pyfa 2020-09-23 17:24:40 +03:00
DarkPhoenix
0a7f5b6092 Bump version 2020-09-23 14:35:18 +03:00
DarkPhoenix
e27ea79bc6 Add recalculation after unloading charge 2020-09-23 13:48:24 +03:00
DarkPhoenix
adb0609eb8 Update staticdata to 1810288 2020-09-23 13:35:18 +03:00
DarkPhoenix
39b08baff0 Change damage pattern order 2020-09-23 13:30:07 +03:00
DarkPhoenix
e4388bf835 Merge branch 'singularity' into master 2020-09-23 13:09:35 +03:00
Anton Vorobyov
b9cae5165b Merge pull request #2273 from Neugeniko/master
Addresses Issue #2265. Damage and Target Profiles for new abyssal NPC's.
2020-09-23 12:39:10 +03:00
Neugeniko
06e6589209 Edit Concord Profiles due to CCP patch updates. 2020-09-22 21:56:26 +10:00
Ryan Holmes
9f21b251ff Fix string escape (again) 2020-09-21 20:43:49 -04:00
Ryan Holmes
7d7a499070 Escape string 2020-09-21 20:35:49 -04:00
Ryan Holmes
e18a3bfab5 #2272 info blurb 2020-09-21 20:35:20 -04:00
blitzmann
a80b7c098a Use natural sort for dictionaries when dumping staticdata 2020-09-20 12:57:23 -04:00
Ryan Holmes
1580a8ddc9 New translations lang.pot (Chinese Simplified) 2020-09-17 11:09:10 -04:00
DarkPhoenix
385215b717 Bump version 2020-09-17 01:31:45 +03:00
DarkPhoenix
d09913d61b Add 2 new fax effects 2020-09-17 01:31:24 +03:00
DarkPhoenix
b9059835ce Update static data to 1806850 2020-09-17 01:13:08 +03:00
DarkPhoenix
7af28b497c Fix several bugs related to siege mod rep cycle time mutations 2020-09-16 16:16:44 +03:00
DarkPhoenix
5cf555b8ce Bump version 2020-09-16 14:11:29 +03:00
DarkPhoenix
a25bb1aaa3 Update static data to 1805757 2020-09-16 14:05:33 +03:00
DarkPhoenix
24a54c9cec Merge branch 'singularity' into master 2020-09-16 14:04:02 +03:00
Neugeniko
0b9e6bf55d Damage Changes from sisi to tq for "Depths of the Abyss' patch. 2020-09-15 21:31:08 +10:00
Neugeniko
41070ce22e Fixed text error with menu names. 2020-09-14 09:24:19 +10:00
Neugeniko
7b5aab8a35 Merge pull request #2 from Neugeniko/Issue-#2265,-Update-Target-profiles
Update target profiles for Abyss npcs and add new profiles for new ab…
2020-09-13 20:15:26 +10:00
Neugeniko
c9fe6c959d Update target profiles for Abyss npcs and add new profiles for new abyss npc, Issue #2265 2020-09-13 20:15:09 +10:00
Neugeniko
67cf3a3a26 Merge pull request #1 from Neugeniko/Issue-#2265,-Update-Damage-profiles
Update damage profiles for Abyss npcs and add new profiles for new ab…
2020-09-13 19:33:10 +10:00
Neugeniko
c644d528e9 Update damage profiles for Abyss npcs and add new profiles for new abyss npcs, see Issue: #2265 2020-09-13 19:31:27 +10:00
DarkPhoenix
c1302ce7ee Fix version 2020-09-10 04:38:52 +03:00
DarkPhoenix
e4ea9c2ab9 Bump version 2020-09-10 04:38:20 +03:00
DarkPhoenix
cca5781ca8 Bump version 2020-09-10 04:30:20 +03:00
DarkPhoenix
9760d2c4a5 Merge branch 'master' into singularity 2020-09-10 04:26:42 +03:00
DarkPhoenix
4efa9a6961 Always return some value in mutators 2020-09-10 04:25:37 +03:00
DarkPhoenix
b27d4bcbbd Merge branch 'master' into singularity 2020-09-10 03:57:34 +03:00
DarkPhoenix
7bff295012 Add some jargon definitions for capital mods with numbers 2020-09-10 03:55:52 +03:00
DarkPhoenix
01249dfd9c Validate presence of mutaplasmid item 2020-09-10 03:28:36 +03:00
DarkPhoenix
0cc2668c1c Update warfare buffs for caustic cloud 2020-09-10 02:00:15 +03:00
DarkPhoenix
dfad734a0a Update staticdata to 1801413 2020-09-10 01:01:31 +03:00
DarkPhoenix
66c901a2b0 Bump version 2020-09-09 16:38:29 +03:00
DarkPhoenix
3673e7f39e Take measures against ESI spamming error 2020-09-09 16:35:57 +03:00
Anton Vorobyov
124b35d108 Merge pull request #2264 from jrdn/delete_all_esi_fits
Delete all of a character's fits via ESI
2020-09-09 15:12:01 +03:00
DarkPhoenix
5181e8e95a Reduce point radius for linux when scaled up 2020-09-09 15:00:35 +03:00
Anton Vorobyov
48cc4ce9d4 Merge pull request #2260 from YaarPodshipnik/fix-vector-picker-dpi-scaling
Fix HiDPI scaling issues in VectorPicker
2020-09-09 14:22:21 +03:00
Anton Vorobyov
07ff43b576 Merge branch 'master' into fix-vector-picker-dpi-scaling 2020-09-09 14:09:16 +03:00
DarkPhoenix
70969cc9fb Fix structure ewar skill not affecting ECM batteries 2020-09-09 13:56:06 +03:00
DarkPhoenix
d23bf2fa4c Add SBA tiericide conversions 2020-09-09 13:33:07 +03:00
DarkPhoenix
04c8659922 Update static data to 1800064 2020-09-09 13:21:16 +03:00
Jordan Greenberg
5e3b92699b Delete all of a character's fits via ESI 2020-09-05 15:32:52 -07:00
Yaar Podshipnik
1755ab4c3f Fix HiDPI scaling issues in VectorPicker
VectorPicker was DPI unware, so when asking GetClientSize() it would
get the actual size multiplied by the scaling factor of GetContentScaleFactor().
This made the widget seem to be cut off and display only the upper left
quarter of the circle.
Similarly, when choosing the font size for the percentages, it wouldn't
scale the maximum size, resulting in very large text.
2020-08-26 17:01:20 +01:00
DarkPhoenix
26ec741094 Bump version 2020-08-25 14:21:49 +03:00
DarkPhoenix
530f7510d5 Update staticdata to 1792574 2020-08-25 14:18:27 +03:00
DarkPhoenix
37ab704cd7 Merge branch 'singularity' into master 2020-08-25 14:17:21 +03:00
DarkPhoenix
683ad3802f Unmutate destination module when moving from cargo 2020-08-25 00:46:51 +03:00
DarkPhoenix
c882351886 Make propmod speed bonuses penalizable as postMul chain, fixes black hole + propmod speeds 2020-08-21 00:15:32 +03:00
DarkPhoenix
9d71215c52 Bump version 2020-08-20 16:31:00 +03:00
DarkPhoenix
d2a0605abe Update static data to 1790093 2020-08-20 16:27:05 +03:00
DarkPhoenix
bee6652cc6 Bump version 2020-08-18 00:51:34 +03:00
DarkPhoenix
047ef75960 Update effects 2020-08-18 00:51:11 +03:00
DarkPhoenix
32e57f8138 Update staticdata to 1788518 2020-08-18 00:40:07 +03:00
DarkPhoenix
e891804b64 Allow more than 1 system-wide effect 2020-08-17 13:36:52 +03:00
DarkPhoenix
7d42b89726 Merge branch 'master' into singularity 2020-08-17 11:43:50 +03:00
Anton Vorobyov
6561996327 Merge pull request #2256 from m-sasha/perf
Re-render tab when its disabled state changes.
2020-08-17 11:42:35 +03:00
Alexander Maryanovsky
0d2ad6eac2 No longer recomputing all tab sizes when a single tab changes its disabled state. 2020-08-16 18:00:01 +03:00
Alexander Maryanovsky
3b2bfd01c5 Re-render tab when it's disabled state changes. 2020-08-16 17:45:34 +03:00
DarkPhoenix
a317dab9a8 Bump version 2020-08-15 03:56:54 +03:00
DarkPhoenix
db6d8b93e9 Re-enable meta storm menu 2020-08-15 03:39:48 +03:00
DarkPhoenix
7d585c1a62 Merge branch 'master' into singularity
# Conflicts:
#	staticdata/fsd_lite/evetypes.json
#	staticdata/phobos/metadata.json
2020-08-15 03:34:45 +03:00
DarkPhoenix
c45e84470e Add storm effects 2020-08-15 03:27:47 +03:00
DarkPhoenix
ab3b40e136 Rerun effectUsedBy 2020-08-15 02:08:09 +03:00
DarkPhoenix
b566a8bfa6 Update static data to 1786419 2020-08-15 02:06:19 +03:00
DarkPhoenix
ccb395d592 Add standard outpost rig effect 2020-08-13 13:17:50 +03:00
DarkPhoenix
3d039724c9 Relax ship name format restrictions even further 2020-08-13 01:18:03 +03:00
DarkPhoenix
d0e7e7eed5 Merge branch 'master' of github.com:pyfa-org/Pyfa into master 2020-08-13 01:16:08 +03:00
DarkPhoenix
a387bc8d09 Fix import of ship/structure names containing single quotes 2020-08-13 01:15:41 +03:00
Anton Vorobyov
94344bd432 Merge pull request #2254 from Neugeniko/Issue/2253
Updated 'Retaliating Caldari Entities' target profile
2020-08-12 12:14:48 +03:00
DarkPhoenix
a976fb33f0 Fix defender velocity hardwiring 2020-08-12 00:11:52 +03:00
DarkPhoenix
f850fdf0d5 Bump version 2020-08-11 19:59:46 +03:00
DarkPhoenix
0fcbedba45 Disable metaliminal storm context menu 2020-08-11 19:58:44 +03:00
DarkPhoenix
5707bddacd Update staticdata to 1782806 2020-08-11 19:56:33 +03:00
Neugeniko
8ed9257dfa Updated 'Retaliating Caldari Entities' target profile
2020/08/12 Eve Online Patch increased Em Resists for some npc in the group of  'Retaliating Caldari Entities'
The groups target profile has been recalculated and edited.
2020-08-12 02:56:13 +10:00
DarkPhoenix
056ae590cf Merge branch 'master' into singularity 2020-08-10 17:39:37 +03:00
DarkPhoenix
7733fd38c2 Do not set read-only property 2020-08-10 17:39:08 +03:00
DarkPhoenix
fef78c971f Add effects used by metaliminal storms
Most of them are stubs, so just 2 so far
2020-08-05 22:57:45 +03:00
DarkPhoenix
e52ceacdb9 Add liminal storms to projection menu 2020-08-05 22:46:43 +03:00
DarkPhoenix
85b2d7af8d Add item conversions
Based on my own assumptions about them
2020-08-05 22:21:27 +03:00
DarkPhoenix
3e658a31bb Process renamed items 2020-08-05 21:54:56 +03:00
DarkPhoenix
0d2a4d4d44 Update metadata to 1780302 2020-08-05 21:40:59 +03:00
Ryan Holmes
c08216252e New translations lang.pot (Chinese Simplified) 2020-08-04 11:03:34 -04:00
blitzmann
02219846a7 Merge branch 'i18n' into crowdin_l10n 2020-08-02 22:57:24 -04:00
blitzmann
ff0af7cce7 Add check to see if crowdin API key is available 2020-08-02 22:25:15 -04:00
blitzmann
0e8316192b data updates 2020-08-02 20:20:25 -04:00
blitzmann
c0f8099f49 Merge branch 'master' into i18n
# Conflicts:
#	staticdata/fsd_binary/typedogma.json
#	staticdata/fsd_lite/evetypes.json
#	staticdata/phobos/metadata.0.json
#	staticdata/phobos/traits.json
2020-08-02 18:54:31 -04:00
Ryan Holmes
32a03dedaa I18n - Fixes for translations during build (#2251) 2020-08-02 18:52:55 -04:00
Ryan Holmes
5ae43fc648 New translations lang.pot (Spanish) 2020-08-02 13:10:03 -04:00
Ryan Holmes
d1f26dd4db New translations lang.pot (Turkish) 2020-08-02 13:10:01 -04:00
Ryan Holmes
c595e4426e New translations lang.pot (Chinese Simplified) 2020-08-02 13:09:59 -04:00
Ryan Holmes
abe7fa4ac1 New translations lang.pot (Russian) 2020-08-02 13:09:57 -04:00
Ryan Holmes
fd5d6ffca5 New translations lang.pot (Korean) 2020-08-02 13:09:55 -04:00
Ryan Holmes
abaa7f395d New translations lang.pot (Japanese) 2020-08-02 13:09:53 -04:00
Ryan Holmes
8e3893d6c6 New translations lang.pot (Italian) 2020-08-02 13:09:52 -04:00
Ryan Holmes
5de808456e New translations lang.pot (French) 2020-08-02 13:09:50 -04:00
Ryan Holmes
362d081338 Merge pull request #2240 from zhaoweny/i18n
I18n: more string annotations (mostly tooltips)
2020-08-02 13:07:11 -04:00
Anton Vorobyov
bc2cdcdea7 Merge pull request #2249 from m-sasha/undup-tab-selection
_TabsContainer.CheckTabSelected no longer posts PageChanged event twice
2020-07-31 11:59:38 +03:00
Anton Vorobyov
30ad554cc0 Merge pull request #2248 from m-sasha/no-half-second-sleep
Do not sleep for half a second in OpenFitsThread.run()
2020-07-31 11:59:06 +03:00
Anton Vorobyov
4a85fd5d1b Merge pull request #2247 from m-sasha/fast-tabs-resize
Ignore _TabRenderer.SetSize when new size is the same as old size
2020-07-31 11:58:35 +03:00
Alexander Maryanovsky
4d8dbe74bd _TabsContainer.CheckTabSelected no longer posts PageChanged event twice 2020-07-30 16:03:00 +03:00
Alexander Maryanovsky
016f2b44ff Do not sleep for half a second in OpenFitsThread.run() 2020-07-30 11:35:30 +03:00
Alexander Maryanovsky
676794baed Ignore _TabRenderer.SetSize when new size is the same as old size. 2020-07-30 11:31:00 +03:00
Anton Vorobyov
ca488089fd Merge pull request #2231 from fonsuiplaysvideogames/master
Updates to Abyss room-wide and localized weather effects
2020-07-30 08:04:42 +03:00
Anton Vorobyov
96f9b9a719 Merge branch 'master' into master 2020-07-30 08:04:09 +03:00
fonsuiplaysvideogames
508572e08b Update fit.py 2020-07-29 21:33:15 -04:00
DarkPhoenix
f91e0b2e23 Do not crash on ship w/o labels and w/o slots 2020-07-29 09:02:46 +03:00
DarkPhoenix
93ae9e0891 Bump version 2020-07-28 17:39:20 +03:00
DarkPhoenix
2ed5dbc3c7 Avoid using newer matplotlib 2020-07-28 17:12:15 +03:00
DarkPhoenix
bca8ba3114 Bump version 2020-07-28 15:58:15 +03:00
DarkPhoenix
174ac97682 Implement new CS effects 2020-07-28 15:57:55 +03:00
DarkPhoenix
2d9e873d42 Update staticdata to 1777281 2020-07-28 15:21:08 +03:00
zhaoweny
7bc4e5b34c i18n: update lang.pot for plural strings 2020-07-27 15:31:37 +08:00
zhaoweny
9450f4a915 i18n: improve wording for locale/README.md 2020-07-27 15:21:42 +08:00
zhaoweny
1a9ebf0772 i18n: add detail for excluding a folder (virtualenv) when generating new lang.pot
Because in-tree virtualenv folder is developer-defined, we can't really predict and provide specific commands for excluding virtualenv.
2020-07-27 14:51:26 +08:00
zhaoweny
1c7036e612 i18n: update locale/README.md to reflect current usage of xgettext 2020-07-27 09:59:59 +08:00
zhaoweny
87cb9713f9 i18n: update lang.pot 2020-07-26 18:20:05 +08:00
zhaoweny
d3f0d9d41a i18n: use named placeholder to allow Russian translation to rearrange word order 2020-07-26 18:20:05 +08:00
zhaoweny
b0d088ab31 i18n: update lang.pot for more Tooltip annotation 2020-07-26 18:20:05 +08:00
zhaoweny
47bda45516 i18n: more Tooltip annotation 2020-07-26 18:20:05 +08:00
zhaoweny
95d18dc3ab i18n: update lang.pot for annotating SensorStr scanType 2020-07-26 18:20:05 +08:00
zhaoweny
be5f8ce37d i18n: annotate for SensorStr scanType 2020-07-26 18:20:05 +08:00
DarkPhoenix
33377357f6 Change dampener definition to include named variations 2020-07-26 10:36:55 +03:00
blitzmann
107856ab0e Add hyperlink to README for translations 2020-07-25 20:14:11 -04:00
Ryan Holmes
c1f9b1d0d7 Fix version dump when tag ahas a + in it 2020-07-25 17:53:42 -04:00
Ryan Holmes
469c255bbf Show progress of translations 2020-07-25 17:39:28 -04:00
Ryan Holmes
bec9eb2224 Add translation progress dump to travis and remove the data dump to console 2020-07-25 16:54:15 -04:00
Ryan Holmes
7dc362fef9 fix api key environment variable name 2020-07-25 16:42:29 -04:00
Ryan Holmes
80781c7eff debugging why build is failing 2020-07-25 16:33:14 -04:00
Ryan Holmes
fca78a72e4 Create translation progress dump script and add to appveryor build (travis soon) 2020-07-25 16:27:42 -04:00
Ryan Holmes
7438fb72bc revert compile_lang, don't have access to config here... will need to fix 2020-07-25 12:40:12 -04:00
Ryan Holmes
b6f24ec4c2 New translations lang.pot (Spanish) 2020-07-24 22:58:23 -04:00
Ryan Holmes
db2bd22ddc New Crowdin updates (#2238)
* New translations lang.pot (Turkish)

* New translations lang.pot (Turkish)

* New translations lang.pot (Turkish)

* New translations lang.pot (Italian)

* New translations lang.pot (Italian)

* New translations lang.pot (Chinese Simplified)
2020-07-24 22:23:02 -04:00
blitzmann
bbcedbf2cb Better description for language flag 2020-07-24 22:22:11 -04:00
blitzmann
937adb68d7 Show user-friendly name for the eos lang dropdown as well 2020-07-24 22:14:54 -04:00
blitzmann
1fe83ddcdf Finish up the dynamic translations 2020-07-24 21:59:38 -04:00
Ryan Holmes
ac1e6fe5b7 Starting to generate list of languages dynamically 2020-07-24 20:42:47 -04:00
Ryan Holmes
cb99151f69 New Crowdin updates (#2236)
* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Italian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Japanese)

* New translations lang.pot (Korean)

* New translations lang.pot (Italian)

* New translations lang.pot (Russian)

* New translations lang.pot (Italian)

* New translations lang.pot (Japanese)

* New translations lang.pot (Japanese)

* New translations lang.pot (Russian)

* New translations lang.pot (Italian)

* New translations lang.pot (Russian)

* New translations lang.pot (Italian)

* New translations lang.pot (Korean)

* New translations lang.pot (Korean)

* New translations lang.pot (Italian)

* New translations lang.pot (Italian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)

* New translations lang.pot (French)

* New translations lang.pot (Italian)

* New translations lang.pot (Japanese)

* New translations lang.pot (Korean)

* New translations lang.pot (Russian)

* New translations lang.pot (Chinese Simplified)

* New translations lang.pot (Russian)

* New translations lang.pot (Russian)
2020-07-22 23:48:47 -04:00
blitzmann
0b850808cb Update README to remove reference to 'only support EVE languages' 2020-07-22 23:43:24 -04:00
blitzmann
ffb14a2393 Add ability to set eos language separate from pyfa language 2020-07-22 23:41:38 -04:00
blitzmann
f1feb8cebe Fix typo 2020-07-22 00:23:55 -04:00
blitzmann
507cc09a2f update data 2020-07-19 21:33:35 -04:00
blitzmann
6990a71d14 Merge remote-tracking branch 'origin/master' into i18n
# Conflicts:
#	staticdata/fsd_binary/marketgroups.json
#	staticdata/fsd_binary/typedogma.json
#	staticdata/fsd_lite/evegroups.json
#	staticdata/fsd_lite/evetypes.json
#	staticdata/phobos/metadata.0.json
2020-07-19 21:33:14 -04:00
blitzmann
2239428b71 Merge branch 'i18n' of https://github.com/pyfa-org/Pyfa into i18n 2020-07-19 21:03:03 -04:00
blitzmann
ce755e393c Merge branch 'i18n' of https://github.com/zhaoweny/Pyfa into i18n 2020-07-19 20:52:16 -04:00
blitzmann
d07e46099b Update localization README 2020-07-19 20:52:07 -04:00
Ryan Holmes
d11e9c52c0 Merge pull request #2235 from pyfa-org/crowdin_l10n
New Crowdin updates
2020-07-19 20:48:23 -04:00
DarkPhoenix
3ee0ee7e40 Fix drone sorting in projected view 2020-07-19 23:31:00 +03:00
Ryan Holmes
57aaed4140 New translations lang.pot (Chinese Simplified) 2020-07-19 14:18:22 -04:00
Ryan Holmes
af76103957 New translations lang.pot (Chinese Simplified) 2020-07-19 14:04:35 -04:00
Ryan Holmes
fdaf682dbd New translations lang.pot (Russian) 2020-07-19 14:04:33 -04:00
Ryan Holmes
26e1ab47f2 New translations lang.pot (Korean) 2020-07-19 14:04:31 -04:00
Ryan Holmes
f1ffd369d0 New translations lang.pot (Japanese) 2020-07-19 14:04:29 -04:00
Ryan Holmes
9ac8969d43 New translations lang.pot (Italian) 2020-07-19 14:04:27 -04:00
Ryan Holmes
7bc4a1d334 New translations lang.pot (French) 2020-07-19 14:04:26 -04:00
Ryan Holmes
bb9866e175 Merge pull request #2232 from zhaoweny/i18n
i18n: string annotation for graph panels
2020-07-19 14:03:06 -04:00
zhaoweny
d81e25fc50 i18n/zh_CN: update translation for graph pannels 2020-07-17 12:48:40 +08:00
zhaoweny
6b11fd0a91 i18n: string annotation for graph panels 2020-07-17 12:44:47 +08:00
fonsuiplaysvideogames
2f02747b29 Update fit.py 2020-07-16 16:24:08 -04:00
fonsuiplaysvideogames
78b176a135 Update fit.py 2020-07-16 16:20:24 -04:00
DarkPhoenix
52063beea9 BCS affect defender missiles now 2020-07-16 00:40:04 +03:00
DarkPhoenix
03a55d94e9 Bump version 2020-07-14 20:29:47 +03:00
DarkPhoenix
db256f57d1 Adjust ANP jargon entries 2020-07-14 20:29:27 +03:00
DarkPhoenix
8de6d78be0 Update effect docstrings 2020-07-14 20:25:45 +03:00
DarkPhoenix
902a00d37d Add conversions 2020-07-14 20:24:42 +03:00
DarkPhoenix
523cb1467e Merge branch 'issue_2205' 2020-07-14 20:21:23 +03:00
DarkPhoenix
f75de70d79 Update staticdata to 1769230 2020-07-14 20:00:23 +03:00
DarkPhoenix
4b635f4d21 Remove www to make dropdown shorter on gtk 2020-07-14 17:31:19 +03:00
DarkPhoenix
63632e09b3 Group market sources up to avoid cross-server price data confusion 2020-07-14 17:25:30 +03:00
Ryan Holmes
8a5b2b3e48 Merge pull request #2227 from pyfa-org/crowdin_l10n
New Crowdin updates
2020-07-12 21:16:07 -04:00
Ryan Holmes
99d1655c20 New translations lang.pot (Chinese Simplified) 2020-07-12 21:11:16 -04:00
Ryan Holmes
91c30832b3 New translations lang.pot (Russian) 2020-07-12 21:11:15 -04:00
Ryan Holmes
390f198310 New translations lang.pot (Korean) 2020-07-12 21:11:13 -04:00
Ryan Holmes
316265e19d New translations lang.pot (Japanese) 2020-07-12 21:11:11 -04:00
Ryan Holmes
8754326446 New translations lang.pot (Italian) 2020-07-12 21:11:09 -04:00
Ryan Holmes
443769badd New translations lang.pot (French) 2020-07-12 21:11:08 -04:00
Ryan Holmes
0cee45e33d Update Crowdin configuration file 2020-07-11 18:37:23 -04:00
Ryan Holmes
9d02845875 Update Crowdin configuration file 2020-07-11 18:33:57 -04:00
blitzmann
5f97ba6931 Merge branch 'i18n' of https://github.com/pyfa-org/Pyfa into i18n 2020-07-11 18:25:43 -04:00
blitzmann
ca7358d2fc Include .pot file in epo 2020-07-11 18:25:30 -04:00
Ryan Holmes
dcdd50a91b Update Crowdin configuration file 2020-07-11 18:01:10 -04:00
Ryan Holmes
9895339c13 Merge pull request #2222 from zhaoweny/i18n
i18n: more annotation, more translation
2020-07-11 12:27:45 -04:00
blitzmann
04f9c1c9f8 Move the pyfa app initialization back to where it was 2020-07-11 12:27:09 -04:00
zhaoweny
e536aa5f1c i18n: special comments to mark strings containing '%' mean literally '%', not part of escape sequence
see also:
* https://github.com/vslavik/poedit/issues/645
* https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html
* https://www.gnu.org/software/gettext/manual/html_node/c_002dformat-Flag.html
2020-07-11 21:12:57 +08:00
zhaoweny
b82030090c i18n/zh_CN: update translation for damagePattern and targetProfiles 2020-07-11 16:09:45 +08:00
zhaoweny
9868b219d7 i18n: deferred translation and category annotation for targetProfile and damagePattern
* use deferred translation annotation, to annotate strings in eos.db and translate on the GUI side

  As @blitzmann said in #2222, we should not include wx as a dependency for eos module.

* category annotation _c for taking '[]' out of string literals
2020-07-11 16:09:02 +08:00
Zhao Wen Yuan
f9b3defd4b Merge pull request #1 from pyfa-org/zhaoweny-i18n
Update to translations for damage profiles
2020-07-11 14:54:22 +08:00
blitzmann
7451ce147e Create a dummy translation annotation for damage patterns, and do translations on the GUI side 2020-07-10 23:36:52 -04:00
zhaoweny
2203767fde i18n/zh_CN: update Chinese translation for damage pattern and target profile 2020-07-09 10:17:57 +08:00
zhaoweny
067f60bfcd i18n: separate strings for simpler translation 2020-07-08 17:51:55 +08:00
zhaoweny
d4c9423c77 i18n: annotate targetProfile.py, damagePattern.py
Also init PyfaApp earlier for targetProfile.py and damagePattern.py localization
2020-07-08 14:42:05 +08:00
zhaoweny
ffbae4826d i18n/zh_CN: tweaks for Chinese translation 2020-07-07 17:13:47 +08:00
zhaoweny
da2ec4d759 i18n/zh_CN: update translation for service slot 2020-07-07 16:37:13 +08:00
zhaoweny
5a45863432 i18n: add translation mapping for service slot 2020-07-07 16:37:13 +08:00
zhaoweny
605addd0d6 i18n/zh_CN: update translation for pyfa_gauge.py 2020-07-07 16:37:13 +08:00
zhaoweny
5f45709118 i18n: annotate pyfa_gauge.py 2020-07-07 16:37:12 +08:00
blitzmann
76674435c9 Remove default for language 2020-07-05 15:22:08 -04:00
blitzmann
dcdf69d658 Merge branch 'master' into i18n 2020-07-05 14:10:04 -04:00
blitzmann
47e428d57e Fix publicity and group checking 2020-07-05 14:00:46 -04:00
blitzmann
95af9660b6 Move mainframe import below app init, which will allow us to set up locale correctly before anything else loads 2020-07-05 14:00:18 -04:00
blitzmann
6e7b8cca24 Fix missing damage type icons for missle selector 2020-07-05 13:42:23 -04:00
Ryan Holmes
af62a7273f Merge pull request #2220 from zhaoweny/i18n
i18n: return compiled_data in _readData
2020-07-02 09:00:33 -04:00
zhaoweny
6cdb4a7dc1 i18n: return compiled_data in _readData 2020-07-02 16:13:39 +08:00
blitzmann
469f0a9be7 Skills were attempting to match English names with translated names 2020-07-01 20:49:06 -04:00
blitzmann
832ad5bc6b Merge commit '5d95877d2c856bc7336d2032ecb2a4d5c24c75c6' into i18n2 2020-07-01 20:47:50 -04:00
Joshua Pierce
bc77f24471 Translating Typo To English 2020-07-01 20:45:40 -04:00
zhaoweny
5d95877d2c i18n: use rsplit on typeName to avoid explict for-loop 2020-07-01 21:45:21 +08:00
zhaoweny
3642ff8cee i18n: update zh_CN translation 2020-07-01 11:48:55 +08:00
zhaoweny
8cc770467e i18n: fix crash on right clicking a Tactical Destroyer fit 2020-07-01 11:48:37 +08:00
zhaoweny
85e779469f i18n: more annotation 2020-07-01 11:48:06 +08:00
blitzmann
29f6ac0d99 Initialize other langauges, update README to provide more information, simplify the langauge codes 2020-06-30 23:33:34 -04:00
Ryan Holmes
4d49512a7e Merge pull request #2217 from zhaoweny/i18n
i18n: sort zh_CN translation, more zh_CN translation
2020-06-30 09:32:45 -04:00
zhaoweny
dae13f934e i18n/zh_CN: update translation 2020-06-30 17:21:02 +08:00
zhaoweny
bf99132f2f i18n: more string annotation 2020-06-30 17:19:40 +08:00
zhaoweny
25a694bd69 i18n: annotate copySelectDialog.py 2020-06-30 16:37:36 +08:00
zhaoweny
038b7ce931 i18n: fix 'Level Not learned' issue in #2202 (comment) 2020-06-30 15:15:15 +08:00
zhaoweny
8625dea833 i18n: update locale/README.md to include sort detail; sort zh_CN lang.po 2020-06-30 11:50:19 +08:00
Ryan Holmes
6f3049f39b Merge pull request #2208 from pyfa-org/i18n_db
i18n Localization - Database
2020-06-29 22:32:29 -04:00
blitzmann
52b74d9950 Some export fixes 2020-06-29 22:15:26 -04:00
blitzmann
dc60c3d68b Update the dump script with latest phobos changes (including custom write in case phobos doesn't merge it in) 2020-06-29 22:06:03 -04:00
blitzmann
6612724beb Fix market group generation to be language agnostic 2020-06-29 21:26:58 -04:00
blitzmann
c242a18a34 Ensure that languages that are set are actually supported 2020-06-29 21:10:10 -04:00
blitzmann
732634fefa Updated the string manipulation texts to be prefixed, allowing for better context management if needed for things like "Effects", "System Effects". Added en translations to handle them on the English side. Updated the zh translations using merge:
`msgmerge --update locale/zh_CN/LC_MESSAGES/lang.p o locale/lang.pot`
2020-06-29 20:57:17 -04:00
blitzmann
10a4f62b78 Merge branch 'i18n_db' of https://github.com/pyfa-org/Pyfa into i18n_db 2020-06-29 20:13:18 -04:00
Ryan Holmes
df78eb5781 Merge pull request #2214 from copyliu/cevemarket
add market source ceve-market
2020-06-29 20:07:44 -04:00
blitzmann
c39ae080fb Update db-update to be language agnostic (further testing required) 2020-06-29 20:03:33 -04:00
Ryan Holmes
e5e8a570db Merge pull request #2213 from zhaoweny/i18n_db
i18n_db: sort and (slightly) update zh_CN translation
2020-06-29 11:01:16 -04:00
Copy Liu
c1a5828d6b add market source ceve-market 2020-06-29 20:58:46 +08:00
zhaoweny
eaea671f4e i18n_db: remove git-lfs from Travis CI config 2020-06-29 15:38:10 +08:00
zhaoweny
1145a27e04 i18n_db: update shipBrowser to use displayName 2020-06-29 15:31:50 +08:00
zhaoweny
b18205a184 i18n_db: sort and (slightly) update zh_CN translation 2020-06-29 10:51:43 +08:00
blitzmann
9703ce70d9 Merge branch 'i18n' into i18n_db 2020-06-28 17:57:20 -04:00
blitzmann
47dd6f7bba Add annotations to the rack separators in the fitting view 2020-06-28 17:56:57 -04:00
blitzmann
3db9c637e0 Force EFT export to English variant 2020-06-28 17:41:28 -04:00
blitzmann
77d233ca1c Fix environmental variables for localizations 2020-06-28 13:38:33 -04:00
blitzmann
b225093b1f Fix exception when opening WH projection menu (still have other issues that need to be worked out tho) 2020-06-28 11:57:39 -04:00
blitzmann
4a6a3fc6ea Keep name on group, create displayName property to point to translated version 2020-06-28 00:54:51 -04:00
blitzmann
2fd4168ab7 Fix two group name issues 2020-06-28 00:40:59 -04:00
Ryan Holmes
22498e5605 Merge pull request #2211 from zhaoweny/i18n_db
i18n_db: fix ValueError exception when name should be groupName
2020-06-28 00:18:01 -04:00
zhaoweny
f515536d1a i18n_db: fix ValueError exception when name should be groupName 2020-06-28 11:42:27 +08:00
blitzmann
5c7e3fe782 Remove LSF, convert staticdata files to split files 2020-06-27 22:27:28 -04:00
blitzmann
546a3b6e01 Fix turrent ammo type grouping (using English names for grouping). Also made missile damage type grouping translation-aware 2020-06-27 21:06:16 -04:00
blitzmann
1d0c890c23 Fix the preferences not loading / saving correctly (needed to be done after paths were set) 2020-06-27 21:05:00 -04:00
blitzmann
5377210b89 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2020-06-26 23:30:51 -04:00
blitzmann
1936255f2c Merge branch 'issue2209' 2020-06-26 23:30:40 -04:00
blitzmann
b3e5763cfc Fix for #2209 - Flip the None check to happen first instead of second, otherwise if Notes is None then the first check will fail due to trying to len(None) 2020-06-26 23:30:15 -04:00
DarkPhoenix
7442f315c9 Do not activate scanners by default 2020-06-26 21:30:43 +03:00
blitzmann
427b1189f7 travis fix? 2020-06-25 22:37:31 -04:00
blitzmann
19da89a467 Fixes to some translations 2020-06-25 22:23:12 -04:00
blitzmann
be4f6241a9 more tweaks 2020-06-25 22:06:57 -04:00
blitzmann
03e29e02b1 update unit to include all the translations 2020-06-25 22:04:04 -04:00
blitzmann
853b65d6aa Some clean up and commenting out unused columns [I think] 2020-06-25 22:01:27 -04:00
blitzmann
45dae7a031 Remove index on items.description(lol) 2020-06-25 21:51:24 -04:00
blitzmann
4130852e76 Remove old todo 2020-06-25 21:47:26 -04:00
blitzmann
3d238a1cc1 Reset forced language to English 2020-06-25 21:36:09 -04:00
blitzmann
977ae98ea6 more conversions on the traits 2020-06-25 21:35:26 -04:00
blitzmann
dac35597ea Update traits 2020-06-25 21:32:43 -04:00
blitzmann
0a1489719b Rename the descriptions so as not to confuse the synonym 2020-06-25 21:18:25 -04:00
blitzmann
4ff63e5fc4 Create deferred descriptions for each of the item description languages, and then one synonym to rule them all 2020-06-25 21:09:32 -04:00
blitzmann
c3389fb19b Add all languages to market groups 2020-06-25 21:08:37 -04:00
blitzmann
42706f35c6 Update various instances where Category name wasn't displaying the translated version (in context menus) 2020-06-25 20:32:49 -04:00
blitzmann
c7ec87b979 Fix a couple of bugs by referencing raw names, and include all translations for types table 2020-06-25 19:23:28 -04:00
blitzmann
66140f092b More tweaks to dynamically generate the columns, and a fix for attribute display names 2020-06-25 00:40:29 -04:00
blitzmann
8be4b0dd91 Introduce way to dynamically map the languages, helps reduce the typing and also should "just work" if there's any new languages added 2020-06-25 00:09:36 -04:00
blitzmann
a2f65e9d46 categoryName > name (this was caused by having name not be the literal data rather than the synonym) 2020-06-24 23:59:58 -04:00
blitzmann
c040ff26c0 Update schema and db_update to support translations.
(language setting from preferences is borked for some reason)
2020-06-24 23:33:24 -04:00
blitzmann
92ecd8c844 Add the other files 2020-06-24 23:28:08 -04:00
blitzmann
60c8a66bea Add the other directories 2020-06-24 23:28:00 -04:00
blitzmann
b1ff13e370 Add fsd_binary 2020-06-24 23:27:16 -04:00
blitzmann
50b0df7d6d Track fsd_binary 2020-06-24 23:26:50 -04:00
blitzmann
281e30f78a Remove static data 2020-06-24 23:23:37 -04:00
blitzmann
821378e2c3 Add LFS, because... translations are heafty 2020-06-24 23:01:23 -04:00
blitzmann
433c9555bf Removed the util function - this would actually break older migrations if we added things that didn't exist in future iterations. Each migration should be self-contained 2020-06-24 15:18:43 -04:00
blitzmann
d1345fc71e Fixes #2205 - runs conversions on modules.baseItemID since the creation of baseItemID. Also, centralized the function to convert modules so that in case we ever add other things that need to be converted, they are all in one spot. 2020-06-24 15:09:51 -04:00
blitzmann
d4106a7229 fix mac spec file to include locales 2020-06-24 13:28:58 -04:00
blitzmann
079256a99f some tweaks to get the languages to compile 2020-06-24 13:01:36 -04:00
blitzmann
bcd7e6d56d Add language compilation to build process (maybe?) 2020-06-24 12:51:19 -04:00
blitzmann
e56db0d129 add script to automatically generate all languages 2020-06-24 12:47:11 -04:00
blitzmann
6035d26dd0 add msgfmt.py to scripts/ to have a way to produce localizations 2020-06-24 12:11:24 -04:00
Ryan Holmes
61127dc4d3 Merge pull request #2204 from zhaoweny/i18n
i18n: annotate Preferences, update zh_CN translations
2020-06-24 09:48:47 -04:00
zhaoweny
f4f0dc775c i18n/zh_CN: update translation for context menus 2020-06-23 16:45:30 +08:00
zhaoweny
d33976a2ad i18n: more annotation for context menus, stats view tooltips 2020-06-23 15:55:28 +08:00
zhaoweny
1c4de8b259 i18n: annotate gui/builtinContextMenus 2020-06-23 15:55:16 +08:00
zhaoweny
1079371ecf i18n/zh_CN: update translation for unified wildcard annotations 2020-06-23 01:36:00 +08:00
zhaoweny
85c3158e98 i18n: unify FileDialog wildcard string annotations 2020-06-23 01:16:42 +08:00
zhaoweny
2d97f0952e i18n/zh_CN: translation for item stat views 2020-06-22 20:04:21 +08:00
zhaoweny
396640e5b1 i18n: annotate item stat views 2020-06-22 20:03:53 +08:00
zhaoweny
aa8a03b18b i18n/zh_CN: update translation 2020-06-22 17:56:35 +08:00
zhaoweny
889e901cbd i18n: improve string literal annotations
1. annotate more strings for statsViews, itemStats
2. fix raw title and description for preferences
3. fix crash on opening AttributeEditor, characterEditor
2020-06-22 17:55:58 +08:00
zhaoweny
07696ce0ed i18n: fix typos in locale/README.md 2020-06-22 10:16:48 +08:00
zhaoweny
ffdbab87e9 i18n/zh_CN: lots of new strings for Preferences, more translations 2020-06-21 17:23:46 +08:00
zhaoweny
4eda1a1d66 i18n: minor tweaks for easier translation
1. tweaks for characterEditor.py and patternEditor.py according to PR discussion.
2. fix for "Recent Fits" label not translated
2020-06-21 17:11:58 +08:00
zhaoweny
29ec297acb i18n: annotate string literals in gui/builtinPreferenceViews 2020-06-21 16:06:43 +08:00
zhaoweny
7cd7d475db i18n: minor tweaks for locale/README.md 2020-06-21 15:35:41 +08:00
blitzmann
02aa4eb2b4 Add UI to change language 2020-06-20 15:46:30 -04:00
blitzmann
7cf9326311 Add language to eos config
This should be accessible now when table mapping occurs, so we should be able to use it to determine which column to pull from for translation values.
2020-06-20 15:31:10 -04:00
blitzmann
2214269cca Bring language selection to the forefront before wx app initialization 2020-06-20 15:20:56 -04:00
blitzmann
9b73f1c221 Final conversion of _t() 2020-06-20 15:13:33 -04:00
blitzmann
339367f730 More _t() conversion 2020-06-20 15:09:42 -04:00
blitzmann
68f7e6c709 Start converting _() to _t() 2020-06-20 15:07:14 -04:00
Ryan Holmes
eb657e804c Merge pull request #2203 from zhaoweny/i18n
I18n: more zh_CN translations and a better locale/README.md
2020-06-20 15:01:13 -04:00
blitzmann
413bc5d46c Minor tweaks per PR review 2020-06-20 14:59:49 -04:00
zhaoweny
e4e49cef54 i18n: extend locale/README.md and add translation workflow detail 2020-06-20 21:43:47 +08:00
zhaoweny
49cf03759b i18n: fix unresolved reference Inspection errors 2020-06-20 17:57:01 +08:00
zhaoweny
a05e7dbad1 i18n/zh_CN: add more UI translation 2020-06-20 17:42:52 +08:00
zhaoweny
d28665f172 i18n/zh_CN: add lots of UI translation 2020-06-20 16:03:42 +08:00
Ryan Holmes
1848acc1ba Merge pull request #2201 from pyfa-org/i18n_zhaoweny
I18n - zhaoweny
2020-06-19 23:22:40 -04:00
blitzmann
d9e5349edd Move supported languages to the LocaleSettings class, and use the command parameter as an override 2020-06-19 22:44:09 -04:00
blitzmann
d939b0e565 rename pyfa.po to lang.po 2020-06-19 22:27:35 -04:00
blitzmann
c290e9e23a Add various references 2020-06-19 22:25:23 -04:00
zhaoweny
ce0d8b1247 i18n/zh_CN: add more translation for builtinStatsViews
(cherry picked from commit 97c1c597c8c75450350123ed471f082e5ad8dabd)
2020-06-19 22:20:37 -04:00
zhaoweny
834e4a3d6e i18n: implement LocaleSettings, use wx.GetTranslation instead of gettext
(cherry picked from commit 3648a5c8c7b230a4b695a29ebfaad3877e7b644f)
2020-06-19 22:19:20 -04:00
zhaoweny
3d9b4c11d4 i18n/zh_CN: reformat code and ignore _
1. update `Pyfa_Inspections.xml` to ignore `_`

i18n module `gettext` will do a `gettext.install(...)` to put `_` function into `builtin` module. Currently PyCharm does not recognize this as a function and report as unresolved reference.

2. reformat code to remove padding for vertical dicts

3. update `Pyfa_CodeStyle.xml` to not pad vertical dicts

(cherry picked from commit e5a570a0078f05fe34c473841af6b7746e06bfca)
2020-06-19 22:17:49 -04:00
zhaoweny
2d3a661442 i18n/zh_CN: update zh_CN translation for lots of StatsViews
(cherry picked from commit bdac2f825fba27000c87f20de8e09e61ae1376d2)
2020-06-19 22:17:21 -04:00
zhaoweny
343f4a5196 i18n/zh_CN: basic gettext i18n setup and demo for zh_CN translation
(cherry picked from commit 8fe58a95f7d9c08d792b8e17605700607662f7c9)
2020-06-19 22:15:44 -04:00
blitzmann
31fd480fb0 Fix some missing references 2020-06-19 21:54:30 -04:00
blitzmann
8e83adf7db Merge tag 'v2.22.1' into i18n
# Conflicts:
#	gui/esiFittings.py
2020-06-19 21:51:45 -04:00
blitzmann
7fa638f62b More localization 2020-06-19 11:35:37 -04:00
DarkPhoenix
31cae0e54b Bump version 2020-06-18 17:28:02 +03:00
DarkPhoenix
b2cc3ae600 Update static data to 1751741 2020-06-18 13:52:46 +03:00
DarkPhoenix
62d1d6a06d Avoid crash when nothing is selected 2020-06-18 06:04:23 +03:00
DarkPhoenix
83fa567321 Pass primitives around instead of SQL Alchemy objects 2020-06-18 05:33:12 +03:00
DarkPhoenix
9b315b5870 Fix a few mistypes 2020-06-17 21:53:24 +03:00
DarkPhoenix
3094fd32fc Add destructible beacons to projected effects 2020-06-17 17:07:34 +03:00
DarkPhoenix
c3f1824a84 Rename charge export button 2020-06-16 21:06:42 +03:00
DarkPhoenix
b558ae3810 Add an option not to export charges to ESI 2020-06-15 23:38:07 +03:00
DarkPhoenix
c38f05902a Add alternate redo shortcut 2020-06-15 17:20:20 +03:00
DarkPhoenix
181e1e1e30 Make scanners active and expose data to misc column 2020-06-15 16:37:52 +03:00
DarkPhoenix
3fc26254ae bump version 2020-06-15 16:14:53 +03:00
DarkPhoenix
ca8822c455 Fix upwell ships' race 2020-06-15 16:14:20 +03:00
DarkPhoenix
4c55d32086 Update icons 2020-06-15 15:54:28 +03:00
DarkPhoenix
c13817708e Add vorton damage booster effect 2020-06-15 15:20:59 +03:00
DarkPhoenix
39cab4be72 Remove DB TDs from seen items 2020-06-15 15:00:36 +03:00
DarkPhoenix
f80473d073 Update static data to 1748920 2020-06-15 14:50:58 +03:00
DarkPhoenix
0d9be1b174 Merge branch 'singularity' 2020-06-15 14:42:13 +03:00
DarkPhoenix
83b0b3ff0e Fix jargon definitions for missile damage types 2020-06-13 12:33:06 +03:00
DarkPhoenix
c4b490907d Add alternate DNA format import 2020-06-12 02:20:32 +03:00
DarkPhoenix
f89fe4d5d7 Fix merge issue 2020-06-09 19:11:11 +03:00
DarkPhoenix
81dced03bf Disable ammo graph 2020-06-09 19:07:23 +03:00
DarkPhoenix
27d3bea8d8 Merge branch 'ammo_graph' into singularity
# Conflicts:
#	gui/targetProfileEditor.py
2020-06-09 19:04:20 +03:00
DarkPhoenix
7eaeea325d Bump version 2020-06-09 10:54:21 +03:00
DarkPhoenix
9695526352 Update staticdata to 1744483 2020-06-09 10:51:28 +03:00
DarkPhoenix
4f35bc38db Fix structure module drag'n'drop 2020-06-09 01:56:31 +03:00
blitzmann
2490d3de92 More localization 2020-06-07 13:44:15 -04:00
DarkPhoenix
d9c7c1a0fd Fix burst projectors' misc column 2020-06-06 19:22:55 +03:00
DarkPhoenix
a94e66e5ed Invuln - alias for old invulns 2020-06-06 02:25:08 +03:00
DarkPhoenix
e9c41c6439 Add renders of 2/3 of new ships 2020-06-06 01:42:57 +03:00
DarkPhoenix
b24ceb95f5 Add missing icons 2020-06-05 22:22:03 +03:00
DarkPhoenix
6ba6e0f69b Implement skill and booster effects, and bump version 2020-06-06 01:09:55 +03:00
DarkPhoenix
9aca49e539 Add damage mod effect and gun application readout 2020-06-06 00:25:19 +03:00
DarkPhoenix
01f1cdb175 Implement gun effect and its support in graphs 2020-06-06 00:11:36 +03:00
DarkPhoenix
c1356906bb Add ship effects 2020-06-05 23:36:39 +03:00
DarkPhoenix
8229537e5f Run effect used by script 2020-06-05 22:50:34 +03:00
DarkPhoenix
6cfa2161ec Add conversions for amplifier tiericide 2020-06-05 22:47:13 +03:00
DarkPhoenix
fa3cf46786 Update static data to 1742848 2020-06-05 22:28:25 +03:00
DarkPhoenix
ac40dfd018 Update version again 2020-05-26 16:07:01 +03:00
DarkPhoenix
4c32d559bb Bump version 2020-05-26 16:04:51 +03:00
DarkPhoenix
02ee12586f Adjust jargon definitions to new realities 2020-05-26 16:03:48 +03:00
DarkPhoenix
496f15a83e Add conversions/migrations 2020-05-26 15:50:52 +03:00
DarkPhoenix
acf6af8f95 Update effect definitions and headers to all the renamed items 2020-05-26 15:30:50 +03:00
DarkPhoenix
225b00b9ff Update staticdata to 1733182 and update DB generation script 2020-05-26 15:22:08 +03:00
blitzmann
c3ceebcec7 remove old test string 2020-05-16 15:10:01 -04:00
blitzmann
5177768962 Start working through the files, adding translation strings 2020-05-16 14:42:29 -04:00
blitzmann
fdd06ed3d6 Add some boilerplate code to add support for localization 2020-05-15 21:55:48 -04:00
DarkPhoenix
7f2b7415ea Disable evemarketdata price source 2020-05-14 15:10:04 +03:00
DarkPhoenix
d1d9ae4dac Add fuzzwork as price data source 2020-05-14 15:09:38 +03:00
DarkPhoenix
ac7ccfb6a3 Change how double-clicking ammo behaves 2020-05-04 19:18:14 +03:00
DarkPhoenix
05c2c41762 Destroy effective label when switching from firepower to mining view, and add it back to correct position when needed 2020-05-04 13:46:52 +03:00
DarkPhoenix
10f5133282 Revert "Disable system theme for listctrls on windows"
This reverts commit 42658a8167.
2020-04-27 13:55:30 +03:00
DarkPhoenix
42658a8167 Disable system theme for listctrls on windows 2020-04-26 23:27:28 +03:00
DarkPhoenix
6dbf38dbb4 Revert "Switch to wxpython 4.1.0". Refer to #2179 for more info on
reasons

This reverts commit 15fe8f6261.
2020-04-25 17:37:29 +03:00
DarkPhoenix
64306e2366 Align attribute icons the same way as input boxes in target profile
editor
2020-04-25 17:29:29 +03:00
DarkPhoenix
f259df85cd Fix editors 2020-04-25 17:27:29 +03:00
DarkPhoenix
1090589cb2 Fix preferences for wx 4.1.0 2020-04-25 17:19:05 +03:00
DarkPhoenix
29e09fcdda Fix abyssal item slider on windows 2020-04-25 12:36:45 +03:00
DarkPhoenix
36fd4aeaff Redo fix for 2176 2020-04-25 15:14:27 +03:00
DarkPhoenix
c46a59e3b1 Fix gauge bars 2020-04-25 09:57:49 +03:00
DarkPhoenix
8a3a21972a Fix error dialog layout 2020-04-25 09:40:50 +03:00
DarkPhoenix
6839669e04 Remove a few flags the new wx complains about 2020-04-25 09:36:40 +03:00
DarkPhoenix
5645e20505 Do not float auxiliary windows on parent if there is no parent 2020-04-25 09:29:14 +03:00
DarkPhoenix
15fe8f6261 Switch to wxpython 4.1.0 2020-04-25 09:26:47 +03:00
DarkPhoenix
855fafa94d Bump version 2020-04-24 15:35:52 +03:00
DarkPhoenix
4e10335ae7 Revert "Try resetting locale on wx 4.0.6 as an attempt to work around #2174"
This reverts commit ea07bbf4f9.
2020-04-24 15:10:33 +03:00
DarkPhoenix
21ea9ce579 "Move" attributes at DB generation time 2020-04-24 15:10:00 +03:00
DarkPhoenix
ea07bbf4f9 Try resetting locale on wx 4.0.6 as an attempt to work around #2174 2020-04-24 11:37:27 +03:00
DarkPhoenix
8eed6fbe21 Ignore mutations with 0 base value 2020-04-23 19:47:57 +03:00
DarkPhoenix
0859f2fbe9 Hide limited synth boosters 2020-04-22 02:27:20 +03:00
DarkPhoenix
71ba33edeb Fix tail clear method 2020-04-21 19:00:44 +03:00
DarkPhoenix
ce80d92b35 Limit amount of fits returned by search by 100 2020-04-21 11:16:06 +03:00
DarkPhoenix
f17cf9b736 Fix undo for fill with module (which was caused by module add command not being undone properly in case of failure) 2020-04-20 16:36:16 +03:00
DarkPhoenix
98579c774b Change shortcuts for undo/redo from built-in wx standards to ctrl-z and ctrl-y 2020-04-20 14:42:32 +03:00
DarkPhoenix
509fa279e7 Initialize session container with main thread session 2020-04-17 19:15:47 +03:00
DarkPhoenix
091ee87761 Update char list when new character gets added 2020-04-17 13:31:15 +03:00
DarkPhoenix
c0c20cc92e Remove skill refresh button 2020-04-17 13:27:51 +03:00
DarkPhoenix
1341f7bca1 Make some jargon replacements a bit looser 2020-04-17 11:27:28 +03:00
DarkPhoenix
fe93db1d4b Round booster side-effect context menu 2020-04-17 00:25:33 +03:00
DarkPhoenix
5db97ea773 Bump version 2020-04-16 22:46:45 +03:00
DarkPhoenix
1758e4f320 Rework fix for projection, so that it does not recalculate projected fits too early 2020-04-16 22:25:10 +03:00
DarkPhoenix
1a897c0419 Pass search results as set of item IDs 2020-04-16 15:13:32 +03:00
DarkPhoenix
32db3e3179 Create scoped gamedata sessions 2020-04-16 15:01:00 +03:00
DarkPhoenix
d830a8957a Bump version 2020-04-15 16:54:24 +03:00
DarkPhoenix
652ea48223 Accept 0 free slots for guns which have already been fitted 2020-04-15 16:53:03 +03:00
DarkPhoenix
8c25b2b8f5 Make sure it's impossible to add extra cap boosters via dragging too 2020-04-15 15:40:54 +03:00
DarkPhoenix
db4c56be8e Bump version 2020-04-15 15:27:19 +03:00
DarkPhoenix
f3bcffe2f9 Implement fax cap booster limit 2020-04-15 15:23:49 +03:00
DarkPhoenix
bc5786d099 Update static data to 1706308 2020-04-15 14:50:55 +03:00
DarkPhoenix
5959fe5daf Ignore case when searching for implant sets to allow some inconsistencies on CCP side 2020-04-14 15:28:40 +03:00
DarkPhoenix
649d338bb1 Split implants and boosters in EFT and multibuy exports 2020-04-14 11:36:08 +03:00
DarkPhoenix
dcb058a718 Update existing character if character with the same name exists 2020-04-13 12:52:02 +03:00
DarkPhoenix
1772bb5e7f Merge branch 'master' into singularity 2020-04-13 12:45:25 +03:00
Anton Vorobyov
30bd0adb06 Merge pull request #2159 from soro/auto_create_char
Regarding #2045: automatically create a character for a new sso character
2020-04-12 22:49:01 +03:00
DarkPhoenix
44dfcf771c Ensure projected fits get recalculated, since they get checkStates'd anyway 2020-04-11 02:26:17 +03:00
DarkPhoenix
a1f8a7a930 Fix escaping in regex search 2020-04-11 01:33:53 +03:00
Soeren Roerden
b22887dfad automatically create a character for a new sso character and add button to retrieve all chars directly linked to existing sso characters 2020-04-10 21:12:38 +02:00
DarkPhoenix
28137fa3f4 Remove excessive space 2020-04-10 13:11:04 +03:00
DarkPhoenix
9cbdc6055d Add search timer to attribute overrides to prevent hangs 2020-04-10 11:52:57 +03:00
DarkPhoenix
fc93c61fcf Add more entries 2020-04-10 11:31:17 +03:00
DarkPhoenix
3fa2e7ebd1 More additions to jargon 2020-04-10 06:07:33 +03:00
DarkPhoenix
818628da0c Finalize new jargon dictionary 2020-04-10 05:53:24 +03:00
DarkPhoenix
adf90a8263 Split basic and regex search functions 2020-04-10 00:57:41 +03:00
DarkPhoenix
362923ac64 Overhaul jargon dictionary (some entries are still missing) 2020-04-09 23:29:51 +03:00
DarkPhoenix
7d73838ce1 Change the way user definitions are used 2020-04-08 14:06:49 +03:00
DarkPhoenix
b3278ca9ec Tokenize regexp requests taking into consideration regexp context 2020-04-08 13:24:48 +03:00
DarkPhoenix
5707914ad5 Make use of regex for search 2020-04-08 03:17:25 +03:00
DarkPhoenix
9b697b24d8 Implement regexp function for gamedata 2020-04-08 02:34:28 +03:00
DarkPhoenix
098b088da6 Bump version 2020-04-07 21:39:24 +03:00
DarkPhoenix
14d62f31e1 Add conversions for names 2020-04-07 21:37:40 +03:00
DarkPhoenix
e7b1f55d08 Update static data to 1702461 2020-04-07 20:59:07 +03:00
DarkPhoenix
8f501896a1 Give separate axis selector and axis label names to make it clearer what the graphs do 2020-04-07 20:37:28 +03:00
DarkPhoenix
befcb9b874 Un-hide and un-fuck bumping graphs 2020-04-07 20:14:06 +03:00
DarkPhoenix
c70afa9a4c Hide experimental bumping graphs 2020-04-07 18:25:40 +03:00
DarkPhoenix
029c7dd4c2 Recalculate fit when overrides are toggled 2020-04-07 18:05:43 +03:00
DarkPhoenix
1f83dba1ac Add missing hidden imports to platform-specific specifications 2020-04-07 18:00:17 +03:00
DarkPhoenix
6eae3405fd Add hidden import for newer version of setuptools 2020-04-07 17:39:24 +03:00
DarkPhoenix
c0e1d9e4de Attempt to use newer version of setuptools 2020-04-07 17:09:59 +03:00
DarkPhoenix
7c0bd7aa88 Leave only setuptools override 2020-04-07 16:41:28 +03:00
DarkPhoenix
394583584c Remove some of hardcoded libraries for MacOS X build 2020-04-07 15:08:30 +03:00
DarkPhoenix
4112e2aa6b Debugging Mac OS X build, step 1 2020-04-07 14:17:55 +03:00
DarkPhoenix
aa19e0da72 Add bunch of experimental graphs related to bumping 2020-04-07 13:46:28 +03:00
DarkPhoenix
bba9be1598 Add momentum graphs 2020-04-07 10:50:12 +03:00
DarkPhoenix
17998916b4 Bump version 2020-04-06 22:24:06 +03:00
DarkPhoenix
543089bcd9 Add context menu support for predefined implant sets 2020-04-06 22:20:28 +03:00
DarkPhoenix
7f35c78a65 Add data about implant sets to eve.db 2020-04-06 21:01:20 +03:00
DarkPhoenix
b25798dd83 Update effects 2020-04-06 20:14:19 +03:00
DarkPhoenix
744b9ff78a Updated staticdata to 1701385 2020-04-06 19:19:06 +03:00
DarkPhoenix
8dc1457ebb Change the way zip file is generated 2020-04-06 15:09:06 +03:00
DarkPhoenix
982ad54fab Merge branch 'Metallicow-optimize-images' 2020-04-06 15:29:10 +03:00
DarkPhoenix
912192cd7d Merge branch 'optimize-images' of https://github.com/Metallicow/Pyfa into Metallicow-optimize-images 2020-04-06 15:26:32 +03:00
DarkPhoenix
74cd6d48da Show propmpt to creade damage patterns when there're none 2020-04-06 11:14:21 +03:00
DarkPhoenix
3467a7fe3f Update static data to 1684558 2020-03-11 17:01:34 +03:00
DarkPhoenix
eb269a05ed Bump version 2020-03-10 19:39:22 +03:00
DarkPhoenix
c63cf4b3b0 Add cap booster conversions 2020-03-10 19:19:13 +03:00
DarkPhoenix
11ed94454d Update staticdata to 1683031 2020-03-10 19:07:42 +03:00
DarkPhoenix
8df07645da Show RR power for uncharged ancillary RRs 2020-03-06 00:50:18 +03:00
DarkPhoenix
5666fdd250 Bump version 2020-02-27 15:24:45 +03:00
DarkPhoenix
0b55ae40fc Update staticdata to 1675961 2020-02-27 15:09:54 +03:00
DarkPhoenix
3726e84697 Add dbuffcollections (just to have overview of changed fleet buffs when stuff changes) 2020-02-20 13:31:18 +03:00
DarkPhoenix
a0c4341102 Fix ECM range rigs affecting ECM bursts with penalty 2020-02-17 23:42:48 +03:00
Metallicow
cd6b1038e8 optimize all pngs 2020-02-13 14:58:27 -06:00
DarkPhoenix
10583fd506 Update fighter additions tab icon 2020-02-13 17:25:40 +03:00
DarkPhoenix
713694be56 Bump version 2020-02-13 17:00:58 +03:00
DarkPhoenix
f50293cf77 Revert to wxpython 4.0.6 once again (see issue 2136) 2020-02-13 16:57:23 +03:00
DarkPhoenix
7c88fa477f Bump version 2020-02-13 12:20:03 +03:00
DarkPhoenix
f8df540fad Use newer wxpython version once again 2020-02-13 12:19:37 +03:00
DarkPhoenix
61a01805cc Reset locale and remove resolution data from all the images (wxpython phoenix issue #1515) 2020-02-13 12:14:26 +03:00
Metallicow
a93915cf04 trim trailing whitespace 2020-02-12 16:14:12 -06:00
DarkPhoenix
0f74c97fbf Temporarily revert python version to 3.7 2020-02-12 18:31:44 +03:00
DarkPhoenix
29713b69dc Fix the hack 2020-02-12 18:25:17 +03:00
DarkPhoenix
cc3c2cb9c8 Add hack to build wx on windows 2020-02-12 18:22:31 +03:00
DarkPhoenix
b36a3959da Revert wxpython version to 4.0.6 2020-02-12 18:18:18 +03:00
DarkPhoenix
3b26bfc0e9 Add missing entries to migration 2020-02-11 17:02:00 +03:00
DarkPhoenix
c59b621963 Add capacitor transfer tiericide conversion entries 2020-02-11 16:52:15 +03:00
DarkPhoenix
977a8fa329 Update staticdata to 1663997 2020-02-11 16:20:08 +03:00
DarkPhoenix
a5226fee83 Merge branch 'singularity' 2020-02-11 16:08:46 +03:00
DarkPhoenix
aec5a46452 Fix shebang line 2020-02-05 09:43:10 +03:00
DarkPhoenix
588f9a4490 Re-use market service item sorting for attribute overrides 2020-02-04 01:48:13 +03:00
DarkPhoenix
4ba948c6f9 Merge branch 'master' into ammo_graph
# Conflicts:
#	gui/builtinMarketBrowser/itemView.py
#	service/market.py
2020-02-04 01:43:52 +03:00
DarkPhoenix
e4069a3988 Update AppVeyor deploy oauth key after repo transfer 2020-02-04 00:41:03 +03:00
DarkPhoenix
6527f9e11e Attempt to terminate threads when pyfa is closed 2020-02-03 17:12:23 +03:00
DarkPhoenix
9ddfcc894f Make sure not to catch keyboard interrupts and system exits 2020-02-03 16:12:41 +03:00
DarkPhoenix
f22a4f13e5 Allow pasting non-mutated modules via ctrl-v 2020-02-03 15:54:22 +03:00
DarkPhoenix
fc9337df67 Add more info prints to mac os packaging scripts 2020-02-03 13:37:27 +03:00
DarkPhoenix
98a8332cfa Change the way we update pip for mac os builds 2020-02-03 13:33:26 +03:00
DarkPhoenix
a78eedad48 Remove unused files 2020-02-03 13:30:04 +03:00
DarkPhoenix
85e1a1bd06 Use newer image version for mac builds 2020-02-03 13:25:51 +03:00
DarkPhoenix
25b2c04309 Do not set environment variable as it's not used anymore 2020-02-03 13:23:56 +03:00
DarkPhoenix
54a84d0e42 Do not attempt to install custom python version, just use system default 2020-02-03 13:23:13 +03:00
DarkPhoenix
af0a4d1def Update travis deployment key 2020-02-03 13:11:48 +03:00
DarkPhoenix
97cdde84ce Uninstall not when setup just begins, but right before install begins 2020-02-03 06:17:28 +03:00
DarkPhoenix
a65129b277 Fix function definition order in inno setup script 2020-02-03 06:06:25 +03:00
DarkPhoenix
3b40a49918 Uninstall previous pyfa version unconditionally 2020-02-03 05:59:29 +03:00
DarkPhoenix
d95345b476 Insist on uninstalling old pyfa versions when next one is about to be installed 2020-02-02 23:48:06 +03:00
DarkPhoenix
2ba2d95017 Change clone depth to 400 on appveyor 2020-02-02 14:46:26 +03:00
DarkPhoenix
4d0ffedcc8 Install in 64 bit mode on Windows 2020-02-02 11:07:20 +03:00
DarkPhoenix
84abde4fc5 Some OCD in echoes + testing if build is started after webhook removal 2020-02-02 04:22:41 +03:00
DarkPhoenix
8897f1e4b1 Use my credentials when uploading builds to releases 2020-02-02 04:08:10 +03:00
DarkPhoenix
6f33cacb7a Clean up appveyor file 2020-02-02 03:54:52 +03:00
DarkPhoenix
b1a8c0ad09 Disable appveyor's RDP setup as it's a security hole 2020-02-02 03:40:20 +03:00
DarkPhoenix
13ed635803 We do not care if all PR builds will be built 2020-02-02 03:38:43 +03:00
DarkPhoenix
5a44909ebf Remove appveyor environment preparation which is not needed anymore 2020-02-02 03:13:57 +03:00
DarkPhoenix
6cbb80693d Switch to powershell echo 2020-02-02 03:04:53 +03:00
DarkPhoenix
0b90d254f9 Try another approach in echo'ing 2020-02-02 02:53:18 +03:00
DarkPhoenix
641d36205c Remove quotes from echo commands 2020-02-02 02:47:14 +03:00
DarkPhoenix
6e38b6ea4d Fix path to windows SDK once again 2020-02-02 02:38:26 +03:00
DarkPhoenix
84b4d8fabb Change windows SDK location 2020-02-02 02:03:23 +03:00
DarkPhoenix
c0e1f7e746 Fix mistype 2020-02-01 15:36:33 +03:00
DarkPhoenix
d734c12168 Try to find out when listing windows SDKs fails 2020-02-01 15:34:14 +03:00
DarkPhoenix
340d94eb3e Specify image in apprveyor file 2020-02-01 15:09:47 +03:00
DarkPhoenix
9b0b31648c Add debugging prints to see appveyor's OS version 2020-02-01 02:38:00 +03:00
DarkPhoenix
8346358c37 Fix appveyor script slashes 2020-02-01 02:24:09 +03:00
DarkPhoenix
b935700a12 Bump INNO setup version 2020-02-01 01:56:26 +03:00
DarkPhoenix
2f4a5a4830 Fix improper use of operator "is" when comparing to literal values 2020-01-31 18:16:36 +03:00
DarkPhoenix
e951ce8e9d Bump version 2020-01-31 18:06:28 +03:00
DarkPhoenix
fc6d42f483 Update effects 2020-01-31 17:59:50 +03:00
DarkPhoenix
7df1431ad2 Update staticdata to 1657583 2020-01-31 17:40:51 +03:00
DarkPhoenix
4d4680961e Bump versions of multiple packages 2020-01-31 16:08:24 +03:00
DarkPhoenix
1cae99b812 Remove VC 9.0 tools manifest
We're using newer version now, and we will see later if dependency section in manifest is needed
2020-01-31 16:07:26 +03:00
DarkPhoenix
3727d19311 In attribute editor what is you see is what you get now 2020-01-31 10:32:18 +03:00
DarkPhoenix
c45c093f4f Return search results as list to avoid various issues 2020-01-31 10:04:35 +03:00
DarkPhoenix
b613d3e312 Use market sorting in attribute override editor 2020-01-31 00:37:35 +03:00
DarkPhoenix
4cff9247b0 Always include ships and citadels in override editor output 2020-01-31 00:13:40 +03:00
DarkPhoenix
b9a26ec28d Do not return items from all the categories in overrides editor searches 2020-01-31 00:00:05 +03:00
DarkPhoenix
245f81e888 Actually make appveyor to use 64 bit python 2020-01-30 13:55:30 +03:00
DarkPhoenix
204c1ba9f2 Switch windows build to be 64 bits 2020-01-30 13:45:49 +03:00
DarkPhoenix
a7a4be133c Bump pyinstaller version once again 2020-01-30 13:04:49 +03:00
DarkPhoenix
14f9a46d7a Remove MPL hook 2020-01-30 11:59:04 +03:00
DarkPhoenix
003dd040dc Bump matplotlib version 2020-01-30 11:51:27 +03:00
DarkPhoenix
97cf53217e Bump python version to 3.8 2020-01-30 11:09:11 +03:00
DarkPhoenix
7c1805826d Fix mino and apostle RR effects affecting subcap modules 2020-01-29 16:11:30 +03:00
DarkPhoenix
d6a2b4dfc4 Fix projected system-wide effects menu after multiple renames 2020-01-29 15:58:02 +03:00
DarkPhoenix
d70952520a Update effects 2020-01-29 15:41:55 +03:00
DarkPhoenix
a57867b806 Update static data to 1655541 2020-01-29 15:18:07 +03:00
DarkPhoenix
17d7583cfc Remove overrides which are not needed 2020-01-29 12:54:23 +03:00
DarkPhoenix
55ad95081b Fix alternate tree display in case units did not have display names 2020-01-28 15:16:48 +03:00
DarkPhoenix
da8da1759f Bump version 2020-01-28 14:59:20 +03:00
DarkPhoenix
b4e758b9ee Add new and old but missing conversions 2020-01-28 14:58:54 +03:00
DarkPhoenix
3ba41db699 Update data to 1655072 2020-01-28 14:39:35 +03:00
DarkPhoenix
cfc47cf483 When learning skill in character editor, learn all the prerequisites 2020-01-27 11:44:20 +03:00
DarkPhoenix
38c8be995b Add even more condensed tooltip version (not used yet) 2020-01-24 17:56:07 +03:00
DarkPhoenix
492207700b Force pyinstaller to 3.3 on mac as well 2020-01-21 22:17:29 +03:00
DarkPhoenix
b69adefbf8 Restore matplotlib pyinstaller hook which is still needed in 3.3 2020-01-21 22:00:08 +03:00
DarkPhoenix
361299f51e Bump version 2020-01-21 21:51:02 +03:00
DarkPhoenix
025091c3f6 Roll back pyinstaller to 3.3 for windows builds 2020-01-21 21:50:10 +03:00
DarkPhoenix
a54d70036b Bump version number 2020-01-21 15:32:16 +03:00
DarkPhoenix
9e67b5962c Update the way we update pip on appveyor 2020-01-21 15:31:48 +03:00
Anton Vorobyov
ed0c080163 Merge pull request #2123 from Neugeniko/master
Update Invasion Damage Profiles due to npc changes.
2020-01-21 15:26:53 +03:00
DarkPhoenix
eacc97160b Merge branch 'master' into ammo_graph 2020-01-21 15:25:39 +03:00
Neugeniko
21389d84fc Update Invasion Damage Profiles due to npc changes.
#2122
2020-01-21 23:17:37 +11:00
DarkPhoenix
0fe54631ad Update staticdata to 1651039 2020-01-21 15:00:21 +03:00
DarkPhoenix
36ea5200f2 Remove pyinstaller from requirements as it's needed just for packaging 2020-01-21 13:33:17 +03:00
DarkPhoenix
d9934160a6 Compatibility with pyinstaller 2020-01-21 13:30:48 +03:00
DarkPhoenix
b9c92c48d3 Bump wx version 2020-01-17 17:15:21 +03:00
DarkPhoenix
6d23df6156 Fix on-effect resistance definition 2020-01-17 16:08:55 +03:00
DarkPhoenix
a913ab72c2 Bump version of pyinstaller to avoid security issues 2020-01-17 11:14:28 +03:00
DarkPhoenix
f6d33a2ac1 Use effect IDs rather than effect amount when deciding if we should rebuild abilities 2020-01-16 19:02:10 +03:00
DarkPhoenix
5a3fec33a7 Bump version 2020-01-16 16:26:19 +03:00
DarkPhoenix
95734aca2c Add fighter AB effect 2020-01-16 16:19:37 +03:00
DarkPhoenix
377254be9d Add nirvana effects 2020-01-16 16:09:17 +03:00
DarkPhoenix
ad9905a5e0 Add shield booster tieritice conversions 2020-01-16 15:46:30 +03:00
DarkPhoenix
6fc5a9699e Add slave as jargon entry for amulets 2020-01-16 15:39:54 +03:00
DarkPhoenix
0ee86f4836 Add slaves to renames dictionary 2020-01-16 15:34:56 +03:00
DarkPhoenix
85593367f7 Remove single-precition workaround and update data to 1646988 2020-01-16 15:19:39 +03:00
DarkPhoenix
465ea61b06 Merge branch 'singularity' 2020-01-16 14:57:44 +03:00
DarkPhoenix
2d5507e951 Force faction structure neut to be variation of t1 item 2020-01-08 00:47:56 +03:00
DarkPhoenix
84e20be153 Add auto targeting system to list of mods which do not get online by default 2020-01-04 19:32:31 +03:00
DarkPhoenix
60080c02b0 Fix red giant ecm bonus 2020-01-02 22:11:16 +03:00
DarkPhoenix
2a0d4179d0 Make script effect passive 2020-01-02 22:03:05 +03:00
DarkPhoenix
6dd55e0cd4 Move sansha incursion and sleeper profile one level up, as there are not too many 2019-12-28 21:48:56 +03:00
Anton Vorobyov
0adc6e0c6f Merge pull request #2113 from Neugeniko/master
Add Abyssal/Invasion Damage and Target Profiles.
2019-12-28 21:45:51 +03:00
Neugeniko
e155356701 Add Invasion & Abyssal Target Profiles 2019-12-29 00:28:48 +11:00
Neugeniko
ef44b50980 Add Abyssal & Invasion Damage Profile 2019-12-29 00:26:39 +11:00
DarkPhoenix
6785d16c87 More mods not activated by default 2019-12-28 04:22:11 +03:00
DarkPhoenix
76c670b7d5 Do not activate several categories of modules on fitting 2019-12-28 03:53:02 +03:00
DarkPhoenix
717303a72f Allow to put separate charges into citadel cargo 2019-12-27 12:39:37 +03:00
DarkPhoenix
e13125b174 Enable sigamp tooltip for citadels 2019-12-27 12:35:51 +03:00
DarkPhoenix
8aa7964b81 Do not show effective cap stats for ships with 100% neut resist (citadels) 2019-12-27 12:27:30 +03:00
DarkPhoenix
5e5f23d296 Show DG standup ECM as variation of t1 module 2019-12-26 12:28:01 +03:00
DarkPhoenix
05837f99ff Change order of structure meta levels 2019-12-26 12:26:25 +03:00
DarkPhoenix
70f620c2c3 Fix unit name processing 2019-12-25 01:33:43 +03:00
DarkPhoenix
10ffb987ea Detect concord race and show appropriate icon 2019-12-23 17:02:34 +03:00
DarkPhoenix
13ed785551 Drop tank stats on factor reload toggle 2019-12-23 13:26:23 +03:00
DarkPhoenix
69d2e38647 Use modified item attributes to show ancillary tank modules reload time 2019-12-23 13:17:08 +03:00
DarkPhoenix
c45abbdbcf Use new table as source for skill requirement data 2019-12-19 20:44:17 +03:00
DarkPhoenix
2655b001a9 Add new skillrequirement file 2019-12-19 19:56:23 +03:00
DarkPhoenix
3c7f4edb1b Fix replacements generation 2019-12-19 16:41:49 +03:00
DarkPhoenix
663cbab401 More updates to the script, and data update as well 2019-12-19 16:24:45 +03:00
DarkPhoenix
897ca9ca43 Update DB script to be able to work with sisi data 2019-12-19 15:56:57 +03:00
DarkPhoenix
b31a071859 Fix crashes related to target profiles / damage patterns 2019-12-17 13:10:41 +03:00
DarkPhoenix
8c2788fd78 Do not show implant set editor if user cancels addition of an implant set 2019-12-16 18:06:03 +03:00
DarkPhoenix
dee8fa400c Allow to override menu visibility settings with control key 2019-12-16 16:29:42 +03:00
DarkPhoenix
2339327473 Do some renames 2019-12-16 13:59:41 +03:00
Anton Vorobyov
f6f9239dd5 Merge pull request #2103 from Gochim/issue/2073
Issue #2073: Added ability to add a list of implants from implant view to a new implant set
2019-12-16 13:55:00 +03:00
DarkPhoenix
cd4c8c8c10 Do not save changes when changes were reverted 2019-12-16 13:42:49 +03:00
DarkPhoenix
c25eda8b64 Do not save mutated values when user did not touch them (and they were altered due to rounding) 2019-12-16 13:11:18 +03:00
Gochim
b6edf0e034 Issue #2073: Fixed a stuck in character editor 2019-12-12 18:03:45 +02:00
Gochim
af4277fc7e Issue #2073: Fixed name of a popup menu item for implant tab 2019-12-12 17:57:03 +02:00
Gochim
acd774abe5 Issue #2073: Fixed Codacy warning 2019-12-12 14:02:31 +02:00
Gochim
9081353634 Issue #2073: Final tweaks on implementation 2019-12-11 07:51:31 +02:00
Gochim
9c7fa37a72 Issue #2073: Added functionality to add all implants in fit implant tab to implant set list 2019-12-10 18:14:13 +02:00
Gochim
d92e11893a Issue #2073: Added mechanism to pass implant list to implant set manager 2019-12-10 08:50:21 +02:00
Gochim
f55ab00bf5 Fixed error message text in EntityEditor 2019-12-10 08:18:01 +02:00
DarkPhoenix
36265aa2a3 Add comment about built-in pattern order 2019-12-07 15:52:10 +03:00
DarkPhoenix
bfedcdbffd Simplify code a little 2019-12-07 15:42:26 +03:00
DarkPhoenix
a5d10c4a76 Change sorting of built-in damage profiles 2019-12-07 15:41:07 +03:00
DarkPhoenix
78423f67dd Merge branch 'master' into ammo_graph 2019-12-07 03:34:26 +03:00
DarkPhoenix
2962ce1945 Ensure 0%-100% spoolup is sorted properly 2019-12-07 03:07:49 +03:00
DarkPhoenix
0063d2955e Add info on invasion ships 2019-12-07 02:53:48 +03:00
DarkPhoenix
9787a18666 Fix issue with inability to right-click user-defined target profiles in graph window 2019-12-07 02:47:24 +03:00
DarkPhoenix
d8cd3197b5 Show short profile name in graphs 2019-12-07 02:43:53 +03:00
DarkPhoenix
e07c4f65ab Allow to have square brackets in profile name 2019-12-07 02:19:24 +03:00
DarkPhoenix
c3108f773a Use uniform as default resists profile, if no resist profile can be fetched 2019-12-07 01:29:15 +03:00
DarkPhoenix
a400821268 Remove "database defaults" 2019-12-07 01:21:46 +03:00
DarkPhoenix
ca4bac07da Implement switching between user and builtin patterns 2019-12-07 01:17:41 +03:00
DarkPhoenix
0038eacc3f Add database migration to add new columns which are used to refer builting profiles 2019-12-07 00:50:35 +03:00
DarkPhoenix
4bd633a0d4 Process names on pattern objects themselves 2019-12-06 23:24:29 +03:00
DarkPhoenix
ee837f0b04 Add comment about ideal target profile 2019-12-06 20:07:08 +03:00
DarkPhoenix
016e18cc89 Set negative IDs to all hardcoded entities 2019-12-06 20:04:56 +03:00
DarkPhoenix
1d6ac53183 Make target profile adder multi-level 2019-12-06 20:00:53 +03:00
DarkPhoenix
1e32dfa463 Always show target resist switcher 2019-12-06 19:35:20 +03:00
DarkPhoenix
4431753570 Reimplement switcher to use built-ins too and be multi-level 2019-12-06 17:59:44 +03:00
DarkPhoenix
6fdb57318c Expose builtin target profiles to service 2019-12-06 17:14:12 +03:00
DarkPhoenix
649db019de Add builtin fetcher for target profiles 2019-12-06 16:58:58 +03:00
DarkPhoenix
1d528be0ef Add target profile builtins as well 2019-12-06 14:45:46 +03:00
DarkPhoenix
2d6f6df83d Store built-in damage patterns in dictionary rather than in list 2019-12-06 14:25:27 +03:00
DarkPhoenix
7fa998f276 Avoid duplicating names in context menu 2019-12-06 02:59:14 +03:00
DarkPhoenix
6a3157a4c8 Add hardcoded damage patterns to damage pattern definition module 2019-12-06 02:47:11 +03:00
DarkPhoenix
74efa50576 Add multi-level menu support for incoming damage patterns 2019-12-06 02:11:32 +03:00
DarkPhoenix
61e32d0b1b Merge branch 'ammo_graph' of github.com:pyfa-org/Pyfa into ammo_graph 2019-12-06 01:09:16 +03:00
DarkPhoenix
bf04d26a7b Remove duplicate code 2019-12-06 01:08:11 +03:00
DarkPhoenix
e99be78c54 Partially rework damage pattern switcher 2019-12-05 20:04:50 +03:00
DarkPhoenix
e386232de1 Gather data on damage patterns into single object 2019-12-05 10:44:26 +03:00
DarkPhoenix
a15896044d Show cap delta detailed info even when fit has no cap use 2019-12-05 10:14:30 +03:00
DarkPhoenix
72c74513ce Add excessive effective cap gain to tooltip 2019-12-04 22:21:25 +03:00
DarkPhoenix
34d6d13cb2 Avoid extra indentation in non-spool version of the tooltip 2019-12-03 20:01:25 +03:00
DarkPhoenix
323bb8e064 Change layout once again 2019-12-03 19:57:40 +03:00
DarkPhoenix
b628f8ef9b Change layout of the tooltip 2019-12-03 19:45:49 +03:00
DarkPhoenix
1900216d36 Show spoolup part before damage distribution 2019-12-03 16:31:21 +03:00
DarkPhoenix
c045ed81c1 Do not show spoolup mark when fit has no spoolup weapons 2019-12-03 16:21:16 +03:00
DarkPhoenix
39edec60e3 Add damage type info to firepower panel tooltips 2019-12-03 16:15:05 +03:00
Gochim
259214e907 Issue #2073: Added popup menu item 2019-12-03 09:23:54 +02:00
DarkPhoenix
2e1c53392d Keep hull energizers online upon addition 2019-12-02 11:41:13 +03:00
DarkPhoenix
7a77d12686 Use built-in curl timeouts instead of coreutils 2019-11-27 16:35:22 +03:00
DarkPhoenix
763a7714ed Use proper timeout on Mac OS 2019-11-27 16:06:31 +03:00
DarkPhoenix
e89f35d654 Do not fail Mac OS build if upload fails 2019-11-27 15:56:57 +03:00
DarkPhoenix
3196751b7a Bump version 2019-11-27 15:11:26 +03:00
DarkPhoenix
f221024974 Update staticdata to 1618828 2019-11-27 15:10:49 +03:00
DarkPhoenix
66cab8a0d4 Bump version 2019-11-26 16:55:15 +03:00
DarkPhoenix
daa49a8cd4 Correctly detect zirnitra as amarr 2019-11-26 16:54:47 +03:00
DarkPhoenix
b8601ff240 Update icons/renders 2019-11-26 16:50:51 +03:00
DarkPhoenix
5df3eeca64 Add zirnitra renders 2019-11-26 16:34:28 +03:00
DarkPhoenix
274e4ac2ca Update effects 2019-11-26 16:27:06 +03:00
DarkPhoenix
f6485251ca Update staticdata to 1617768 2019-11-26 15:00:40 +03:00
DarkPhoenix
c03fb70def Merge branch 'singularity' 2019-11-26 14:55:51 +03:00
DarkPhoenix
2217aff5ab Add button to add custom drone groups 2019-11-26 14:53:47 +03:00
DarkPhoenix
400d0aaa22 Rework graph ammo picker to be dialog instead of frame 2019-11-25 16:54:25 +03:00
DarkPhoenix
bfc928934c Put entries into different sizers 2019-11-25 15:48:04 +03:00
DarkPhoenix
395c17270e Merge branch 'master' into ammo_graph 2019-11-25 13:56:16 +03:00
DarkPhoenix
8652a2891b Do not attempt to change skill levels of built-in all0/5 chars 2019-11-22 15:46:29 +03:00
DarkPhoenix
a09af0a9eb Propagate keys to upper windows if they were not processed in here 2019-11-22 15:45:01 +03:00
Anton Vorobyov
c7d4b93fba Merge pull request #2094 from RussianCow/level-keyboard-shortcuts
Add keyboard shortcuts to character level editor
2019-11-22 15:01:26 +03:00
Sasha
745c0db530 Add keyboard shortcuts to character level editor 2019-11-21 18:10:56 -08:00
DarkPhoenix
aa56ab8d6c Bump version 2019-11-21 13:01:14 +03:00
DarkPhoenix
043c430221 Update staticdata to 1610407 2019-11-21 13:00:36 +03:00
DarkPhoenix
dc5cc5855e Show range of bursts projectors, taking ship/citadel radius taken into consideration 2019-11-18 15:18:20 +03:00
DarkPhoenix
59d6266e2b Do not crash on exception classes without message attribute 2019-11-17 21:24:41 +03:00
DarkPhoenix
7495ba67f8 Revert change made for debugging 2019-11-17 17:40:07 +03:00
DarkPhoenix
e649683a4d Accept XML headers with extra info 2019-11-17 17:34:49 +03:00
DarkPhoenix
bec58a5772 Do not crash on cargo fetch failures 2019-11-17 17:29:16 +03:00
DarkPhoenix
e8f9ae8a9c Do not use hires assets on wxGTK 2019-11-16 19:22:37 +03:00
DarkPhoenix
679382e220 Do not separate number and unit in range tooltip, for consistency with other fields 2019-11-15 20:19:23 +03:00
DarkPhoenix
1b40467775 Merge branch 'master' into ammo_graph 2019-11-15 20:17:02 +03:00
DarkPhoenix
7f86782f54 Change range column tooltip for missiles 2019-11-15 13:23:27 +03:00
DarkPhoenix
f80b7d972f Implement hidden flight time bonus 2019-11-15 12:59:57 +03:00
Anton Vorobyov
c0bd489c1b Merge pull request #2085 from Gochim/master
Possible fix for #2084
2019-11-14 12:38:08 +03:00
Gochim
41e4c2107d Fix for #2084 2019-11-14 11:36:59 +02:00
Gochim
cfc95c272a Possible fix for #2084 2019-11-14 10:35:16 +02:00
DarkPhoenix
27e3e53868 Merge branch 'master' into ammo_graph 2019-11-13 22:03:01 +03:00
DarkPhoenix
f778f9ceae Take ship radius in consideration when displaying missile range in range column 2019-11-13 20:51:14 +03:00
DarkPhoenix
7fb6170bcb Implement missile "falloff" support in graphs 2019-11-13 20:28:52 +03:00
DarkPhoenix
00b9884c68 Remove unnecessary color setting, as aux window already does it for us 2019-11-13 19:56:49 +03:00
DarkPhoenix
b05bd04801 Do not allow to open more than 1 ammo pickers 2019-11-13 18:45:43 +03:00
DarkPhoenix
7ba5585b83 Set min window size of ammo picker as well 2019-11-13 17:07:32 +03:00
DarkPhoenix
9386ba3fb9 Fix initial window sizing 2019-11-13 17:03:45 +03:00
DarkPhoenix
1321e70035 Add info on drones/fighters to ammo picker 2019-11-13 16:46:47 +03:00
DarkPhoenix
e2d943b0b0 Gray out items for inactive radiobuttons 2019-11-13 16:33:23 +03:00
DarkPhoenix
424b769ba9 Fix ammo section labels 2019-11-13 16:14:00 +03:00
DarkPhoenix
3671f10c9c Resize ammo picker window 2019-11-13 16:08:06 +03:00
DarkPhoenix
935ecd0ea7 Make structure scrollable 2019-11-13 15:55:02 +03:00
DarkPhoenix
92e15ece72 Add structure with checkboxes to ammo switcher window 2019-11-13 15:20:43 +03:00
DarkPhoenix
a5c1875a29 Make sure to cache ammo set to reuse it when applying ammo to multiple modules 2019-11-13 13:48:13 +03:00
DarkPhoenix
9146c0f2c6 Use ammo service to generate ammo switcher context menu 2019-11-13 13:31:40 +03:00
DarkPhoenix
a917207e07 Reimplement some of logic used in ammo picker in a service package 2019-11-12 19:39:52 +03:00
DarkPhoenix
c21b92945f Merge branch 'master' into ammo_graph 2019-11-12 16:58:34 +03:00
DarkPhoenix
fa37428cd3 Update staticdata to 1573560935 2019-11-12 15:39:57 +03:00
DarkPhoenix
2a2d9d3456 Fix circular import issues for tests 2019-11-12 14:59:43 +03:00
Anton Vorobyov
a91efb681f Merge pull request #2079 from Gochim/minor_fixes
Several minor fixes in different parts of code
2019-11-12 00:07:31 +03:00
Gochim
386e05be8f Fixed method naming in stats.py classes 2019-11-11 19:19:31 +02:00
Anton Vorobyov
65e7bf609d Merge pull request #2078 from Gochim/master
Added central place to get damage types and ehp sources. Added tests
2019-11-11 16:40:22 +03:00
Gochim
7a58d97652 Merge remote-tracking branch 'origin/minor_fixes' into minor_fixes
# Conflicts:
#	eos/utils/stats.py
2019-11-10 17:36:47 +02:00
Gochim
c5118da417 Fixed small issue with #2078 by removing unnecessary prints 2019-11-10 17:35:48 +02:00
Gochim
13b505525d Refactored shipstats.py to use common damage profile and hull type names. Reduced code complexity 2019-11-10 17:27:46 +02:00
Gochim
b682dec363 Second fix for #2076 - use Abstract collections from .abc module. Fixes future issue 2019-11-10 17:27:46 +02:00
Gochim
6aa98e2214 Fixed test_aboutData test 2019-11-10 17:27:46 +02:00
Gochim
8fba988222 Added central place to get damage types and ehp sources. Added tests 2019-11-10 17:27:46 +02:00
Gochim
24a82efe50 Refactored shipstats.py to use common damage profile and hull type names. Reduced code complexity 2019-11-10 17:27:07 +02:00
Gochim
8054fa9267 Second fix for #2076 - use Abstract collections from .abc module. Fixes future issue 2019-11-09 23:27:28 +02:00
Gochim
a0e39a3725 Fixed test_aboutData test 2019-11-09 22:53:52 +02:00
Gochim
185d6d0c51 Merge remote-tracking branch 'origin/master' 2019-11-08 08:35:29 +02:00
Gochim
1975e96848 Added central place to get damage types and ehp sources. Added tests 2019-11-08 08:34:45 +02:00
Gochim
ab37d228ea Added central place to get damage types and ehp sources. Added tests 2019-11-08 08:34:22 +02:00
DarkPhoenix
049bd10797 Merge branch 'master' into ammo_graph 2019-11-07 19:02:12 +03:00
DarkPhoenix
f48483d754 Merge branch 'master' of github.com:pyfa-org/Pyfa 2019-11-07 18:36:10 +03:00
DarkPhoenix
e6cfd33435 Fix #2076 - use collection ABCs from .abc module 2019-11-07 18:35:14 +03:00
Anton Vorobyov
c29126ce1d Merge pull request #2077 from Gochim/master
Added instructions to run tests for the project
2019-11-07 18:34:58 +03:00
Gochim
c52170b731 Fixed path for bash script call 2019-11-07 14:45:29 +02:00
Gochim
6607dd31bf Merge remote-tracking branch 'origin/master' 2019-11-07 14:27:36 +02:00
Gochim
c6c74be38d Added instructions to run tests for the project 2019-11-07 14:27:14 +02:00
Gochim
41c6062ff9 Added instructions to run tests for the project 2019-11-07 14:26:41 +02:00
DarkPhoenix
bbb96a73b7 Add alias file for trig dread-related items 2019-11-06 23:09:28 +03:00
DarkPhoenix
9eb3b9e017 Do not use evepraisal info unless there are orders up 2019-11-04 02:50:55 +03:00
DarkPhoenix
6b3e94729c Update staticdata and bump version 2019-10-31 15:05:14 +03:00
DarkPhoenix
b486276167 Merge branch 'master' into ammo_graph 2019-10-31 11:29:31 +03:00
DarkPhoenix
fb48f2b5d4 Do not attempt to add entries to name maps if entity fetch failed 2019-10-30 16:46:34 +03:00
DarkPhoenix
cfffc77777 Change format name 2019-10-30 16:13:15 +03:00
DarkPhoenix
f7089f358d Fix stats export parenthesis 2019-10-30 16:12:33 +03:00
DarkPhoenix
06c4f2ce46 Bump version 2019-10-30 16:09:08 +03:00
Anton Vorobyov
83eb0abd92 Merge pull request #2070 from pyfa-org/json_in_repo
Store text staticdata in repo instead of binary
2019-10-30 16:05:55 +03:00
DarkPhoenix
4199b33c47 Merge branch 'master' into json_in_repo 2019-10-30 15:47:47 +03:00
Anton Vorobyov
23cd4bff5a Merge pull request #2069 from Gochim/master
[Updated] Implemented copying the currently open fit stats to the clipboard.
2019-10-30 15:44:53 +03:00
DarkPhoenix
b65f95fe77 Make sure to avoid doing DB updates avoiding sqlalchemy, as we're re-using the same session for pyfa now 2019-10-30 15:39:21 +03:00
DarkPhoenix
32160c94e1 Add extra metadata field which we use during gamedata DB checks 2019-10-30 15:26:26 +03:00
DarkPhoenix
ac02fba98b Move useless category IDs closer to context 2019-10-30 15:18:08 +03:00
DarkPhoenix
cde0108cba Change logging a little so info about DB being rebuilt is always printed to stdout 2019-10-30 15:16:13 +03:00
DarkPhoenix
39dc7e4a46 Compose DB out of data stored externally 2019-10-30 14:56:51 +03:00
Gochim
9943f784a8 Fixed code auto-checks for pull request 2019-10-30 13:34:54 +02:00
Gochim
88ce45f29e Merge remote-tracking branch 'origin/master' 2019-10-30 11:46:25 +02:00
Gochim
7157e876ca Fixed issue with mainFrame after merging 2019-10-30 11:46:03 +02:00
Gochim
0cf88cf7ca Added stats that were more or less agreed on in [Issue #2065] 2019-10-30 11:39:21 +02:00
Gochim
10dfdc3627 Added UI for new type of copying data about fit to the clipboard 2019-10-30 11:39:21 +02:00
Gochim
76bdefcda6 Fixed wording in contributing.md 2019-10-30 11:39:21 +02:00
Gochim
1c2c8cc5f9 Added UI for new type of copying data about fit to the clipboard 2019-10-30 11:39:21 +02:00
Alexander Maryanovsky
58f853de5b Implemented copying the currently open fit stats to the clipboard. 2019-10-30 11:39:21 +02:00
Gochim
c052297bf7 Added stats that were more or less agreed on in [Issue #2065] 2019-10-30 09:17:38 +02:00
DarkPhoenix
9e78cd1076 Fix drag-n-dropping module from market into specific empty slot 2019-10-28 13:23:40 +03:00
DarkPhoenix
79f4deacea Show hidden graphs on ctrl-alt-g 2019-10-28 12:56:34 +03:00
Gochim
ff42c4c711 Added UI for new type of copying data about fit to the clipboard 2019-10-26 18:36:38 +03:00
DarkPhoenix
02d31d49d8 Implement graph types to pick best ECM burst + damps ship 2019-10-26 00:30:45 +03:00
DarkPhoenix
64f47fcc24 Do not choke on fits for unknown ships 2019-10-25 01:00:32 +03:00
DarkPhoenix
0ceb8acd64 Rename some fields for the hidden graph 2019-10-24 23:15:38 +03:00
DarkPhoenix
78579e2e13 Adjust ECM burst + damp graph 2019-10-24 23:13:20 +03:00
DarkPhoenix
cf4e1d3935 Consistency fixes 2019-10-24 14:09:08 +03:00
DarkPhoenix
d1be0bb680 Add scanres vs locktime on active fit graph as experimental feature 2019-10-24 13:52:34 +03:00
DarkPhoenix
e70ebad3f7 Bump version 2019-10-22 15:37:25 +03:00
DarkPhoenix
4dfe5c3abf Update database and effects to 1589866 2019-10-22 15:36:37 +03:00
Gochim
384d9f4614 Fixed wording in contributing.md 2019-10-21 13:22:00 +03:00
Gochim
47434c68f9 Added UI for new type of copying data about fit to the clipboard 2019-10-20 15:25:06 +03:00
Gochim
af88afb6b5 Merge branch 'export-stats' of https://github.com/m-sasha/PyfaAT into m-sasha-export-stats
# Conflicts:
#	gui/mainFrame.py
#	gui/mainMenuBar.py
2019-10-20 14:48:00 +03:00
DarkPhoenix
e4df215e47 Change order of market group sorting for ammo picker 2019-10-18 12:10:02 +03:00
DarkPhoenix
33cb332978 Plug market sort into module grouping 2019-10-17 18:21:03 +03:00
DarkPhoenix
7c8f4d51bb Move sorting from item view to market service 2019-10-17 17:39:44 +03:00
DarkPhoenix
66bf7b3dc6 Merge branch 'master' into ammo_graph 2019-10-17 17:19:40 +03:00
Anton Vorobyov
536eb1efa5 Merge pull request #2064 from Gochim/master
Merged some additional info from wiki. Improved on readability
2019-10-17 17:19:10 +03:00
Anton Vorobyov
c4c763089e Merge branch 'master' into master 2019-10-17 17:19:00 +03:00
DarkPhoenix
cdfd4c0d8e Invoke pip the same way as on Windows 2019-10-17 17:01:10 +03:00
DarkPhoenix
f9bb8836e5 Upgrade pip when building mac distribution 2019-10-17 16:59:38 +03:00
Gochim
58b2634c8c Merged info from wiki. Improved on readability 2019-10-17 16:50:40 +03:00
Anton Vorobyov
093ae008ce Merge pull request #2063 from Gochim/master
Re-written in much greater detail instructions how to set up the project
2019-10-17 16:05:31 +03:00
Gochim
5f62fc0cdc Merge remote-tracking branch 'origin/master' 2019-10-16 22:08:33 +03:00
Gochim
e7a4b4ac26 Added section "Setting up the project with PyCharm" 2019-10-16 22:07:10 +03:00
Gochim
66e9944cb5 Added "Setting up the project manually" instructions 2019-10-16 22:07:10 +03:00
DIvanchenko
ad8528c248 Plan for CONTRIBUTING.md. Updated link to CONTRIBUTION.md. 2019-10-16 22:06:19 +03:00
DIvanchenko
07d22cd8e4 Created link to CONTRIBUTION.md. Fixed heading 2019-10-16 22:06:19 +03:00
DarkPhoenix
a6d5922d77 Bump minor version, as database has been updated 2019-10-16 16:33:43 +03:00
Ryan Holmes
958d7bff99 Update .appveyor.yml 2019-10-16 09:27:22 -04:00
Ryan Holmes
7819b80be4 Update .appveyor.yml 2019-10-16 09:25:14 -04:00
Gochim
2ca50a4658 Added section "Setting up the project with PyCharm" 2019-10-15 23:08:21 +03:00
Gochim
09ff4fd128 Added "Setting up the project manually" instructions 2019-10-15 20:17:48 +03:00
DarkPhoenix
3e53863f9e Bump version 2019-10-15 17:09:15 +03:00
DarkPhoenix
63d2289f97 Update database to 1585794 2019-10-15 17:06:42 +03:00
DarkPhoenix
2663ef2e66 Make mutated module import consider old 1mn gravid mutaplasmid name 2019-10-14 18:26:22 +03:00
DarkPhoenix
8bb1d43d0c Show module groups / drone header / fighter header in dialog 2019-10-11 13:23:18 +03:00
DarkPhoenix
3d70ca941c Change ammo picker window to be auxiliary frame rather than modal dialog 2019-10-10 19:10:28 +03:00
DIvanchenko
d4bdf47d62 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	README.md
2019-10-10 18:04:24 +03:00
DIvanchenko
660ee7c4bf Plan for CONTRIBUTING.md. Updated link to CONTRIBUTION.md. 2019-10-10 18:03:28 +03:00
DarkPhoenix
04a1e95730 Get list of fighters and drones as well 2019-10-10 16:03:56 +03:00
DarkPhoenix
9fddb64ef9 Get list of damage dealer mods with ammo data 2019-10-10 15:40:39 +03:00
DarkPhoenix
e883035120 Do not show menu item for non-dps graphs 2019-10-10 13:38:42 +03:00
DarkPhoenix
4d2da8e52e Merge branch 'master' into ammo_graph 2019-10-10 12:41:30 +03:00
DIvanchenko
1db1f3070b Created link to CONTRIBUTION.md. Fixed heading 2019-10-10 10:50:56 +03:00
DIvanchenko
3dba82c497 Created link to CONTRIBUTION.md. Fixed heading 2019-10-10 10:49:54 +03:00
DarkPhoenix
25e7b7a9f7 Fix RMB in graph fit list 2019-10-09 23:09:09 +03:00
DarkPhoenix
9582212ae0 Bump version 2019-10-09 19:38:25 +03:00
DarkPhoenix
7d2b60c327 Fix addition of drones via alt-dclick 2019-10-09 16:24:21 +03:00
DarkPhoenix
0121a0064e Show unknown meta groups as normal, also add standup faction group to faction tab 2019-10-09 14:38:08 +03:00
DarkPhoenix
2aa96fc819 Do not crash when user cancels setting of projection range 2019-10-09 13:30:01 +03:00
DarkPhoenix
8d81db0a3a Change what kind of strength is displayed for probe launchers 2019-10-09 13:13:40 +03:00
DarkPhoenix
e5ba35fde9 Pass effect in all effect handler calls 2019-10-08 23:41:26 +03:00
DarkPhoenix
885cd32cb0 Fix EFS export after adding projection range support 2019-10-08 23:11:58 +03:00
DarkPhoenix
18d8ed6558 Take modifier key info from event where possible 2019-10-08 20:50:14 +03:00
DarkPhoenix
9618ece4b4 Bump version 2019-10-08 19:50:57 +03:00
DarkPhoenix
a80a77a422 Update effects file 2019-10-08 19:50:38 +03:00
DarkPhoenix
3806be3ddd Add capsule renders 2019-10-08 19:46:15 +03:00
DarkPhoenix
3e803fef30 Actually expose capsule to a shuttle group 2019-10-08 19:37:32 +03:00
DarkPhoenix
12956d435a Update database to 1581357 and do necessary schema changes to support changed source data 2019-10-08 19:28:24 +03:00
DarkPhoenix
c1df335f08 Add context menu item which will handle fit duplication 2019-10-08 15:39:16 +03:00
DarkPhoenix
a3381007f3 Use numbers in default values instead of strings to avoid type errors 2019-10-07 16:58:11 +03:00
DarkPhoenix
1efe4ee5e5 Enable showing capsules in shuttle group 2019-10-05 10:27:08 +03:00
DarkPhoenix
ec21f93d3c Fix background color of panels behind buttons 2019-10-04 01:25:38 +03:00
DarkPhoenix
f384b32ed6 Remove unused file 2019-10-03 14:30:50 +03:00
DarkPhoenix
22d8f34c75 Fix pref panel titles on linux 2019-10-03 14:29:47 +03:00
DarkPhoenix
6128cd8322 Update once again
Cut everything outside of window
2019-10-03 13:34:42 +03:00
DarkPhoenix
386f403430 Update screenshot 2019-10-03 13:32:36 +03:00
DarkPhoenix
5f7d9aea89 Add amount of text in notes to notes tab title 2019-10-03 13:02:08 +03:00
DarkPhoenix
b367c449a9 Few more readme fixes 2019-10-03 09:56:53 +03:00
DarkPhoenix
26b3dff9d4 Update readme 2019-10-03 09:47:43 +03:00
DarkPhoenix
873a62e3f0 Make error dialog window like any other auxiliary window - do not keep it on top 2019-10-02 22:08:37 +03:00
Anton Vorobyov
d967ab375e Merge pull request #2050 from ZeroPointEnergy/feature/images_from_zip
Support loading images from zip
2019-10-02 19:16:50 +03:00
Andreas Zuber
fcf2d6a72c Support loading images from zip
This commit reenables the ability to load the images from a zip file
instead of a directory structure. It is possible to set the location of
this file via configforced.py
2019-10-02 17:01:14 +02:00
DarkPhoenix
843ced15bf Fix ammo damage ratios 2019-10-02 14:45:29 +03:00
DarkPhoenix
813db9340f Make sure to select right-clicked item on windows when Control is pressed 2019-10-02 13:19:46 +03:00
DarkPhoenix
acbd8a3298 Allow context menu-related batch actions to be triggered on ctrl too
Windows hides context menu when user presses alt
2019-10-02 12:44:27 +03:00
DarkPhoenix
561e22e894 Bump version 2019-10-02 12:11:25 +03:00
DarkPhoenix
05ac0a528a Show extra labels only when there's something inside 2019-10-02 10:56:01 +03:00
DarkPhoenix
c040353f6e Move some common functionality into common space of tab sizing method 2019-10-02 10:37:14 +03:00
DarkPhoenix
f23a8fa0c8 Adjust tab shadows to tab sizes 2019-10-02 10:33:11 +03:00
DarkPhoenix
ba93467646 Implement logic to have tabs of different sizes in additions pane and in fitting pane 2019-10-02 10:16:36 +03:00
DarkPhoenix
00d480860f Change tab outlook when option value is changed 2019-10-01 22:28:24 +03:00
DarkPhoenix
c94384acb8 Show amount of items hidden in additions tabs 2019-10-01 22:22:10 +03:00
DarkPhoenix
0c2c0ac6ef Add modules to session even when they were added via appendIgnoreEmpty 2019-10-01 10:25:31 +03:00
DarkPhoenix
61a33a331e Copy projection range when copying fit 2019-10-01 09:29:10 +03:00
DarkPhoenix
e374a6f2c6 Do not add null drains to not affect cap sim calculations 2019-09-30 17:27:10 +03:00
DarkPhoenix
dbd84dce28 Allow to change projected items' metas regardless of ability of target ship to fit them 2019-09-30 17:24:14 +03:00
DarkPhoenix
9d554f9c68 Make sure to do fit recalculation if it was changed after the last one 2019-09-30 17:20:22 +03:00
DarkPhoenix
576cf56735 Expose chance of jamming to stats pane itself rather than tooltip 2019-09-30 17:06:01 +03:00
DarkPhoenix
e2aaabbc16 Do not let jamming strength exceed 100% 2019-09-30 16:40:48 +03:00
DarkPhoenix
ef226898c0 Add projection range calculation to effects where it makes sense 2019-09-30 14:43:52 +03:00
DarkPhoenix
a0db235e5a Add support for projection range to bunch of effects 2019-09-30 03:17:21 +03:00
DarkPhoenix
5bf05ba775 Allow batch changes of projection range 2019-09-30 02:47:12 +03:00
DarkPhoenix
c073b1fa2a Do not show context menu on system-wide effects 2019-09-30 02:10:11 +03:00
DarkPhoenix
5f58307bf3 Add projection range commands to projected fighters 2019-09-30 02:04:24 +03:00
DarkPhoenix
8741b17a5e Add projection range commands for projected drones 2019-09-30 01:55:16 +03:00
DarkPhoenix
4c1fa09795 Apply drones and fighters from projected fit at range of 0 2019-09-30 01:21:39 +03:00
DarkPhoenix
ce7df2d01f Allow to change projection range for projected modules 2019-09-30 01:18:55 +03:00
DarkPhoenix
b433b0ea7c Change fit projection so that projection range actually counts for the sake of calculations overall
No effect support still
2019-09-30 00:19:31 +03:00
DarkPhoenix
20868d6b44 Add ability to change projection range of fits 2019-09-29 23:41:45 +03:00
DarkPhoenix
33103dbee9 Add column which shows projected item range 2019-09-29 22:16:19 +03:00
DarkPhoenix
2a05ac5a85 Pass projection range parameter to effects 2019-09-29 22:02:10 +03:00
DarkPhoenix
a013828128 Add projectionRange to actual objects built from database 2019-09-29 16:04:44 +03:00
DarkPhoenix
e19510b3d4 Move function which calculates range factor to eos 2019-09-29 16:00:37 +03:00
DarkPhoenix
390f2048f2 Add projection range column to projectable entities 2019-09-29 15:54:45 +03:00
DarkPhoenix
0bb732300e Do not rely on resistance view being available 2019-09-29 11:21:00 +03:00
DarkPhoenix
fd017df561 Add lock range limit support to ewar graph 2019-09-27 20:43:28 +03:00
DarkPhoenix
0ed16b9a6f Add lockrange support to DPS graphs 2019-09-27 20:19:29 +03:00
DarkPhoenix
865978fcc1 Add context menu which controls if graphs ignore drone control range or not, and add support for this option to RR graph 2019-09-27 18:40:33 +03:00
DarkPhoenix
a43f9930de Allow to change meta level of standup fighters 2019-09-23 16:44:26 +03:00
DarkPhoenix
c13cd23d54 Change parent of fit deletion dialog
Try out tip mentioned in https://github.com/wxWidgets/Phoenix/issues/1343
2019-09-23 15:32:16 +03:00
DarkPhoenix
ed1f52a114 Show implant description in tooltip of implant editor 2019-09-23 15:25:58 +03:00
DarkPhoenix
7dd063f04e Add graph setting to ignore drone control range 2019-09-17 13:03:21 +03:00
DarkPhoenix
6e9fc1d1d9 Do not crash on Nones in value 2019-09-11 08:32:13 +03:00
DarkPhoenix
cae0172e48 Bump version 2019-09-10 15:54:23 +03:00
DarkPhoenix
e2b492ee8d Update database and effects to 1564394 2019-09-10 15:53:37 +03:00
DarkPhoenix
545ddc7492 Adjust DB script to changes in phobos 2019-09-10 15:31:02 +03:00
DarkPhoenix
d0b7c58a1d Merge branch 'singularity' 2019-09-10 14:30:51 +03:00
DarkPhoenix
a9ad094422 Fix fax link amount bonus 2019-09-04 15:10:07 +03:00
DarkPhoenix
68154333c2 Merge branch 'master' into singularity 2019-09-02 02:25:25 +03:00
DarkPhoenix
5df2db5879 Bump version 2019-09-02 01:21:32 +03:00
DarkPhoenix
5a34db0d2f Change how fit deletion confirmation dialog is destroyed 2019-09-02 01:14:35 +03:00
DarkPhoenix
6f50be1e7e Fix another set of crashes with manual login 2019-08-30 15:36:34 +03:00
DarkPhoenix
d15fefcf1b Avoid various crashes when working with SslLoginServer dialog 2019-08-30 15:26:58 +03:00
DarkPhoenix
07bf1b400c Fix spool scale mode on the very final cycle with spoolup set 2019-08-30 09:42:26 +03:00
DarkPhoenix
9f975a958e Merge branch 'master' into singularity 2019-08-27 11:34:17 +03:00
DarkPhoenix
c2a240bab0 Fix mutadaptive rep group 2019-08-26 23:12:44 +03:00
DarkPhoenix
40c3bf723f Make drone RR rigs stacking penalized for shield RR bots 2019-08-26 19:43:44 +03:00
DarkPhoenix
7a92ace2db Remove stacking penalty from scorpion ECM strength bonus 2019-08-26 19:33:55 +03:00
DarkPhoenix
500f5b8310 Add redraw delay on fit changes 2019-08-26 14:47:34 +03:00
DarkPhoenix
44830a4de6 Add capacity to container name if it was added to cargo 2019-08-26 14:13:26 +03:00
DarkPhoenix
f3f13e7ba8 Make cargo containers searchable 2019-08-26 13:38:03 +03:00
DarkPhoenix
0269a64ae1 Add maximize button to resizeable windows and make character editor resizeable 2019-08-26 12:59:00 +03:00
DarkPhoenix
5d6cdcbd23 Fix indent 2019-08-26 12:28:55 +03:00
DarkPhoenix
81906a7bd2 Do not store item-specific resistance attrs on effects 2019-08-26 12:27:43 +03:00
DarkPhoenix
b25b038934 Fix on-effect resistance definition 2019-08-26 09:28:48 +03:00
DarkPhoenix
b469fa520e Do not crash on cap boosters only in fit 2019-08-26 09:02:55 +03:00
DarkPhoenix
4f865896c7 Force variations menu to respect meta group overrides 2019-08-26 04:01:23 +03:00
DarkPhoenix
3b50dddef2 Allow to online extra amount of command bursts on various caps 2019-08-26 03:48:17 +03:00
DarkPhoenix
380e9c2e87 Change how rounding on Y ticks happens - now it relies on shown Y range 2019-08-26 03:35:35 +03:00
DarkPhoenix
1c1443c862 Move calculation of normalization shift to separate function 2019-08-26 02:56:11 +03:00
DarkPhoenix
0529baac4a Merge branch 'master' into singularity 2019-08-23 13:44:40 +03:00
DarkPhoenix
7dab220009 Ignore non-active scrams and scrammables 2019-08-23 13:44:15 +03:00
DarkPhoenix
0ea0f8cdf2 Merge branch 'master' into singularity 2019-08-23 13:24:29 +03:00
DarkPhoenix
eebd59413b Apply scrams in DPS graph when projected mods is enabled 2019-08-23 13:19:17 +03:00
DarkPhoenix
f4a635eb43 Implement hybrid extended attribute getter and few scram-related functions for DPS graph 2019-08-23 11:53:13 +03:00
DarkPhoenix
0e57258cc5 Add ability to pass multiple afflictors to no-afflictor getter 2019-08-23 09:13:40 +03:00
DarkPhoenix
67462c3278 Do not crash on attempt to export blank fitting 2019-08-23 09:07:31 +03:00
DarkPhoenix
fce8129fa2 Add support for extended target profile stats export/import 2019-08-23 08:55:13 +03:00
DarkPhoenix
1d76f3ec31 Merge branch 'master' into singularity 2019-08-22 21:32:34 +03:00
DarkPhoenix
707dbeecf8 Fix subsystems giving fitting bonuses to non-med RRs 2019-08-22 21:30:10 +03:00
DarkPhoenix
56672f5830 Merge branch 'master' into singularity 2019-08-22 19:35:27 +03:00
DarkPhoenix
13a0bf9d42 Do not delay any damage besides doomsday mods 2019-08-22 19:34:38 +03:00
DarkPhoenix
1bff10c973 Bump version 2019-08-22 17:56:51 +03:00
DarkPhoenix
1d4aece7cc Limit max range of FoF missiles 2019-08-22 17:54:44 +03:00
DarkPhoenix
cdb79f499a Allow non-integer amount of cycles in spool calculator 2019-08-22 17:35:16 +03:00
DarkPhoenix
837dbb3677 Update database and effects to 1554701 2019-08-22 16:51:33 +03:00
DarkPhoenix
3d3bf4ce2c Implement fighter ability resistance support into dps graph 2019-08-22 12:38:39 +03:00
DarkPhoenix
46ae2a006e Consider default attr value when fetching original value, too 2019-08-22 11:58:31 +03:00
DarkPhoenix
0062206f87 Bump version once again 2019-08-22 11:36:58 +03:00
DarkPhoenix
b6642aa76c Change default price source to evemarketer 2019-08-22 11:34:25 +03:00
DarkPhoenix
522f1c8314 Change cap column tooltip 2019-08-22 11:32:00 +03:00
DarkPhoenix
6fceda5f27 Ensure right-clicked item is selected on Mac in Display list panels 2019-08-22 08:47:45 +03:00
DarkPhoenix
668a947543 Use copy-paste fix only on Mac 2019-08-22 08:05:36 +03:00
DarkPhoenix
f3eadc9ef1 Do nothing on copy-paste in secondary windows 2019-08-22 07:54:21 +03:00
DarkPhoenix
7693483720 Ensure that clicked item is selected on Mac in fitting panel 2019-08-22 07:37:49 +03:00
DarkPhoenix
219e1c11dc Attempt to remove mac's copy-paste workaround 2019-08-22 07:32:15 +03:00
DarkPhoenix
99c6614d86 Change more commands to not fail on partial fails 2019-08-21 18:27:37 +03:00
DarkPhoenix
93af60c3d0 Do not fail batch imports if one of elements fails to be imported 2019-08-21 18:16:27 +03:00
DarkPhoenix
b4789bbebf Conver items to typeIDs before submitting 2019-08-21 18:04:22 +03:00
DarkPhoenix
160c2f0942 Implement additions pane pasting via ctrl-v 2019-08-21 17:39:06 +03:00
DarkPhoenix
9605efe643 Support actual item pasting functionality 2019-08-21 16:47:48 +03:00
DarkPhoenix
56e09b8528 Add context menu which pastes clipboard into additions pane (not functional yet) 2019-08-21 15:46:20 +03:00
DarkPhoenix
7dc17543df Make new context menus disablable 2019-08-21 15:14:49 +03:00
DarkPhoenix
3793721dc3 Implement copy context menu for additions pane 2019-08-21 15:07:25 +03:00
DarkPhoenix
54aa284fd9 Add extra context menu contexts to some additions panels 2019-08-21 13:39:40 +03:00
DarkPhoenix
207818537b When setting fighter's amount attribute to max or more than max, set it to -1 internally
It will show up as max amount when reading
2019-08-21 13:22:04 +03:00
DarkPhoenix
d32ff668e1 Show capacitor regen difference for selected mods 2019-08-21 12:11:22 +03:00
DarkPhoenix
1b2cd62629 Round results a little to get rid of float error 2019-08-21 11:38:14 +03:00
DarkPhoenix
2d96af9fc8 Use regular getter when no modifications needed 2019-08-21 11:36:24 +03:00
DarkPhoenix
20422d3046 Actually calculate attr without passed afflictor 2019-08-21 09:58:31 +03:00
DarkPhoenix
0e2ae0e0f0 Extend afflictor info with extra data 2019-08-21 09:37:06 +03:00
DarkPhoenix
9572a51f28 Do not crash on None value in damage pattern editor 2019-08-20 21:48:06 +03:00
DarkPhoenix
cf6f884b3b Do not crash cap sim graph when there're no drains 2019-08-20 21:43:01 +03:00
DarkPhoenix
4ca737281d Fix background color of auxiliary windows on Windows 2019-08-20 18:29:29 +03:00
DarkPhoenix
847f4e343e Update database to 1553210 2019-08-20 19:45:33 +03:00
DarkPhoenix
e0db6eb2ad Fix json to SQL script 2019-08-20 19:33:19 +03:00
DarkPhoenix
c7f625456e Remove icons-related scripts and data as phobos can dump it successfully 2019-08-20 18:14:55 +03:00
DarkPhoenix
332eb048a1 Update json to SQL script to adapt it to latest changes to Phobos 2019-08-20 18:14:24 +03:00
DarkPhoenix
e2c7f169fd Do not bump minor version 2019-08-20 17:44:59 +03:00
DarkPhoenix
4eb68c7c13 Bump version 2019-08-20 11:56:24 +03:00
DarkPhoenix
c1228b95fe Do not sort skill bonuses in traits tab 2019-08-20 09:04:50 +03:00
DarkPhoenix
2ab61f2b9e Disallow having modules onlined if the are too many fit for maxGroupOnline limitation 2019-08-20 08:47:04 +03:00
DarkPhoenix
d266aa796e Do not crash on damage/target profiles named like [this] 2019-08-20 00:47:49 +03:00
DarkPhoenix
e488497a42 Cap sim now avoids optimization when running for cap graph request 2019-08-20 00:38:29 +03:00
DarkPhoenix
e8766817f8 Do not stop simulating cap too early in case we have cap injector in fit 2019-08-19 21:36:34 +03:00
DarkPhoenix
d577b1d1c6 Implement individual point getter for cap sim graph 2019-08-19 21:06:28 +03:00
DarkPhoenix
7984b57494 Implement range getter for cap sim 2019-08-19 20:44:32 +03:00
DarkPhoenix
567e8df174 Save cap sim state on fit 2019-08-19 15:34:19 +03:00
DarkPhoenix
65e7607221 Add checkbox which controls if data from capsim is used or not 2019-08-19 13:28:50 +03:00
DarkPhoenix
6e3b536d83 Add starting shield amount to shield graph as well 2019-08-19 13:20:02 +03:00
DarkPhoenix
348c4d71df Add "starting cap" parameter to cap graph 2019-08-19 13:10:28 +03:00
DarkPhoenix
9494885f45 Do not crash on infs/nans in values, just discard plot 2019-08-19 12:48:26 +03:00
DarkPhoenix
01bda70fef Rework mainOnly parameter into conditions 2019-08-19 12:37:52 +03:00
DarkPhoenix
8b2f9ce59d Reduce RAAR repairs on cycles after 8th if we decide to not reload 2019-08-19 09:45:20 +03:00
DarkPhoenix
60a8e905b8 Expose data about reloads to cycle getter 2019-08-19 09:32:55 +03:00
DarkPhoenix
d9a4b0a359 Add logic to control reloads of ancillary mods according to parameter setting 2019-08-19 09:17:51 +03:00
DarkPhoenix
2d43a6ade5 Pull ancillary reload parameter to internal cache getter 2019-08-19 09:01:20 +03:00
DarkPhoenix
d0a56e3ee8 Add checkbox to UI which will control if RAAR/RASB will reload or not 2019-08-19 01:28:12 +03:00
DarkPhoenix
9b15f1942d Do not allow to activate most modules besides guns on targets which are at distance more than optimal + 3x falloff 2019-08-18 22:13:43 +03:00
DarkPhoenix
edd261c677 Add RR graphs 2019-08-18 21:27:20 +03:00
DarkPhoenix
3c967ba9eb Add 3 extra columns to show RR power of different fits 2019-08-17 00:49:42 +03:00
DarkPhoenix
8332ccaa7a Add RR graph stub 2019-08-17 00:29:13 +03:00
DarkPhoenix
26b1610ca5 Remote rep drones now always show amount of HP repaired, enabled or not 2019-08-17 00:03:23 +03:00
DarkPhoenix
ae1a5f4e44 Rework various RR-related functionality to use new API 2019-08-16 23:58:07 +03:00
DarkPhoenix
4594f57961 Get RR data getter to drone 2019-08-16 23:27:37 +03:00
DarkPhoenix
c1d0849f87 Consider AAR rep multiplier when getting RR params 2019-08-16 20:58:56 +03:00
DarkPhoenix
313264a49f Implement RR parameter getter 2019-08-16 20:55:25 +03:00
DarkPhoenix
a724347236 Avoid pushing graph inwards because of labels 2019-08-16 19:20:11 +03:00
DarkPhoenix
df7ad187f5 Relayout on effectivity change 2019-08-16 09:42:12 +03:00
DarkPhoenix
c142a011a0 Show shield HP/EHP based on HP selection in main panel 2019-08-16 09:31:02 +03:00
DarkPhoenix
477c43884a Add extra argument to axis selection updater 2019-08-16 08:51:58 +03:00
DarkPhoenix
f3551ce570 Move HP toggled event to global 2019-08-16 08:41:14 +03:00
DarkPhoenix
6baa9dd322 Move interpolation and limitation to separate functions 2019-08-16 08:31:58 +03:00
DarkPhoenix
302975c243 Round to 0 to avoid showing too small numbers in scientific representation 2019-08-16 00:55:29 +03:00
DarkPhoenix
73f75fb44e Do not plot labels if they are out of bounds 2019-08-15 20:42:59 +03:00
DarkPhoenix
7f651b144f Fix shield amount normalization for X marking 2019-08-15 20:40:13 +03:00
DarkPhoenix
ff98658491 Use relative position of X description 2019-08-15 20:02:51 +03:00
DarkPhoenix
53db5943b1 Do not allow to clip x marks 2019-08-15 18:35:24 +03:00
DarkPhoenix
33b7ab0d98 Limit misc parameters when fetching point 2019-08-15 18:16:14 +03:00
DarkPhoenix
f0af93f8b9 Add extra space on X to the right to have space for x mark labels 2019-08-15 17:59:35 +03:00
DarkPhoenix
379fd2353a Reset x marks on x field change 2019-08-15 17:44:36 +03:00
DarkPhoenix
98f0766425 Drop x marks on various actions 2019-08-15 17:40:29 +03:00
DarkPhoenix
be07a4735c Added vertical marker line to show exact values on graphs 2019-08-15 17:25:25 +03:00
DarkPhoenix
d736a10dc9 Draw vertical line where user clicked 2019-08-15 15:42:06 +03:00
DarkPhoenix
c5c3b9cba1 Change how we calculate min/max Ys 2019-08-15 15:25:21 +03:00
DarkPhoenix
bfa9ad4d96 Implement single point getters 2019-08-15 15:06:50 +03:00
DarkPhoenix
2f8ece9080 Connect various MPL events to support drawing vertical line with graph values 2019-08-15 12:42:23 +03:00
DarkPhoenix
c7e769e42e Move "graphs enabled" variable to top of graphs module 2019-08-15 11:49:26 +03:00
DarkPhoenix
3ab06d0832 Move MPL-related code to canvas panel 2019-08-15 09:32:52 +03:00
DarkPhoenix
251bc71f86 Add canvas panel which will house MPL-related functionality 2019-08-14 20:33:19 +03:00
DarkPhoenix
3f3870bb30 Rename just panel to control panel 2019-08-14 19:54:06 +03:00
DarkPhoenix
eb9612b9a3 Add neut vs range graph 2019-08-14 14:27:50 +03:00
DarkPhoenix
1d7efce197 Add ECM vs range graph 2019-08-14 13:10:53 +03:00
DarkPhoenix
ff60cf313e Add TP over range graph 2019-08-14 12:39:36 +03:00
DarkPhoenix
a275878ba0 Add GD graph 2019-08-14 09:46:12 +03:00
DarkPhoenix
09fb4c1d35 Add TD vs range graph 2019-08-14 09:17:40 +03:00
DarkPhoenix
483c1c35fd Allow to use custom labels for selectors 2019-08-14 08:53:26 +03:00
DarkPhoenix
810b8be92a Add damp strength vs range graph 2019-08-14 00:09:38 +03:00
DarkPhoenix
679ed7b806 Implement iterators on fit and use them in graph code 2019-08-13 22:39:25 +03:00
DarkPhoenix
e1896c0216 Set parent for all busyinfo windows to put them properly on application screen 2019-08-13 11:26:28 +03:00
DarkPhoenix
01310c166e Convert miscparams to dict in generic methods to avoid extra conversions in every getter implementation 2019-08-13 09:13:19 +03:00
DarkPhoenix
3bc93899fe Add web strength vs range graph 2019-08-13 08:28:59 +03:00
DarkPhoenix
69bd988174 Add lock time graph 2019-08-12 22:13:24 +03:00
DarkPhoenix
20bee1196a Save display number and position on it relatively client area 2019-08-12 20:56:03 +03:00
DarkPhoenix
9803da1825 Add some extra logging to help with #1605 debugging 2019-08-12 20:05:21 +03:00
DarkPhoenix
bc61e32ee7 Change values after input delay 2019-08-12 17:03:12 +03:00
DarkPhoenix
4f784e2eea Allow to use floats in damage pattern editor 2019-08-12 16:52:08 +03:00
DarkPhoenix
931d8d355f When no ESI characters are added, do not close ESI windows 2019-08-12 15:48:35 +03:00
DarkPhoenix
6912b6eb39 Fix background color of SSO char management panel 2019-08-12 12:32:02 +03:00
DarkPhoenix
163d2c9b10 Do not freeze display, as it doesn't remove flicker anyway 2019-08-12 12:29:24 +03:00
DarkPhoenix
cc8def1cf5 Try to flicker less when redrawing lists 2019-08-12 15:13:51 +03:00
DarkPhoenix
bcdefdc4ac Rework more windows to rely on auxiliary frame 2019-08-12 14:41:41 +03:00
DarkPhoenix
4f2e1be9ac Set min size of various auxiliary windows 2019-08-12 14:05:18 +03:00
DarkPhoenix
663623dec6 Do not crash on dollar sign in fit name 2019-08-12 11:56:07 +03:00
DarkPhoenix
cecf5d7e31 Make siege rapid torp bonus non-stacking penalized with damage mods 2019-08-12 11:25:07 +03:00
DarkPhoenix
8a4caeaa2d Avoid doing unnecessary recalcs 2019-08-12 04:08:54 +03:00
DarkPhoenix
f8062ba39f Do not do extra recalc if it's not needed 2019-08-12 02:13:29 +03:00
DarkPhoenix
3e6e3b0743 Migrate more windows to new window control scheme 2019-08-12 01:41:38 +03:00
DarkPhoenix
1e35eaf62a Rework how single windows are opened 2019-08-12 01:11:44 +03:00
DarkPhoenix
8a3dc2f3dc Rework how single frame of some auxiliary window is opened 2019-08-12 00:48:18 +03:00
DarkPhoenix
34a6fdc07e Rework more windows to use aux frame 2019-08-12 00:32:27 +03:00
DarkPhoenix
fc65cb6000 More windows to auxiliary frame 2019-08-11 15:52:51 +03:00
DarkPhoenix
247add778d Rework item stats to use new auxiliary frame class 2019-08-11 15:18:40 +03:00
DarkPhoenix
ab1071f1d7 Fix HAW phoenix dps effects 2019-08-11 13:05:03 +03:00
DarkPhoenix
f5cb5c3993 Open only one window of attribute and character editors 2019-08-10 11:23:01 +03:00
DarkPhoenix
ea7f122030 Rework dev tools window from frame into dialog 2019-08-10 11:02:25 +03:00
DarkPhoenix
2160cc4aaa Change how attribute editor frame is closed 2019-08-10 02:50:20 +03:00
DarkPhoenix
817e99a05d Change the way we close character editor 2019-08-10 02:42:19 +03:00
DarkPhoenix
53f5656478 Rework item stats from dialog into frame 2019-08-10 02:36:37 +03:00
DarkPhoenix
42d11bd3f1 Raise graph and target profile editor windows when we invoke them and they are already open 2019-08-10 02:10:28 +03:00
DarkPhoenix
a028ebe198 Rework how we handle all modal dialogs 2019-08-10 01:56:43 +03:00
DarkPhoenix
c315adf987 Rework target profile editor to be non-blocking window 2019-08-09 20:57:20 +03:00
DarkPhoenix
01371f227c Change the way we handle dialogs 2019-08-09 20:09:31 +03:00
DarkPhoenix
3174deed99 Change range factor for turret ammo sorting from optimal + falloff/2 to optimal + falloff 2019-08-09 16:27:03 +03:00
DarkPhoenix
6db178e4d2 Delay cap booster activation until the moment when its charge will be used efficiently 2019-08-09 16:19:20 +03:00
DarkPhoenix
eb07e03e93 Start all injectors at 0 2019-08-09 09:32:07 +03:00
DarkPhoenix
a881cd2bcc Work around wx bug - show labels even after switching graphs 2019-08-09 00:34:27 +03:00
DarkPhoenix
676b09720a Replace reduce with sum 2019-08-09 00:29:09 +03:00
DarkPhoenix
ac7b6d9ecd Change the way we detect injectors 2019-08-09 00:18:00 +03:00
DarkPhoenix
49cb81b516 Push info about injector into cap sim 2019-08-08 19:46:44 +03:00
DarkPhoenix
27e361dc5b Attempt to fix hang on preferences close on Mac 2019-08-08 12:25:50 +03:00
DarkPhoenix
4c330bfb16 Increase travis git depth, because otherwise it fails git describe when there were no tags last x commits 2019-08-08 12:16:42 +03:00
DarkPhoenix
fcb85c85a3 Rename modules to items 2019-08-08 09:50:50 +03:00
DarkPhoenix
9be1b96226 Add modules to recents when they are removed too 2019-08-08 09:45:14 +03:00
DarkPhoenix
11598f9a09 Do not add items to recents which cannot be fetched (e.g. item was removed since last pyfa start) 2019-08-08 08:57:29 +03:00
DarkPhoenix
39e23237a5 Move functionality of storing item to market service 2019-08-08 08:54:41 +03:00
DarkPhoenix
22507673aa Do not sort items in recently used 2019-08-08 08:42:06 +03:00
DarkPhoenix
7fdcd4aa15 Do proper attribute conversions on window close 2019-08-07 23:18:06 +03:00
DarkPhoenix
c559508175 Avoid unnecessary calls 2019-08-07 23:05:55 +03:00
DarkPhoenix
95621b6aab Use spinbox as info source rather than mutator 2019-08-07 23:02:15 +03:00
DarkPhoenix
fb93aa1ad5 Fix crash on closing item stats window when mutation's tab animation was in progress 2019-08-07 22:49:30 +03:00
DarkPhoenix
035c69c60a Implement mutated item copy context menu 2019-08-07 15:44:12 +03:00
DarkPhoenix
788bbb5d25 Make dark lines a bit lighter 2019-08-07 14:27:27 +03:00
DarkPhoenix
04178ca824 Add option to disable cargo export in EFT format 2019-08-07 12:57:20 +03:00
DarkPhoenix
647bdb78df Fix minflood AAR penalty 2019-08-07 12:50:07 +03:00
DarkPhoenix
ce9099a25b Remove workaround as it seems to be not needed anymore 2019-08-07 12:31:35 +03:00
DarkPhoenix
4e715750a5 Apply stronger desaturation and shift from normal ligtness onto bright/dark graph lines 2019-08-07 11:57:40 +03:00
DarkPhoenix
b330f72326 Allow to edit target profiles via context menu 2019-08-07 10:27:41 +03:00
DarkPhoenix
dd5c95d2f2 Return white line for dark backgrounds 2019-08-07 09:48:39 +03:00
DarkPhoenix
ae5e0cc71a Update bright icon again - make it more saturated 2019-08-07 09:42:47 +03:00
DarkPhoenix
cfe0e36e48 Make bright icon brighter 2019-08-07 09:41:03 +03:00
DarkPhoenix
63a362286e Add comment on why we need marker 2019-08-07 09:38:01 +03:00
DarkPhoenix
2155aa0d21 Move proportion width calcuation to display class 2019-08-07 09:24:26 +03:00
DarkPhoenix
f52fda3f03 Implement auto proportion scaling weights 2019-08-07 09:12:50 +03:00
DarkPhoenix
f315f8b85a Increase column width 2019-08-07 08:52:56 +03:00
DarkPhoenix
72e56246f4 Rework legend to show lines rather than patches 2019-08-07 08:46:55 +03:00
DarkPhoenix
5102cb35c8 Instantiate target wrappers with proper line style 2019-08-07 00:02:58 +03:00
DarkPhoenix
170853f0f4 Add line style support 2019-08-06 23:51:09 +03:00
DarkPhoenix
7bc0d88898 Add line style icons 2019-08-06 23:17:06 +03:00
DarkPhoenix
4834cfe8ca Generalize style picker popup code 2019-08-06 16:27:44 +03:00
DarkPhoenix
2c2065119b Generalize some click code 2019-08-06 16:18:57 +03:00
DarkPhoenix
636672fdce Plug plot line lightness into everything 2019-08-06 16:11:56 +03:00
DarkPhoenix
bc8c70fa9c Add lightness icons 2019-08-06 15:38:52 +03:00
DarkPhoenix
e3ac9a7722 Add line lightness column 2019-08-06 15:13:35 +03:00
DarkPhoenix
e14d3d7214 Use set colors for actual graph 2019-08-06 14:27:35 +03:00
DarkPhoenix
5b898a678b Handle changing colors via color picker 2019-08-06 14:15:13 +03:00
DarkPhoenix
e2d6baaeb1 Add color named to dict with data 2019-08-06 13:08:19 +03:00
DarkPhoenix
eb87ba1d89 Automatically assign colors 2019-08-06 13:01:40 +03:00
DarkPhoenix
0257e70c29 Code color column to properly show wrapper color 2019-08-06 12:50:11 +03:00
DarkPhoenix
70d1a3534b Rework dict with color data to use color enum 2019-08-06 12:44:59 +03:00
DarkPhoenix
16f4903eba Add various color icons 2019-08-06 12:39:10 +03:00
DarkPhoenix
6b77d72f06 Add red color icon 2019-08-06 10:08:07 +03:00
DarkPhoenix
ac5768e666 Remove color column icon and set it to static size 2019-08-06 09:58:00 +03:00
DarkPhoenix
f3bd47f347 Add color getter-setter for source wrapper 2019-08-05 20:29:41 +03:00
DarkPhoenix
1fbb47d64b Add color column 2019-08-05 20:24:28 +03:00
DarkPhoenix
3797887abc Add color definitions 2019-08-05 20:11:19 +03:00
DarkPhoenix
8870eef79b Fix vector scrolling under Windows 2019-08-05 14:15:58 +03:00
DarkPhoenix
eefcd9e738 Fix mistype 2019-08-05 13:29:53 +03:00
DarkPhoenix
5f296bbe30 Fix display of shield and cap amount 2019-08-05 11:20:18 +03:00
DarkPhoenix
d88fa1131d Rescale proportions of source and target sizers according to amount of columns they have 2019-08-05 10:53:00 +03:00
DarkPhoenix
3c6071ad88 Do not show resist column and mode picker when resists are ignored 2019-08-05 10:41:06 +03:00
DarkPhoenix
deb772f0a7 Show "Effective" prefix when resists are not ignored 2019-08-05 10:26:17 +03:00
DarkPhoenix
858719aad8 Enable "open in new tab" menu 2019-08-05 09:57:08 +03:00
DarkPhoenix
14debfd25c Change proportions between attacker and target lists 2019-08-05 08:12:44 +03:00
DarkPhoenix
510c9cafec Add context menu to change resist modes 2019-08-05 03:10:41 +03:00
DarkPhoenix
6434902f86 Do actual resist calculations 2019-08-05 02:37:54 +03:00
DarkPhoenix
16be84420b Add display of resist mode to column 2019-08-05 02:23:39 +03:00
DarkPhoenix
8f2283f9aa Implement auto primary layer detection 2019-08-05 02:14:27 +03:00
DarkPhoenix
920b84886c Get proper wrapper when requesting it by row 2019-08-04 23:56:55 +03:00
DarkPhoenix
cb2f0e40ba Add column which shows target resists 2019-08-04 23:55:42 +03:00
DarkPhoenix
14a9c9910c Implement resist modes except for auto 2019-08-04 23:30:06 +03:00
DarkPhoenix
c8d0ae8659 Make internal list of wrapper private 2019-08-04 20:04:12 +03:00
DarkPhoenix
fd541ead6c Change sorting order 2019-08-04 00:27:09 +03:00
DarkPhoenix
71e7ea0230 Fix another issue when working with sets 2019-08-04 00:24:28 +03:00
DarkPhoenix
cab2d41269 Fix calculation crash in DPS graph 2019-08-04 00:20:22 +03:00
DarkPhoenix
f5b1c79029 Do not access properties which were removed 2019-08-04 00:07:55 +03:00
DarkPhoenix
885a3f1ac9 Remove unneeded property 2019-08-04 00:00:53 +03:00
DarkPhoenix
e821b2d09c Store wrappers in graph lists 2019-08-03 23:56:44 +03:00
DarkPhoenix
1b2bff8a77 Change default graph resolution and depth 2019-08-03 17:33:56 +03:00
DarkPhoenix
d213e94860 Reorganize graph folder structure 2019-08-03 17:23:34 +03:00
DarkPhoenix
d2b71d97d2 Minor style fixes 2019-08-03 01:27:21 +03:00
DarkPhoenix
1ff7bdf1a7 Increase resolution of warp time graph 2019-08-03 01:10:58 +03:00
DarkPhoenix
f221f2df4f Swap getters and denormalizers 2019-08-03 01:04:20 +03:00
DarkPhoenix
46f365c42d Change internal interfaces a little 2019-08-03 00:55:58 +03:00
DarkPhoenix
a53c00aeda Change linear iter function 2019-08-02 23:47:48 +03:00
DarkPhoenix
044818aa65 Change add extra points function style a little 2019-08-02 23:36:18 +03:00
DarkPhoenix
a55084dbae Do not flicker when switching graphs on Windows 2019-08-02 16:51:45 +03:00
DarkPhoenix
c2c9528e80 Implement "adaptive" resolution for smooth graphs 2019-08-02 16:43:10 +03:00
DarkPhoenix
9c7ad95f6e Add float error workarounds 2019-08-02 15:40:53 +03:00
DarkPhoenix
fe9dc0a3e5 Implement point getter for time functions 2019-08-02 15:18:31 +03:00
DarkPhoenix
25712ef778 Move data preparation for x time mixin to separate function 2019-08-02 15:02:42 +03:00
DarkPhoenix
a63b543e0c Rework DPS graph to use new getters as well 2019-08-02 14:45:11 +03:00
DarkPhoenix
8ebec1f957 Fix comment 2019-08-02 10:34:16 +03:00
DarkPhoenix
0733fee878 Rework shield regen graph 2019-08-02 10:32:02 +03:00
DarkPhoenix
d52dd535a3 Rework cap regen graph 2019-08-02 10:21:20 +03:00
DarkPhoenix
cbc6475875 Split up base graph file too 2019-08-02 10:09:05 +03:00
DarkPhoenix
c6de92592c Rework mobility graph to use new getters 2019-08-02 10:02:42 +03:00
DarkPhoenix
5f97734881 Make distinction between mainParam, mainParamRange and x
- mainParam: (handle, value)
- mainParamRange: (handle (value1, value2))
- x: value
2019-08-02 09:49:15 +03:00
DarkPhoenix
62fbb7c9c8 Rework warp time graph to use new getter approach 2019-08-02 09:36:22 +03:00
DarkPhoenix
4ddbdebae4 Specify cache getter in getters 2019-08-02 00:10:38 +03:00
DarkPhoenix
542b79fa00 Do not request needed data every point calculation 2019-08-02 00:02:51 +03:00
DarkPhoenix
9f6f5c8a76 Show addition of negative amount as subtraction 2019-08-01 23:46:40 +03:00
DarkPhoenix
8591f649d1 Fix the same in another view 2019-08-01 23:41:32 +03:00
DarkPhoenix
3bbd51614d Fix modifier signs in affected tab view 2019-08-01 23:40:01 +03:00
DarkPhoenix
cb20c8588f Add missing jump portal and clone vat bay effects 2019-08-01 23:16:01 +03:00
DarkPhoenix
10b1c6ebfb Show proper warp time even when various modules which reduce ship speed to 0 are active 2019-08-01 23:03:45 +03:00
DarkPhoenix
3c6739b83a Inputs->params in few remaining functions 2019-08-01 22:41:18 +03:00
DarkPhoenix
57426f783e Rework warp time graph to have single getter (and break all other graphs for now) 2019-08-01 20:25:57 +03:00
DarkPhoenix
0788ff050d Rename inputs into params when they are actually not inputs 2019-08-01 20:15:49 +03:00
DarkPhoenix
18d59c119c Add double-click support to fit browser lite 2019-08-01 15:38:52 +03:00
DarkPhoenix
ae34cd5422 Allow to specify None as distance - it means that range will be ignored and all weapons will always hit 2019-08-01 15:28:33 +03:00
DarkPhoenix
50807e9381 Add tooltip to time input field 2019-08-01 13:09:28 +03:00
DarkPhoenix
fdb4d4d443 Rework input class 2019-08-01 13:00:29 +03:00
DarkPhoenix
ff22f12a56 Add extra option to show/hide legend 2019-08-01 12:48:29 +03:00
DarkPhoenix
15dc2a325a Change layout of fit browser lite a little 2019-08-01 12:40:20 +03:00
DarkPhoenix
ee9c1db000 Add support for ship browser lite to projected view 2019-08-01 12:26:35 +03:00
DarkPhoenix
b3b134ea45 Add support for ship browser lite to command view 2019-08-01 12:21:01 +03:00
DarkPhoenix
2e9b024390 Add browser lite handlers to graphs window 2019-08-01 11:54:33 +03:00
DarkPhoenix
ee2193e1bb Implement moving of fits back and forth in ship browser lite 2019-08-01 11:46:04 +03:00
DarkPhoenix
a582cf93bd Revert "user short names" change 2019-08-01 11:30:43 +03:00
DarkPhoenix
fc2d7cf7b8 Search by short ship name in fit browser lite as well 2019-08-01 11:26:02 +03:00
DarkPhoenix
61836dbb83 Move browser out of context menu file and do not list fits already existing in window 2019-08-01 11:23:26 +03:00
DarkPhoenix
154122388e Use short ship names along with fit names 2019-08-01 11:12:26 +03:00
DarkPhoenix
0114417018 Do actual search of fits on the left 2019-08-01 09:32:45 +03:00
DarkPhoenix
e662edc2cc Set custom window name depending on context 2019-08-01 09:09:30 +03:00
DarkPhoenix
9e6cdb2f4f Set focus to search bar when opening fit browser lite 2019-08-01 09:04:01 +03:00
DarkPhoenix
98b1fdb476 Change layout of tgt profile editor 2019-08-01 08:56:46 +03:00
DarkPhoenix
0f0e544f54 Fill window with actual data 2019-08-01 08:38:45 +03:00
DarkPhoenix
6d50f03396 Make sure buttons are aligned vertically at the center 2019-08-01 00:48:27 +03:00
DarkPhoenix
7ec9d3f122 Make sure graphs properly react to target profile updates 2019-08-01 00:21:42 +03:00
DarkPhoenix
592adb36f1 Start implementing fit browser lite 2019-07-31 20:22:18 +03:00
DarkPhoenix
d571191ec2 Add menu which allows to add target profiles to graph 2019-07-31 16:23:11 +03:00
DarkPhoenix
1f5fe47580 Rework target profile and damage pattern menus to use regular ticks 2019-07-31 15:54:09 +03:00
DarkPhoenix
1e3783c21d Move target profile context menu handling to separate package
This is needed to be able to import them separately at different times and avoid code duplication
2019-07-31 09:53:37 +03:00
DarkPhoenix
7190d91d31 Enable "add currently open fit" context menu for graphs 2019-07-31 09:13:29 +03:00
DarkPhoenix
5f697c166a Enable context menus on target list 2019-07-31 08:57:20 +03:00
DarkPhoenix
68b5fd9893 Show tooltips for target profiles too 2019-07-31 08:54:31 +03:00
DarkPhoenix
3e1a91d073 Clear plot cache on tgt profile changes 2019-07-31 08:34:46 +03:00
DarkPhoenix
c68451228a Move more logic to base class 2019-07-31 00:04:54 +03:00
DarkPhoenix
77ae235385 Offload actual set adding logic to windows calling the context menu 2019-07-30 22:01:33 +03:00
DarkPhoenix
c4009bdbd7 Start sharing some functionality between fit and target lists 2019-07-30 20:12:20 +03:00
DarkPhoenix
1eb48b00e1 Move fit-specific logic to fit list 2019-07-30 19:59:08 +03:00
DarkPhoenix
67cef93dd8 Re-use context menu infrastructure for fit list in graph window 2019-07-30 19:43:42 +03:00
DarkPhoenix
2aa274f56f Remove character editor implant set context menu hack as it's no longer needed 2019-07-30 19:20:14 +03:00
DarkPhoenix
cd20164d7a Pass calling window to context menu 2019-07-30 19:12:45 +03:00
DarkPhoenix
5a0ca503c1 Get rid of float error when converting float value to text in input boxes 2019-07-30 17:22:58 +03:00
DarkPhoenix
4c1c15e69e Rework target profile editor input boxes for better editing experience 2019-07-30 17:11:53 +03:00
DarkPhoenix
0320a16ba4 Merge branch 'master' into dps_sim_graph 2019-07-30 08:46:53 +03:00
DarkPhoenix
fcc8f3c5a7 Revert python version change used for tox 2019-07-30 08:45:56 +03:00
DarkPhoenix
fae3e8568a Merge branch 'graph_fix' 2019-07-30 08:44:40 +03:00
DarkPhoenix
4d2bb5ba87 Bump version 2019-07-30 08:22:54 +03:00
DarkPhoenix
d71cf64564 Add last known working numpy version 2019-07-30 08:11:16 +03:00
DarkPhoenix
1bb30499c2 Force MPL version to last known working 2019-07-30 07:59:19 +03:00
DarkPhoenix
d8deb98d7b Remove import of lib which is supposedly not used by older versions of
MPL
2019-07-27 23:05:14 +03:00
DarkPhoenix
e1078ef6da Try older MPL version 2019-07-27 22:20:58 +03:00
DarkPhoenix
a1d807bd45 Remove debugging stuff and try to downgrade matplotlib 2019-07-27 22:12:01 +03:00
DarkPhoenix
4f3228388c Try forcing module which is causing issues 2019-07-27 20:10:12 +03:00
DarkPhoenix
81e3edc041 Update some components in requirements file 2019-07-27 19:58:20 +03:00
DarkPhoenix
077db2ecd6 Add extra dependency to spec files 2019-07-27 19:14:31 +03:00
DarkPhoenix
6d2746ad75 Reraise exception on import 2019-07-27 19:02:10 +03:00
DarkPhoenix
0ffdae97fd Add some debug info to MPL import 2019-07-27 18:37:34 +03:00
DarkPhoenix
70fd1ac6de Update effects file 2019-07-27 12:49:39 +03:00
DarkPhoenix
78d056c6ff Merge branch 'master' into dps_sim_graph 2019-07-27 12:48:15 +03:00
DarkPhoenix
43ba63233d Merge branch 'vni_changes' 2019-07-27 12:43:54 +03:00
DarkPhoenix
adf750fe44 Adjust VNI effects 2019-07-27 12:32:56 +03:00
DarkPhoenix
250996e8ac Update icons 2019-07-27 08:58:27 +03:00
DarkPhoenix
56639a0812 Update database to 1541099 2019-07-27 08:50:47 +03:00
DarkPhoenix
c12e450648 Avoid reusing tooltips as it leads to segfaults due to some reason 2019-07-27 01:47:45 +03:00
DarkPhoenix
4fce6f7b99 Allow changing of extra attributes via profile editor 2019-07-26 19:30:10 +03:00
DarkPhoenix
27b8c12639 Add extra attributes to target profile editor 2019-07-26 17:48:19 +03:00
DarkPhoenix
5d5d9ff153 Rename pattern to profile 2019-07-26 15:55:10 +03:00
DarkPhoenix
d803c8374f Add target profile icon 2019-07-26 13:07:33 +03:00
DarkPhoenix
a5b22aa112 Denormalize infinity sig as special case, very much like 0 sig 2019-07-26 12:46:40 +03:00
DarkPhoenix
ae8fb25d3f Show plot marker if there's only one data point 2019-07-26 12:29:10 +03:00
DarkPhoenix
530dd1c03b Denormalize relative speed correctly if target has it equal to 0 2019-07-26 00:29:11 +03:00
DarkPhoenix
473b65850d Fetch target name correctly 2019-07-26 00:11:47 +03:00
DarkPhoenix
2c49bde5bf Do not consider TP multiplier as NaN for gun calculation 2019-07-26 00:00:18 +03:00
DarkPhoenix
97b32b33d3 Always show target profiles in target list 2019-07-25 23:48:24 +03:00
DarkPhoenix
1382e87133 Allow application of webs/TPs on target profiles 2019-07-25 20:49:20 +03:00
DarkPhoenix
19d03591b1 Process targets in DPS calculation code 2019-07-25 20:37:35 +03:00
DarkPhoenix
6f1321aa13 Initialize graph with ideal target profile, and plug it into UI's columns 2019-07-25 19:45:20 +03:00
DarkPhoenix
365a3798c2 Rename some remaining UI elements 2019-07-25 16:40:59 +03:00
DarkPhoenix
8d3981e1a4 Reimport extra target profile fields if they are defined 2019-07-25 16:36:22 +03:00
DarkPhoenix
e34fcb2f9c Rename multiple entities to reflect that it's target profile rather than target resists 2019-07-25 16:20:41 +03:00
DarkPhoenix
71f1c69f23 Plug new fields into actual targetResists objects 2019-07-25 10:00:51 +03:00
DarkPhoenix
072ad028a3 Add extra columns to target profile table 2019-07-24 19:50:58 +03:00
DarkPhoenix
a652e12fa4 Clear up drone/fighter DPS data on changing factor reload flag 2019-07-24 19:29:52 +03:00
DarkPhoenix
58f3618350 Add more info about various modules to misc column 2019-07-10 09:01:23 +03:00
DarkPhoenix
1b26cee9c1 Add some info about citadel modules to "Misc" column 2019-07-10 02:20:16 +03:00
DarkPhoenix
4752e5a20f Immobilize titans which use their DDs 2019-07-09 15:48:30 +03:00
DarkPhoenix
d8e277593d Add DD support to dps graph 2019-07-09 15:38:23 +03:00
DarkPhoenix
edbc341909 Use volley data in misc column to show doomsday damage 2019-07-09 07:49:17 +03:00
DarkPhoenix
5f20f249f7 Change reaper DD to show only one instance of damage 2019-07-09 07:41:10 +03:00
DarkPhoenix
a1de3b9225 Set published flag for DB TD 2019-07-09 00:37:36 +03:00
DarkPhoenix
5110e63809 Apply webs and TPs for all graph types 2019-07-08 19:53:10 +03:00
DarkPhoenix
26d4cfa2de Plug webs/TPs into x time graph 2019-07-08 19:24:43 +03:00
DarkPhoenix
ae1a9950bc Apply TP drones as well 2019-07-08 19:02:16 +03:00
DarkPhoenix
1c120f2fd6 Apply all webs including drones to target 2019-07-08 18:48:25 +03:00
DarkPhoenix
d7e45b0f76 Collect info about dromis into dictionary as well 2019-07-08 16:46:55 +03:00
DarkPhoenix
e796b748b6 Make sure dromis can be resisted 2019-07-08 16:37:43 +03:00
DarkPhoenix
a74984d37b Get resistance info of temporarily applied mods and use it during attr calculation 2019-07-08 11:42:04 +03:00
DarkPhoenix
e342f96fbe Move resistance attribute ID getter to separate function 2019-07-08 10:58:01 +03:00
DarkPhoenix
e262aa7daa Move resistance calculation to multiplication method 2019-07-08 10:27:06 +03:00
DarkPhoenix
c64d09ca54 Get data about webbing/TPing drones 2019-07-08 08:27:00 +03:00
DarkPhoenix
8def076175 Add burst projectors as webs/TPs 2019-07-08 08:16:23 +03:00
DarkPhoenix
a64fbd8976 Clear plot cache properly when target is modified 2019-07-08 07:34:09 +03:00
DarkPhoenix
eda869fe0d Skip modules which are not active 2019-07-08 07:22:21 +03:00
DarkPhoenix
04a74e278b Plug webs/TPs into calculation process 2019-07-08 00:29:23 +03:00
DarkPhoenix
6786cc7eff Expose boost/multiplier data to calculation method 2019-07-07 21:39:36 +03:00
DarkPhoenix
6984bd435f Add functions which calculate webbed/TPed stats and plug them into distance calculation 2019-07-07 21:22:23 +03:00
DarkPhoenix
ec8b771a24 Implement cache which stores data about cache TPs and webs 2019-07-07 20:16:21 +03:00
DarkPhoenix
6ce72e4fb3 Add methods which will be used to access temporarily modified values 2019-07-07 19:48:50 +03:00
DarkPhoenix
cda9ba5978 Add more columns for other graph types 2019-07-07 19:17:08 +03:00
DarkPhoenix
e2ae89f6b9 Add more columns to DPS graphs 2019-07-07 18:55:52 +03:00
DarkPhoenix
3bc3705c42 Show icons instead of names for dps/volley columns 2019-07-07 18:02:53 +03:00
DarkPhoenix
522de5ca5a Do not set column image if there's none 2019-07-07 17:27:37 +03:00
DarkPhoenix
efd8a6964e Add/remove fit list columns dynamically as graph is switched 2019-07-07 17:00:42 +03:00
DarkPhoenix
1cd10d2109 Do not call command fit refresh twice 2019-07-07 15:07:24 +03:00
DarkPhoenix
3a09f4b45c Rework FitChanged command to avoid refreshing graph multiple times in certain cases 2019-07-07 14:25:27 +03:00
DarkPhoenix
64bc2c34c2 Move addition of column by name to separate method 2019-07-07 12:21:53 +03:00
DarkPhoenix
845630437e Do not show dps/volley columns by default 2019-07-07 12:10:32 +03:00
DarkPhoenix
c4484d735a Add dps/volley columns to fit list 2019-07-07 02:50:07 +03:00
DarkPhoenix
5b74c6c5e1 Update graph info when fit name changes 2019-07-07 02:33:54 +03:00
DarkPhoenix
3e410540c9 Implement cache clear reasons to avoid clearing caches when we do not need that (esp useful for dmg time cache) 2019-07-07 02:08:04 +03:00
DarkPhoenix
5bba1dc88b Add context menu item which controls if webs/TPs are applied to the target 2019-07-07 00:50:12 +03:00
DarkPhoenix
8c0cae8bc3 Switch drone mode handling to use enums 2019-07-06 12:31:26 +03:00
DarkPhoenix
71e55a000b Drone controls now actually control how drones apply on graph 2019-07-06 03:29:09 +03:00
DarkPhoenix
7bcdf95f5c Refresh graph when graph options change 2019-07-06 03:16:31 +03:00
DarkPhoenix
4402addcb0 Add drone options to context menus 2019-07-06 03:06:47 +03:00
DarkPhoenix
3d57861481 Add ignore target resists menu 2019-07-06 02:42:11 +03:00
DarkPhoenix
5d1d2b87df Add context menu support to graph window 2019-07-06 02:30:06 +03:00
DarkPhoenix
389b5d57aa Do not restore graph type selected last time 2019-07-06 01:02:18 +03:00
DarkPhoenix
53de46bab7 Add graph settings and save selected graph type there 2019-07-05 20:15:44 +03:00
DarkPhoenix
e6dce726b7 Rework how toggling factor reload works 2019-07-05 09:10:23 +03:00
DarkPhoenix
63ca8dc559 Recalc all fits which might need that when changing factorReload flag 2019-07-05 01:08:00 +03:00
DarkPhoenix
6e083a5af8 Merge branch 'dps_sim_graph' of github.com:pyfa-org/Pyfa into dps_sim_graph 2019-07-05 00:40:30 +03:00
DarkPhoenix
ac93c5487c Change the way force reload setting is changed 2019-07-05 00:36:44 +03:00
DarkPhoenix
1f94b28b87 Add fighter bomb support 2019-07-04 19:30:02 +03:00
DarkPhoenix
78b6eb4283 Add regular and guided bombs to graphs 2019-07-04 19:14:46 +03:00
DarkPhoenix
417e478d27 Add smartbombs to calculation 2019-07-04 18:37:26 +03:00
DarkPhoenix
78d2dff0d8 Move x time graphs to new methods 2019-07-04 17:37:45 +03:00
DarkPhoenix
63c45c5060 Plug in all calculations besides where X is time 2019-07-04 17:22:23 +03:00
DarkPhoenix
c4f225003a Add fighters to dps vs range graph 2019-07-04 14:33:28 +03:00
DarkPhoenix
185cf4f625 Add drones to dps-range calculation 2019-07-04 13:40:04 +03:00
DarkPhoenix
d2b838e9d5 Rework interface between dps graph and time cache 2019-07-04 13:10:45 +03:00
DarkPhoenix
15b6a848e8 Move warp time subwarp speed calculation to separate cache as well 2019-07-04 11:40:38 +03:00
DarkPhoenix
193fcc60d8 Split time cache into separate file as well 2019-07-04 09:36:31 +03:00
DarkPhoenix
ae110371fe Split up dps graph file a little 2019-07-04 09:11:55 +03:00
DarkPhoenix
5857413285 Get rid of float error when changing vector length via scrolling 2019-07-03 20:07:19 +03:00
DarkPhoenix
4448d7e62f Plug turrets and missiles into dps vs range calculation 2019-07-03 20:03:22 +03:00
DarkPhoenix
d3ca0a961e Implement various functions to calculate damage delivery to specific targets 2019-07-03 18:06:33 +03:00
DarkPhoenix
405492d9d7 Move all the turret calculation logic into new graph 2019-07-03 11:38:21 +03:00
DarkPhoenix
d27d7656d5 Implement turret cth formula 2019-07-03 10:38:06 +03:00
DarkPhoenix
120bd9aa0c Set attacker vector to 90 degrees as well to be able to transversal match with fewer clicks 2019-07-03 10:23:12 +03:00
DarkPhoenix
6ab79ab5c0 Fix angular speed calculation 2019-07-03 10:19:33 +03:00
DarkPhoenix
b8d189c0ad Change vector behavior to be consistent with trigonometry 2019-07-03 10:14:55 +03:00
DarkPhoenix
86e04321c8 Add some calculations to angular velocity calculator 2019-07-03 08:39:44 +03:00
DarkPhoenix
6bcc906c4a Start moving some math to the new damage graph 2019-07-03 08:25:27 +03:00
DarkPhoenix
c3becec822 Refresh graph when calculation returned some error 2019-07-02 16:36:11 +03:00
DarkPhoenix
aae2e7c531 Enable all dps graphs over time 2019-07-02 16:30:24 +03:00
DarkPhoenix
52490144d3 Move some processing from intermediate method to final method to save resources when we need dps/volley, not damage 2019-07-02 14:42:03 +03:00
DarkPhoenix
c04c672f11 Fix incorrect intermediate-to-final cache conversion 2019-07-02 14:38:01 +03:00
DarkPhoenix
f51979b69a Plug new cache format into dmg vs time graph 2019-07-02 13:49:29 +03:00
DarkPhoenix
ab6b9759b0 Generate proper final dmg-time cache 2019-07-02 13:40:48 +03:00
DarkPhoenix
b3027532ff Collect all intermediate dps/volley/damage stats for all items 2019-07-02 02:08:29 +03:00
DarkPhoenix
494c9b08cb Start implementation of generic damage-time cache generator 2019-07-01 20:11:30 +03:00
DarkPhoenix
c595195519 Run special failover only on zero division errors 2019-07-01 12:32:28 +03:00
DarkPhoenix
c3efa819f4 Implement fallback for case when we convert relative value into absolute and then when converting it back to relative fails 2019-06-30 11:32:31 +03:00
DarkPhoenix
4e7580b277 Move dps vs time functionality to new graph 2019-06-29 23:49:43 +03:00
DarkPhoenix
af642a4259 Normalize to seconds when possible 2019-06-29 12:44:25 +03:00
DarkPhoenix
c365efb67e Move dmg vs time logic into new graph infrastructure 2019-06-29 12:31:30 +03:00
DarkPhoenix
fc7613451e Copy functionality from fit list to target list 2019-06-29 11:21:54 +03:00
DarkPhoenix
62b7b44120 Rework cache to store plot results based on composite key 2019-06-29 10:43:21 +03:00
DarkPhoenix
744fce2e82 Make it obvious that we're clearning cache by fitID 2019-06-29 10:31:21 +03:00
DarkPhoenix
dd55493b4e Minor stylistic fixes 2019-06-29 10:24:11 +03:00
DarkPhoenix
7e7b49d2e4 Move shield regen graph to new infrastructure 2019-06-29 10:21:16 +03:00
DarkPhoenix
24494e9b29 Rename cap graph 2019-06-29 00:28:24 +03:00
DarkPhoenix
eff0510092 Do not show time input when it's not needed 2019-06-28 22:08:19 +03:00
DarkPhoenix
988688939b Merge cap regen graph into already existing cap graph 2019-06-28 20:17:23 +03:00
DarkPhoenix
d448116e91 Transfer cap amount vs time graph to new infrastructure 2019-06-28 19:42:49 +03:00
DarkPhoenix
75ce6ffbcf Add stubs for getters 2019-06-28 19:07:16 +03:00
DarkPhoenix
60933a309f Re-enable dps graph again and add some info about how to process inputs and outputs
Real calculation hasn't been transferred yet
2019-06-28 18:56:57 +03:00
DarkPhoenix
428cb5c888 Re-enable mobility graph 2019-06-28 18:31:39 +03:00
DarkPhoenix
d195ec7e68 Move all the logic from eos graph to gui graph for warp time
Now backend graphs have to be aware of handles used in UI graphs, so why not
2019-06-28 15:44:50 +03:00
DarkPhoenix
c2017f3cb9 Re-enable DPS graph and make few fixes 2019-06-28 10:13:03 +03:00
DarkPhoenix
66ff4d827c Integrate graph frame with new APIs 2019-06-28 10:08:53 +03:00
DarkPhoenix
745914bf9e Add parameter normalization function 2019-06-28 09:24:06 +03:00
DarkPhoenix
421146eb54 More work on interfaces between gui and eos graphs 2019-06-27 20:45:21 +03:00
DarkPhoenix
ef81f9c830 Return input data in InputData objects for easier access 2019-06-27 18:52:23 +03:00
DarkPhoenix
1e760b2111 Re-enable warp graph and adapt it to new framework 2019-06-27 16:54:12 +03:00
DarkPhoenix
fe50372b12 Use unit as part of key again will be useful in warp graph 2019-06-27 13:15:22 +03:00
DarkPhoenix
7ef79eaa79 Stop using units as part of input key, they are not going to be different anyway 2019-06-26 21:39:12 +03:00
DarkPhoenix
9b282587b2 Remove limits argument as it's no longer used 2019-06-26 21:24:02 +03:00
DarkPhoenix
4af36514bc Handle vectors a in a separate function 2019-06-26 20:12:08 +03:00
DarkPhoenix
5320e99276 Restore values for vectors (just in case!) 2019-06-26 20:06:51 +03:00
DarkPhoenix
b733205541 Get rid of this smart shit and just store ranges and consts separately 2019-06-26 19:58:26 +03:00
DarkPhoenix
b125c62930 Reset stored values when switching graphs 2019-06-26 19:30:16 +03:00
DarkPhoenix
7895e4076d Add logic which transfers values when switching input fields 2019-06-26 19:29:11 +03:00
DarkPhoenix
9ec192de7d Add methods to convert input values 2019-06-26 18:59:52 +03:00
DarkPhoenix
8e41a31d1d Set vector defaults on initialization and graph switch 2019-06-26 18:03:37 +03:00
DarkPhoenix
fa4a2436aa When vectors are changed, ask to update graphs 2019-06-26 17:00:30 +03:00
DarkPhoenix
22ca78cb68 Implement method which gathers values across control panel boxes 2019-06-26 16:50:54 +03:00
DarkPhoenix
ee4a1f936b Add two classes to handle user input 2019-06-26 15:46:17 +03:00
DarkPhoenix
15a8c5750a Call layout when frame is created as well 2019-06-26 07:59:18 +03:00
DarkPhoenix
9f261f5b80 Change window size when needed 2019-06-26 07:53:22 +03:00
DarkPhoenix
b6a58b4ba6 Change vectors when needed 2019-06-25 19:53:13 +03:00
DarkPhoenix
09ca85ca81 Merge vector classes into one 2019-06-25 19:16:03 +03:00
DarkPhoenix
3aa69a6eaf Update inputs when X selection is updated 2019-06-25 17:42:15 +03:00
DarkPhoenix
2a645b1b04 Move input layout code into its own function 2019-06-25 16:56:26 +03:00
DarkPhoenix
0420f399ad Show-hide vectors and target list as needed 2019-06-25 16:37:33 +03:00
DarkPhoenix
509a45dcee Show labels for vectors separately 2019-06-25 16:02:45 +03:00
DarkPhoenix
52724d790b Change control panel layout 2019-06-25 15:25:48 +03:00
DarkPhoenix
4b960af9ab Rework code to use handle and unit to access various definitions 2019-06-25 11:40:10 +03:00
DarkPhoenix
022f0c06ee Do not show sig % except for the cases when it's used as main value range 2019-06-25 08:23:21 +03:00
DarkPhoenix
5ffd644ad9 Rework subgraph options 2019-06-24 20:24:19 +03:00
DarkPhoenix
03183827a6 Show all the needed controls on the panel 2019-06-24 16:15:35 +03:00
DarkPhoenix
5e7fcc32b6 Start adding code which uses new graph definition for layout 2019-06-24 10:33:59 +03:00
DarkPhoenix
3c0d87940b Change damage stats graph definition 2019-06-21 20:10:38 +03:00
DarkPhoenix
4cf07c4b76 Slap shit together and commit 2019-06-21 09:10:55 +03:00
DarkPhoenix
28db388fa0 Add subclass to specify direction only 2019-06-20 15:59:59 +03:00
DarkPhoenix
2c1905f041 Add vectors to panel (not yet functional) 2019-06-20 00:02:02 +03:00
DarkPhoenix
30d03f0ab5 Do not crash with Show y = 0 disabled and no fits 2019-06-18 16:38:10 +03:00
DarkPhoenix
4ca3f10bc9 Move more stuff away from the frame 2019-06-18 16:12:27 +03:00
DarkPhoenix
9cc228cfff Always run localized injectors heat effect early to apply heat bonus regardless of effect run ordering 2019-06-17 10:10:58 +03:00
DarkPhoenix
3359d8cb88 More code to control panel 2019-06-14 18:26:21 +03:00
DarkPhoenix
738d7f687d Move more code to control panel file 2019-06-14 16:38:41 +03:00
DarkPhoenix
b224196b05 Get rid of logic which handles legacy versions of matplotlib 2019-06-14 14:43:42 +03:00
DarkPhoenix
bbcc32c8cf Split graph frame into multiple files 2019-06-14 13:17:11 +03:00
DarkPhoenix
3c0b8643f6 Move graph file into graph package 2019-06-13 13:28:04 +03:00
DarkPhoenix
c85b6e4a36 Add vector class 2019-06-13 13:20:04 +03:00
DarkPhoenix
6003302e10 Merge branch 'master' into dps_sim_graph 2019-06-13 12:32:38 +03:00
DarkPhoenix
e7dd045979 Use default spool value for dps over range graph, if module has no per-module override 2019-06-06 20:14:32 +03:00
DarkPhoenix
6ca7a22c3e Add info about effective capacitor which takes into consideration neut resistance 2019-06-06 17:29:10 +03:00
DarkPhoenix
e8f09514ab Swap extra cap stats readout 2019-06-06 17:20:05 +03:00
DarkPhoenix
1a3a656879 Optimize checking long lines for speed 2019-06-06 09:09:25 +03:00
DarkPhoenix
e77ada4e8c Start searching from 1 char if strin contains CJK glyphs 2019-06-05 19:06:17 +03:00
DarkPhoenix
41b72c2789 Fix comment 2019-06-04 09:51:10 +03:00
DarkPhoenix
a4be7c5e9a Leave more time for less prioritized sources if more prioritized sources spent less time than we allocated to them 2019-06-04 09:42:44 +03:00
DarkPhoenix
fb3c183b3e Do not attempt to fetch data from unknown systems 2019-06-03 18:39:23 +03:00
DarkPhoenix
3e7dbef659 Remove debugging print 2019-06-03 18:31:48 +03:00
DarkPhoenix
89260d1d36 Always prefer primary data source, and switch evepraisal market source to use min price for items 2019-06-03 18:29:38 +03:00
DarkPhoenix
d451bda7ed Add evepraisal as price source 2019-06-03 18:02:48 +03:00
Anton Vorobyov
933c84466f Merge pull request #1993 from MaruMaruOO/master
Fix for EFS exports with ASBs.
2019-05-31 08:15:38 +03:00
MaruMaruOO
d4c9100f77 Fix for EFS exports with ASBs. 2019-05-30 20:34:55 -04:00
DarkPhoenix
c6aa72a3e3 Re-enable target list in graph panel 2019-05-29 15:29:24 +03:00
DarkPhoenix
7cf6ff04b6 Comment out target list as it caused graphical issues on windows 2019-05-28 17:47:27 +03:00
DarkPhoenix
5b575fdfe3 Make sure panel has no padding to avoid ugly border on Windows 2019-05-28 17:30:50 +03:00
DarkPhoenix
a8a5fabce7 Always add last data point to dps over time graph 2019-05-28 16:33:30 +03:00
DarkPhoenix
f41d6dd2c1 Update database to 1514398 2019-05-28 16:15:29 +03:00
DarkPhoenix
09727c102a Bump pyfa version 2019-05-28 16:06:40 +03:00
DarkPhoenix
6580734dc7 Print full connection exception in case of failure in debug mode 2019-05-28 16:03:25 +03:00
DarkPhoenix
ff34865067 Add target panel as dark code 2019-05-28 15:05:16 +03:00
DarkPhoenix
bdd400fd51 Remove conflicting shortcut 2019-05-27 19:07:58 +03:00
DarkPhoenix
1e8184a80b Make ESI browser tree panel non-scalable 2019-05-27 19:06:53 +03:00
DarkPhoenix
6a20f04c7f Merge branch 'master' into singularity 2019-05-27 19:04:27 +03:00
Anton Vorobyov
d81acc1f9c Merge pull request #1987 from AaronOpfer/esi_import_sizing
improve sizing on esi fit import browser
2019-05-27 19:03:59 +03:00
DarkPhoenix
bc84c20cb2 Update database with actual contents before and after fill, also do it in UI commands 2019-05-27 15:35:14 +03:00
DarkPhoenix
d5c5e2698e Redraw only after some delay (reuse market search delay for that) 2019-05-27 13:46:40 +03:00
Anton Vorobyov
16a78e689e Merge pull request #1988 from MaruMaruOO/master
Updates EFS exports to support local repairs, cap  warfare and ammo switching.
2019-05-27 10:32:49 +03:00
MaruMaruOO
066f29660d Added repair and cap data to EFS exports. 2019-05-27 02:18:10 -04:00
Aaron Opfer
bba0df5f50 improve sizing on esi fit import browser
On my machine, using the ESI import feature and clicking "Fetch Fits" gives the appearance of nothing happening. Turns out, this was because by default the tree on the left-hand side of the window has zero width by default and the parent window needs to be resized to see the fits. Fix this by setting a minimum size for the fitting browser tree and increase the default window size to compensate.
2019-05-26 04:33:15 -05:00
DarkPhoenix
45452ca680 Add rename mappings for faction trig guns 2019-05-25 22:04:17 +03:00
DarkPhoenix
4fbbc18f9f Accept mix of localized hints and regular names in XML importer 2019-05-25 17:43:47 +03:00
DarkPhoenix
22ec280ec2 Fix showing of neut resistance 2019-05-24 23:17:02 +03:00
DarkPhoenix
89c06b5201 Rescale contents on graph switch 2019-05-24 13:35:45 +03:00
DarkPhoenix
86d5f72988 Normalize drone tracking for Misc column 2019-05-23 15:49:49 +03:00
MaruMaruOO
c3e055a4c9 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2019-05-22 02:55:46 -04:00
MaruMaruOO
e48631956d Add typeIDs for cargo to EFS exports. 2019-05-22 02:35:47 -04:00
DarkPhoenix
2964f3b009 Do not recreate checkbox on each graphical switch
Leads to weird graphical glitches on GTK
2019-05-21 22:09:08 +03:00
DarkPhoenix
527c66dca4 Change the way radio buttons look 2019-05-21 21:29:26 +03:00
DarkPhoenix
24909f0523 Extend allowable range a little so that first reload of triglavians is included 2019-05-21 21:11:09 +03:00
DarkPhoenix
ed7494b3a4 Implement graph type selection 2019-05-21 19:47:55 +03:00
DarkPhoenix
8fae275e5a Cache graph values on GUI graphs so they do not get recalculated when graph options are changed 2019-05-21 19:06:11 +03:00
DarkPhoenix
a09a2a5f4b Add option whether 0 value should be shown or not on graphs 2019-05-21 17:51:50 +03:00
DarkPhoenix
2adc150811 Limit dmg and dps over time graphs to not hog resources on weaker machines for too long 2019-05-21 14:37:35 +03:00
DarkPhoenix
f5cad33b6c Some layout changes 2019-05-20 12:22:44 +03:00
DarkPhoenix
338cf45f65 Include "high" endpoint for damage over time graph 2019-05-20 10:41:26 +03:00
DarkPhoenix
359c60bafb Increase graph size and add some padding 2019-05-20 10:32:40 +03:00
DarkPhoenix
f808b73a5d Add axis labels 2019-05-20 07:56:04 +03:00
DarkPhoenix
8dd87cde58 When fit is removed, update projected/command contents if needed 2019-05-19 21:53:44 +03:00
DarkPhoenix
1ec78d9beb Remove fit from graph window when it gets deleted 2019-05-19 21:29:43 +03:00
DarkPhoenix
9c710285f2 Do not cycle over mods which are not dealing damage when composing cache 2019-05-19 21:04:41 +03:00
DarkPhoenix
90f745a18f Refresh cache only for changed fits rather than every fit 2019-05-19 20:54:12 +03:00
DarkPhoenix
af446579ab Get clean subwarp speed (no cloaks, propmods, webs etc) 2019-05-19 20:38:56 +03:00
DarkPhoenix
bcc11bd172 Reorder fields in graph 2019-05-19 14:11:05 +03:00
DarkPhoenix
0c31f756a8 Restore DPS vs range graph 2019-05-19 14:02:24 +03:00
DarkPhoenix
16fdd5a5e6 Fix warp graph 2019-05-19 04:07:40 +03:00
DarkPhoenix
ec1a2c66ee Restore shield graphs 2019-05-18 22:52:59 +03:00
DarkPhoenix
c3f41d68e6 Round in getYforX as well 2019-05-18 11:19:08 +03:00
DarkPhoenix
2f8701b4b2 Rework plot point processing for dmg over time graph the same way 2019-05-18 11:15:27 +03:00
DarkPhoenix
9b2d5410d6 Fix dps over time graph 2019-05-18 11:03:12 +03:00
Anton Vorobyov
1d8c9d2c40 Merge pull request #1977 from jtaylormayfield/master
Applied implant and booster skill check
2019-05-18 01:04:05 +03:00
J. Taylor Mayfield
8c0817245f Include skill prerequisites for applied implants and boosters in fit skill check. 2019-05-17 15:27:17 -05:00
DarkPhoenix
2a04e60ae0 Restore functionality of dmg vs time graph 2019-05-17 18:44:52 +03:00
DarkPhoenix
fb5eb220fd Rework graph interfaces again 2019-05-17 17:48:20 +03:00
DarkPhoenix
512f48ebdd Force frame refresh on graph redraw 2019-05-17 16:02:43 +03:00
DarkPhoenix
09db7d26a7 Rework mobility vs time graph 2019-05-17 15:38:06 +03:00
DarkPhoenix
690cf5eca1 Rework cap regen graph to use new interfaces 2019-05-17 15:11:52 +03:00
DarkPhoenix
1aee4c59c4 Merge branch 'singularity' of github.com:pyfa-org/Pyfa into singularity 2019-05-17 14:49:13 +03:00
DarkPhoenix
f1384074b5 Rework internal graph interfaces 2019-05-17 14:48:42 +03:00
DarkPhoenix
203bed06d6 Do not consider previous item heights when setting new item height 2019-05-16 22:13:01 +03:00
DarkPhoenix
0b00e28863 Fix #1974 2019-05-15 01:15:41 +03:00
DarkPhoenix
d74d331642 Merge branch 'singularity' of github.com:pyfa-org/Pyfa into singularity 2019-05-15 00:52:23 +03:00
DarkPhoenix
f075fbdc63 Do not show abyssal items in variations menu 2019-05-15 00:52:04 +03:00
DarkPhoenix
d59b6696ca Remove links to unmaintained packages 2019-05-14 14:22:09 +03:00
Anton Vorobyov
eedf6f9a39 Merge pull request #1973 from ZeroPointEnergy/pyfa_gentoo_overlay
Add link to Gentoo pyfa overlay
2019-05-14 14:19:07 +03:00
DarkPhoenix
1cca5729fc Add cap delta to tooltip on capacitor view 2019-05-14 14:15:58 +03:00
Andreas Zuber
a7b01ece22 Add link to Gentoo pyfa overlay 2019-05-14 13:08:47 +02:00
DarkPhoenix
d17e6d08d8 Fix definite integral calculation for distance traveled graph 2019-05-13 10:03:19 +03:00
DarkPhoenix
b29aaa9e20 Show ship name in legend as well (short, if needed) 2019-05-13 09:27:25 +03:00
DarkPhoenix
71ae59b2b5 Bump version 2019-05-13 06:48:35 +03:00
DarkPhoenix
51294f6cbc Change the way graphs are imported 2019-05-13 06:46:25 +03:00
DarkPhoenix
0439ace886 UK -> US spelling 2019-05-12 18:35:23 +03:00
DarkPhoenix
c85c735f9a Bump version 2019-05-12 18:04:40 +03:00
DarkPhoenix
c65b582497 Remove dot after "vs" 2019-05-12 18:01:44 +03:00
DarkPhoenix
7f2ac83e17 Add context menu which removes fits from graphs 2019-05-12 17:42:56 +03:00
DarkPhoenix
5ef2a40d1e Delete fits by pressing del key in graphs window 2019-05-12 17:32:17 +03:00
DarkPhoenix
5b52da737a Do not trigger esc when modifier keys are pressed 2019-05-12 17:08:41 +03:00
DarkPhoenix
51e8713cd6 Add warp time graph 2019-05-12 17:04:11 +03:00
DarkPhoenix
c9b60f2c65 Add distance vs time graph 2019-05-12 16:26:02 +03:00
DarkPhoenix
d777999af4 Add speed vs time graph 2019-05-12 15:46:50 +03:00
DarkPhoenix
74444d56c4 Add shield amount vs time graph 2019-05-12 15:30:41 +03:00
DarkPhoenix
a433c9638a Add cap-time graph 2019-05-12 14:59:19 +03:00
DarkPhoenix
672141cffc Add cap amount graph 2019-05-12 14:40:57 +03:00
DarkPhoenix
ac132cbb92 Add shield recharge graph 2019-05-12 14:32:57 +03:00
DarkPhoenix
d9535b08b1 Rename graphs 2019-05-12 12:28:47 +03:00
DarkPhoenix
d93544b3bc Fix DPS over time graph 2019-05-12 06:46:28 +03:00
DarkPhoenix
2320c3cb57 Make sure to include all Y-values 2019-05-12 05:54:03 +03:00
DarkPhoenix
bd5710c676 Calculate graph data only once 2019-05-12 05:30:49 +03:00
DarkPhoenix
49f1412d91 Fix bug with drones 2019-05-12 04:56:59 +03:00
DarkPhoenix
54eea7d702 Rework damage over time graph to show actual damage dealt per volley 2019-05-12 04:44:27 +03:00
DarkPhoenix
e26bcb2e5e Move DoT logic into volley parameter fetcher 2019-05-12 03:15:10 +03:00
DarkPhoenix
7305c0a017 Add optional parameter to cycle parameter getters 2019-05-12 02:55:42 +03:00
DarkPhoenix
7d37b9e0e0 Implement volley parameters for modules 2019-05-12 02:49:21 +03:00
DarkPhoenix
87f28db730 Implement volley parameters for drones and fighters 2019-05-12 02:38:36 +03:00
DarkPhoenix
56d9a8b626 Rework fighter calculations to use cycle parameters 2019-05-12 02:18:44 +03:00
DarkPhoenix
cb8f76c582 Implement module cycle parameters logic for modules 2019-05-11 17:34:01 +03:00
DarkPhoenix
af0b7b92c7 Implement cycle parameters for drones 2019-05-11 16:15:03 +03:00
DarkPhoenix
9418b7a709 Calculate 0 range data points 2019-05-11 14:53:59 +03:00
DarkPhoenix
47c34f2186 Sort implant sets by name 2019-05-10 16:22:57 +03:00
DarkPhoenix
2ca418c287 Add damage over time graph 2019-05-10 03:18:25 +03:00
DarkPhoenix
775e69305c Make graphs switchable 2019-05-10 03:06:00 +03:00
DarkPhoenix
0f1cbb4234 Add support for dps over time graph 2019-05-10 02:46:50 +03:00
DarkPhoenix
306710a314 Bump version 2019-05-09 20:12:37 +03:00
DarkPhoenix
776a4ee977 Update effects 2019-05-09 20:11:31 +03:00
DarkPhoenix
9dccfd756a Update database to 1503340 2019-05-09 19:49:13 +03:00
DarkPhoenix
15281ee6ce Merge branch 'master' into singularity 2019-05-07 10:27:01 +03:00
DarkPhoenix
9a0dd6c521 Copy empty spots on fit as well when making copy 2019-05-06 20:21:28 +03:00
DarkPhoenix
a570f291ae Merge branch 'master' into singularity 2019-05-06 15:32:52 +03:00
DarkPhoenix
cde7fdcaba Do not activate MJD and MJFG upon fitting 2019-05-05 05:06:15 +03:00
DarkPhoenix
e4780bc8ba Merge branch 'master' into singularity 2019-05-04 12:18:50 +03:00
DarkPhoenix
4d35e5aee1 Comment out some conflicting jargon entries 2019-05-04 12:18:07 +03:00
DarkPhoenix
f7b705b9e2 Add focused void bomb jargon entry 2019-05-04 12:16:04 +03:00
DarkPhoenix
48f44cdb0c Merge branch 'master' into singularity 2019-05-04 02:44:12 +03:00
DarkPhoenix
013a2264c0 Show tooltip only if there's something to show 2019-05-04 02:43:33 +03:00
DarkPhoenix
8222686dda Enable tooltips for export options 2019-05-04 02:43:02 +03:00
DarkPhoenix
7f2121e98d Add possibility to export formatted DNA 2019-05-04 02:38:19 +03:00
DarkPhoenix
4b6c881dca Re-enable DNA export 2019-05-04 02:26:09 +03:00
DarkPhoenix
5f9bf4a861 Bump version 2019-05-03 22:41:10 +03:00
DarkPhoenix
154db5df0b Merge branch 'master' into singularity 2019-05-03 22:29:26 +03:00
DarkPhoenix
321b939d3a Commit mutated data before destroying window 2019-05-03 22:28:29 +03:00
DarkPhoenix
95a1d669f5 Invasion effects affect module mining cycle only 2019-05-03 19:01:10 +03:00
DarkPhoenix
9e3c9bd056 Merge branch 'master' into singularity 2019-05-03 16:30:38 +03:00
DarkPhoenix
bb9b3780ae Fix context submenu activation 2019-05-03 16:22:18 +03:00
DarkPhoenix
4c976d9f35 Scroll mutated item stats with mousewheel over spincontrol not just on GTK 2019-05-03 14:56:59 +03:00
DarkPhoenix
52a1314803 Merge branch 'master' into singularity 2019-05-03 04:25:27 +03:00
DarkPhoenix
a5475eb244 Do not activate ADC on fit import as well 2019-05-03 04:24:59 +03:00
DarkPhoenix
ba0a5db72f Remove stacking penalties from duration attribute
It cannot be stacking penalized
2019-05-03 04:04:58 +03:00
DarkPhoenix
2bac4a954f Merge branch 'master' into singularity 2019-05-03 04:04:11 +03:00
DarkPhoenix
e9f3453b04 Fix industrial core stacking penalties 2019-05-03 03:57:53 +03:00
DarkPhoenix
c950592b5b If corresponding option is enabled, re-enable all meta buttons on every search change rather than just on search beginning 2019-05-03 03:41:09 +03:00
DarkPhoenix
1cd42669a0 Merge branch 'master' into singularity 2019-05-03 03:37:48 +03:00
DarkPhoenix
2b24f14122 Change interface between commands and item containers once again 2019-05-03 03:36:47 +03:00
DarkPhoenix
4932b685e1 Merge branch 'master' into singularity 2019-05-03 02:31:22 +03:00
DarkPhoenix
cfffa1d99d Do not crash when facing unknown module in saved fit 2019-05-03 02:27:03 +03:00
DarkPhoenix
44a7e53b9e Bump version 2019-05-02 19:54:29 +03:00
DarkPhoenix
b35bdd4e33 Add triglavian invasion effects 2019-05-02 19:50:40 +03:00
DarkPhoenix
7f52f6fe44 Show spoolup time for MJFGs 2019-05-02 19:13:21 +03:00
DarkPhoenix
34e49da0c1 Add renders of new ships 2019-05-02 18:52:53 +03:00
DarkPhoenix
5132698974 Add draugur effect 2019-05-02 18:24:47 +03:00
DarkPhoenix
832cebcaaf Add ikitursa effects 2019-05-02 18:17:23 +03:00
DarkPhoenix
4eaccd1eed Change spoolup context menu to show 20-ish amount of items 2019-05-02 18:03:31 +03:00
DarkPhoenix
5245f289a5 Add nergal effects 2019-05-02 17:16:38 +03:00
DarkPhoenix
672aed44f2 Add trig frigate resist effects 2019-05-02 16:40:38 +03:00
DarkPhoenix
8c890cf9a5 Rerun effectUsedBy script 2019-05-02 16:30:28 +03:00
DarkPhoenix
8f9a95db93 Do not crash when icons are missing, and add ADC mutaplasmid override 2019-05-02 16:10:22 +03:00
DarkPhoenix
5a056e6d47 Update database to 1498791 2019-05-02 15:54:04 +03:00
DarkPhoenix
b121085271 Unfuck EFT import 2019-05-02 04:34:49 +03:00
DarkPhoenix
b3ef55cb7f Make modification of mutated stats undoable 2019-05-02 00:18:17 +03:00
DarkPhoenix
bbc8fd0f97 Change mutations UI to properly keep all needed elements visible and scroll when needed 2019-05-01 22:22:18 +03:00
DarkPhoenix
b11a576922 Fix an oversight which led to charges not unloading when replacing module 2019-05-01 17:59:59 +03:00
DarkPhoenix
7375258b9f Change citadel security status via fitting pane context menu 2019-05-01 16:44:08 +03:00
DarkPhoenix
c447cf06d7 Add context menu to change system security status 2019-05-01 16:22:26 +03:00
DarkPhoenix
a7dcf1ace6 Add commands which handle switching fit security status 2019-05-01 15:33:27 +03:00
DarkPhoenix
bd3d81e2f8 Plug fit security status in citadel rig effect 2019-05-01 15:22:01 +03:00
DarkPhoenix
732b7a5ab9 Add system security column to fits 2019-05-01 15:04:46 +03:00
DarkPhoenix
3c16600c53 Include sqlalchemy's baked in mac/windows specs as well 2019-05-01 14:54:49 +03:00
DarkPhoenix
d0921ba9ec Add extra import to include in distributives 2019-05-01 13:08:50 +03:00
DarkPhoenix
8ec840740b Change fix for #1909 2019-05-01 13:04:12 +03:00
DarkPhoenix
580ff1c435 Readability fixes 2019-05-01 01:28:41 +03:00
DarkPhoenix
d68296bfd7 Bump pyyaml version 2019-05-01 01:28:09 +03:00
DarkPhoenix
c520b5e4f5 Bump version 2019-05-01 01:08:47 +03:00
DarkPhoenix
2da85888be Fix scrolling speed in ship browser 2019-05-01 01:05:31 +03:00
DarkPhoenix
bdd4a8cfb7 Fix scroll rate in preference panel 2019-05-01 00:55:52 +03:00
DarkPhoenix
dbef3b8c84 Unfuck character editor context menus 2019-04-30 22:39:38 +03:00
DarkPhoenix
63a6d746e8 Search for DNA in chat line 2019-04-30 21:18:12 +03:00
DarkPhoenix
7b8d9f8dbe Round fitting resource attributes properly 2019-04-30 18:51:01 +03:00
DarkPhoenix
7aa73e4b2f Fix issue with putting ID instead of name into capping key 2019-04-30 18:48:53 +03:00
DarkPhoenix
33883c562a Collapse all children when collapsing market group 2019-04-30 17:37:16 +03:00
DarkPhoenix
36c17dde8d Show damage mod cumulative damage boost in misc column 2019-04-30 17:22:06 +03:00
DarkPhoenix
5a9fd188f0 Add ability to clone drones by ctrl-dragging them 2019-04-30 16:16:09 +03:00
DarkPhoenix
4b65662c9f Fix triage effect local tank stacking penalty 2019-04-30 15:37:27 +03:00
DarkPhoenix
cd3d1a9557 Add SBA jargon entry 2019-04-30 15:25:20 +03:00
DarkPhoenix
9f63b0b412 Import DNA-formatted fits from chat messages 2019-04-30 15:18:40 +03:00
DarkPhoenix
9249ef24b3 Allow to undo operations even if removed module doesn't fit (e.g. removing excessive modules on t3c with removed subs) 2019-04-30 14:39:11 +03:00
DarkPhoenix
63a599ca85 Restore removed dummies on all commands which can deal with t3c subsystems 2019-04-30 13:50:10 +03:00
DarkPhoenix
fa2bceaff9 Allow recalculating fit without changing slot layout (e.g. when t3c subs added/removed) 2019-04-30 13:21:39 +03:00
DarkPhoenix
e9dffeadf6 Undo removal of subsystems properly 2019-04-30 02:03:32 +03:00
DarkPhoenix
161c4629cf Do not paint subsystems with red when restrictions are disabled 2019-04-30 01:31:35 +03:00
DarkPhoenix
951ffcd35a Fix an oversight 2019-04-30 01:25:13 +03:00
DarkPhoenix
ba21ebe058 Restore mass-removed t3 modules properly 2019-04-30 01:23:52 +03:00
DarkPhoenix
f8c2604fb2 Do not crash when changing slot color option with item view unitialized 2019-04-30 00:47:04 +03:00
DarkPhoenix
966763aaa4 Make toggling ignore of restrictions undoable 2019-04-30 00:44:54 +03:00
DarkPhoenix
4eb8973c31 Rework how effect-blocking modules (scram) work to properly support undoing 2019-04-29 20:25:28 +03:00
DarkPhoenix
72fe52e560 Do not use GetItemData where we do not need it 2019-04-29 15:37:54 +03:00
DarkPhoenix
e346239174 Limit amount of commands by 100 2019-04-29 09:48:37 +03:00
DarkPhoenix
dd27a26fa9 Allow batch changes of projected fighter/module states 2019-04-29 09:47:38 +03:00
DarkPhoenix
162b115c91 Allow alt actions when removing projected items via double-click 2019-04-29 09:28:21 +03:00
DarkPhoenix
99f4ed6b33 Allow batch change of projected fighter variations 2019-04-29 09:17:46 +03:00
DarkPhoenix
53252241e1 Allow batch changes of projected drone variations 2019-04-29 08:46:01 +03:00
DarkPhoenix
698328e335 Allow batch changes of projected module metas 2019-04-29 07:51:13 +03:00
DarkPhoenix
dece788f66 Allow alt-switch of ability states for projected fighters 2019-04-29 01:18:15 +03:00
DarkPhoenix
958fbac582 Implement alt logic in projected item removal via context menu 2019-04-29 01:04:22 +03:00
DarkPhoenix
99d72956e8 Detect structure modules as modules 2019-04-29 00:43:18 +03:00
DarkPhoenix
eb601e991a Print "stack" suffix on remove context menu text depending on passed source context rather than item context 2019-04-29 00:25:02 +03:00
DarkPhoenix
cb7f0052c4 Do not remove items on Del key used with modifier keys 2019-04-29 00:02:29 +03:00
DarkPhoenix
8b75b5f184 Change projected view to support multi-selection 2019-04-29 00:00:07 +03:00
DarkPhoenix
bf5935e033 Alt + changing fighter state now changes state of similar fighters 2019-04-28 18:59:37 +03:00
DarkPhoenix
67e80deed9 Change command which changes projected item state to support multi-selection 2019-04-28 18:43:28 +03:00
DarkPhoenix
e39f9ffecf Rework projected removal command to be able to handle multi-selection 2019-04-27 23:27:16 +03:00
DarkPhoenix
e865c9a399 Use GetModifiers() instead of asking status of individual keys 2019-04-27 14:22:09 +03:00
Anton Vorobyov
a919510d07 Merge pull request #1955 from MaruMaruOO/master
Fixed AoE DD's signature radius for EFS exports.
2019-04-27 10:28:57 +03:00
MaruMaruOO
bd86d3289f Fixed AoE DD's signature radius for EFS exports. 2019-04-27 00:57:41 -04:00
DarkPhoenix
c8ff644b63 Make command fit panel multi-selectable 2019-04-25 23:55:41 +03:00
DarkPhoenix
6703a08976 Change command fit state changing command to support multi-selection 2019-04-25 19:27:36 +03:00
DarkPhoenix
3d70d9e37c Add multi-selection support to command fit remove command 2019-04-25 18:47:39 +03:00
DarkPhoenix
ef62d5cf97 Make boosters panel multi-selectable 2019-04-25 18:32:18 +03:00
DarkPhoenix
caf5f33c80 Change booster state changing command to support multi-selection 2019-04-25 18:13:24 +03:00
DarkPhoenix
29c29469c6 Change booster removal commands to support multi-selection 2019-04-25 17:56:53 +03:00
DarkPhoenix
7b564f1f53 Show "Change Ship Skills" even when clicking outside of module area 2019-04-25 17:38:31 +03:00
DarkPhoenix
f280955ac3 Do not change state of selection when state of item outside of selection is changed 2019-04-25 17:33:17 +03:00
DarkPhoenix
e09fce8411 Allow removal of several implants at once via context menu 2019-04-25 17:15:01 +03:00
DarkPhoenix
5777103d21 Allow batch implant state switching 2019-04-25 16:29:04 +03:00
DarkPhoenix
8671b20790 Rework implant state switch command to accept multiple positions 2019-04-25 15:20:20 +03:00
DarkPhoenix
dc30b3ed1d Change implant remove command to support batch removal 2019-04-25 14:56:09 +03:00
DarkPhoenix
07a9f77287 Allow to change batches of items in cargo 2019-04-25 13:36:54 +03:00
DarkPhoenix
9d58ceb14d Remove multiple cargo items at once via context menu 2019-04-25 09:56:09 +03:00
DarkPhoenix
71c421702c Rework code of remove item context menu a little 2019-04-25 09:50:56 +03:00
DarkPhoenix
989f12453d Remove multiple cargo items with delete key 2019-04-25 09:27:52 +03:00
DarkPhoenix
b7d6892d9f Rework change cargo meta command to support changing multiple items at once 2019-04-24 23:11:28 +03:00
DarkPhoenix
cfb351a751 Change cargo removal command to be able to accept multiple typeIDs 2019-04-24 22:09:45 +03:00
DarkPhoenix
dde1e7990d Allow batch manipulation of fighter abilities 2019-04-24 17:25:20 +03:00
DarkPhoenix
6e4ec54ac6 Allow batch toggling of fighters 2019-04-24 16:49:39 +03:00
DarkPhoenix
81da217a09 Allow batch meta level change on fighters 2019-04-24 16:28:40 +03:00
DarkPhoenix
2d1613d8bc Make sure that clicked item is always included in selection 2019-04-24 16:01:02 +03:00
DarkPhoenix
ccc2e6ece3 Make sure that drone variation is applicable to multiple modules, if multiple drones of the same type are selected 2019-04-24 15:56:19 +03:00
DarkPhoenix
1206e95cfb Rework meta switcher code 2019-04-24 15:37:15 +03:00
DarkPhoenix
921ccd3be9 Allow removal of batches of fighters 2019-04-24 15:17:30 +03:00
DarkPhoenix
178e3a3d56 Change sorting of fighters - group up by sub-roles as well 2019-04-24 13:28:14 +03:00
DarkPhoenix
5d255547e4 Make fighter panel multi-selectable and change fighter sorting to match order in fighter tube panel 2019-04-24 13:16:01 +03:00
DarkPhoenix
bd148b8792 Stylistic fixes 2019-04-24 12:47:50 +03:00
DarkPhoenix
b88ebdcfc0 Send context only for selected module in fitting panel 2019-04-24 12:45:21 +03:00
DarkPhoenix
3a26815d18 Change the fix again to not go into recursion problems on windows 2019-04-24 12:00:48 +03:00
DarkPhoenix
b70fcd9659 Change ScreenToClient fix 2019-04-24 11:46:20 +03:00
DarkPhoenix
71aa557770 Focus contents of various pages when user switches to their tabs 2019-04-24 09:02:28 +03:00
DarkPhoenix
d35bf6514f Do not pass selection as fallback, as we're now calculating clicked row properly 2019-04-24 08:16:23 +03:00
DarkPhoenix
abe015bee3 Add custom implementation of ScreenToClient 2019-04-24 08:11:37 +03:00
DarkPhoenix
929520091f Use wx' builtin when calculating relative coordinates 2019-04-23 23:50:49 +03:00
DarkPhoenix
d4847112a9 Make drone additions pane multi-selectable, change all related commands to support it too 2019-04-23 22:12:07 +03:00
DarkPhoenix
4e2c3a3fcc Do not select cargo/drone tab when adding drones/cargo fails 2019-04-23 19:21:31 +03:00
DarkPhoenix
91e6d89022 Update resource panel when addition panel tabs is selected as side-effect of context menu use 2019-04-23 19:18:33 +03:00
DarkPhoenix
b9a71c08b7 Change only modules which are supposed to change 2019-04-23 18:14:14 +03:00
DarkPhoenix
070dd62e6d Add alt support to variations menu for modules 2019-04-23 18:11:02 +03:00
DarkPhoenix
b404abca41 Add ability to remove similar modules to "remove module" context menu 2019-04-23 17:50:20 +03:00
DarkPhoenix
99f00b25a1 Change few details on how we handle charge switch 2019-04-23 17:39:48 +03:00
DarkPhoenix
45936b5b98 Change implant set context menu to single item as well 2019-04-23 16:34:40 +03:00
DarkPhoenix
b1aac9f56d Do not show menu items which are specific to modules when user clicks rack separator 2019-04-23 16:23:35 +03:00
DarkPhoenix
13f370ceb9 Change several context menus to use single-item class 2019-04-23 16:19:07 +03:00
DarkPhoenix
b5a4f97cb5 Change some context menus to use unconditional class 2019-04-23 16:09:12 +03:00
DarkPhoenix
0679a0af0f Change logic for selection-based context menus 2019-04-23 15:58:42 +03:00
DarkPhoenix
53fe3242b9 Start reworking context menus into several special classes to improve menu handling consistency 2019-04-23 15:38:53 +03:00
DarkPhoenix
6615bed1cd Fix context menu which is used to fill from market 2019-04-23 13:47:47 +03:00
DarkPhoenix
ad0c7a7a9d Rework conditions in some context menus to check mainItem when it's needed by the menu 2019-04-23 10:14:59 +03:00
DarkPhoenix
87ba6a9af0 Drop selection on ESC in fitting pane 2019-04-22 21:10:38 +03:00
DarkPhoenix
5c44df7f21 Unfuck state change for passive modules 2019-04-22 19:36:45 +03:00
DarkPhoenix
24bc675319 Do not crash when right-clicking without any selection 2019-04-22 19:26:24 +03:00
DarkPhoenix
be2e0b5de4 Rely on clicked item instead of selection where it makes sense 2019-04-22 17:33:40 +03:00
DarkPhoenix
e4481e8fb4 Do not rely on modeID, it doesn't always get set of fit by default when creating new fit 2019-04-22 17:04:30 +03:00
DarkPhoenix
19b1eb161b Pass main item argument to context menu definitions 2019-04-22 17:01:53 +03:00
DarkPhoenix
30ed1ac81d Do not crash on context menu when module which can have ammo and t3d mode are selected 2019-04-22 16:15:17 +03:00
DarkPhoenix
b4288e17e5 Send proper main module to context menu if possible 2019-04-22 16:06:16 +03:00
DarkPhoenix
c03d000c45 Pass item which is considered to be clicked item to context menus 2019-04-22 15:45:37 +03:00
DarkPhoenix
881ec8b5b4 Select all items in fitting panel on ctrl-a 2019-04-22 13:36:59 +03:00
DarkPhoenix
71d5b28b75 Reuse selected module getter in fitting panel code 2019-04-22 13:20:10 +03:00
DarkPhoenix
a15fdc3b23 Use shared unselection function when starting drag 2019-04-22 13:07:18 +03:00
DarkPhoenix
55cd33e653 Do not show "show in fitting browser" context menu when it doesn't do anything to avoid confusion 2019-04-22 12:36:10 +03:00
DarkPhoenix
af0b2b9f1b Do not crash when alt-clicking state column 2019-04-22 07:24:14 +03:00
DarkPhoenix
983641d1d5 If loading into specified group of modules fails during alt-drag, attempt to load into all 2019-04-22 00:43:52 +03:00
DarkPhoenix
4ab21e92bf Load charge into all modules when dropping onto illegal location 2019-04-22 00:36:48 +03:00
DarkPhoenix
413f00a475 Select just item being dragged when drag starts 2019-04-22 00:18:46 +03:00
DarkPhoenix
bde2043294 Do not crash when landing module on non-filled module slot while holding alt 2019-04-21 23:47:21 +03:00
DarkPhoenix
d45857f1fc Do not fill with module while adding anything via alt-number from market 2019-04-21 23:42:14 +03:00
DarkPhoenix
8a19bf78ce Fix changing projected fit amount to 0 2019-04-21 21:30:32 +03:00
DarkPhoenix
d523722988 Change projected fit context menu entry names 2019-04-21 21:26:58 +03:00
DarkPhoenix
031cb6fcfb Change projected fits behavior - now addition adds 1 fit in any case (even if fit is already projected), and removal via double-click works like with drones 2019-04-21 21:22:57 +03:00
DarkPhoenix
72fc560241 Make all secondary windows closable by ESC 2019-04-21 19:34:14 +03:00
DarkPhoenix
1d7be66eb1 Destroy stats window when it's closed 2019-04-21 18:30:25 +03:00
DarkPhoenix
5d32a31dc3 Fix implant editor 2019-04-21 18:23:56 +03:00
DarkPhoenix
4821bd1c72 Mass-replace modules when dragging something from market and dropping over another module while holding alt 2019-04-21 15:33:00 +03:00
DarkPhoenix
6694caafa0 Do not unselect on removing modules with delete key 2019-04-21 14:38:01 +03:00
DarkPhoenix
7b71c16cec Remove bunch of modules on alt-double click 2019-04-21 14:35:52 +03:00
DarkPhoenix
df6e7b5772 Remove charge changing functionality from module add command, as it wasn't used anyway 2019-04-21 11:36:21 +03:00
DarkPhoenix
7abc14eb7f Take into consideration effects as well 2019-04-21 11:30:24 +03:00
DarkPhoenix
4d21fa517a Reformat code a little 2019-04-21 11:22:59 +03:00
DarkPhoenix
f2a82c31c4 Add ability to fill fit with item, and fix some charge-related stuff 2019-04-21 10:53:26 +03:00
DarkPhoenix
337973965a Run state change on secondary modules even if clicked module is already in that state 2019-04-21 00:37:11 +03:00
DarkPhoenix
f0b3aafd54 Change state of similar mods when you have alt pressed 2019-04-21 00:32:37 +03:00
DarkPhoenix
f6b97859aa Move code which handles module filtering to command helpers 2019-04-21 00:24:50 +03:00
DarkPhoenix
1064a90a1c Allow to close all tabs with one action 2019-04-21 00:12:12 +03:00
DarkPhoenix
4c736de598 Revert change which allowed to use alt key as modifier to open fits in new tabs or switch modules to offline 2019-04-20 23:47:23 +03:00
DarkPhoenix
8d0ad26159 Change "open stats in the same window" modifier to use shift 2019-04-20 23:40:30 +03:00
DarkPhoenix
3efa07d821 When changing charges, check not just market group, but group too 2019-04-20 23:16:25 +03:00
DarkPhoenix
44240c1d37 Avoid committing more than once when restoring removed modules 2019-04-20 23:10:36 +03:00
DarkPhoenix
9eaeb60af7 Add ability to fill with modules by ctrl+alt+dragging 2019-04-20 22:54:19 +03:00
DarkPhoenix
cecb8f69a3 Change behavior of module state switching 2019-04-20 21:49:13 +03:00
DarkPhoenix
d402735c8b Accurately restore mod states on Undo(), if they were both changed manually and during state check on Do() 2019-04-20 21:22:34 +03:00
DarkPhoenix
327ad78eb8 Fix insert for boosters as well 2019-04-20 19:31:44 +03:00
DarkPhoenix
edc1ef0e38 Do not choke on context menu spawning when module cannot be found 2019-04-20 16:28:12 +03:00
DarkPhoenix
c6bfd0bc05 Do not refetch mouse state 2019-04-20 14:44:24 +03:00
DarkPhoenix
3badab0353 Fix various bugs replated to DB management 2019-04-20 14:29:10 +03:00
DarkPhoenix
8ca5b34c14 Insert instead of appending when we're asked to... 2019-04-20 13:30:07 +03:00
DarkPhoenix
417ffd396c Undo application of sets without committing results until operation is done 2019-04-20 12:59:48 +03:00
DarkPhoenix
ccb0732f7d Update preference tooltip 2019-04-20 04:24:55 +03:00
Anton Vorobyov
a994f55011 Merge pull request #1949 from pyfa-org/command_reliability
Command reliability
2019-04-20 04:20:25 +03:00
DarkPhoenix
c2d309430e Make sure cargo-module drag commands are using actual fit data too 2019-04-20 04:10:32 +03:00
DarkPhoenix
c3e1ec2760 Ensure that module-fit relationship is established before running some checks which can rely on them 2019-04-20 04:06:57 +03:00
DarkPhoenix
8c40489049 Fix wrong log message 2019-04-20 03:59:08 +03:00
DarkPhoenix
051800bc16 Do not break selection on delimiters when generating context menus 2019-04-20 03:49:09 +03:00
DarkPhoenix
d1a3e5c0e8 Fix some module-related command calls 2019-04-20 03:43:15 +03:00
DarkPhoenix
48d795676f Do not pass modules to charge switching commands 2019-04-20 02:52:28 +03:00
DarkPhoenix
3fec9ba173 Do not choke on mass projected fit removal, and restore projected fit amounts 2019-04-20 02:30:57 +03:00
DarkPhoenix
264208b42e Make sure projected drones do not choke on mass removal 2019-04-20 02:12:03 +03:00
DarkPhoenix
62e8da6ff2 Make fighter pane more reliable and change few already checked panels as well 2019-04-20 01:51:55 +03:00
DarkPhoenix
e3f21cf700 Make local drone commands reliable 2019-04-20 01:15:38 +03:00
DarkPhoenix
fbc34224bc Make implant-related command calls more reliable 2019-04-20 00:43:13 +03:00
DarkPhoenix
93cd3b97fa Make command-related commands and their invokations more reliable 2019-04-20 00:35:14 +03:00
DarkPhoenix
fda83bcb49 Check cargo command reliability 2019-04-20 00:19:17 +03:00
DarkPhoenix
85b046a640 Finish reworking booster command invokation 2019-04-20 00:07:27 +03:00
DarkPhoenix
1177575f77 Make item remove context menu safer 2019-04-19 23:12:29 +03:00
DarkPhoenix
fc4a10efe3 Fix booster removal 2019-04-19 22:57:06 +03:00
DarkPhoenix
f541b4329e Add extra checks to variations context menu 2019-04-19 20:05:33 +03:00
DarkPhoenix
7ba1a4c78f Avoid unnecessary calculation 2019-04-19 19:54:21 +03:00
DarkPhoenix
0675ed9a73 Remove drone stacks when holding alt 2019-04-19 19:40:59 +03:00
DarkPhoenix
68a13a6bb8 Use alt key in more actions as alternative or replacement to ctrl 2019-04-19 16:59:30 +03:00
DarkPhoenix
61ef7c3487 Make market item list single-selectable 2019-04-19 15:51:04 +03:00
DarkPhoenix
a5bb16c460 Add drone stack via ctrl-doubleclick 2019-04-19 13:56:17 +03:00
DarkPhoenix
e694ced86c Add drone stack context menu now also follows drone bandwidth limits 2019-04-19 13:34:04 +03:00
DarkPhoenix
babc2d1e42 Add 'stack' word to remove drone menu
Because that's what it does
2019-04-19 13:06:00 +03:00
DarkPhoenix
8e717b19d9 All lines are already unicode in py3 2019-04-19 12:46:26 +03:00
DarkPhoenix
dbca0f9dea Limit drone stacks by ship bandwidth too 2019-04-19 12:29:49 +03:00
DarkPhoenix
7380244cd9 Bump sqlalchemy requirement 2019-04-19 10:48:25 +03:00
DarkPhoenix
5b7c777d6b Add 2 functions which calculate how many drones ship can release / store 2019-04-19 09:36:28 +03:00
DarkPhoenix
2fb9d3479f When mass-changing charges, take not only items with the same typeID but all items from the same market group 2019-04-19 01:02:44 +03:00
DarkPhoenix
21f095250d Make it possible to fill with mutated modules 2019-04-18 21:36:07 +03:00
DarkPhoenix
270376e09c Swap variations and mutaplasmid conversion menu items 2019-04-18 21:21:59 +03:00
DarkPhoenix
1ed71c6580 Fix mistype in readme and add myself to contacts 2019-04-18 18:04:12 +03:00
DarkPhoenix
febc98045c Remove some GTK-specific close buttons (as gnome now has close titlebar in dialogs for a while) and resize some dialogs 2019-04-18 16:58:28 +03:00
DarkPhoenix
72ecc62732 Even bigger on linux! 2019-04-18 16:45:14 +03:00
DarkPhoenix
9e1681d3f9 Do not show boosters in implant editor search output 2019-04-18 16:41:18 +03:00
DarkPhoenix
0471ffa924 Change size of implant editor to fit some quite long hardwiring names (like em-8 series) 2019-04-18 16:38:57 +03:00
DarkPhoenix
4269a00428 Show deadspace variations before officer variations 2019-04-18 15:57:19 +03:00
DarkPhoenix
440b2caa8d Ensure that in variations menu, items are sorted by name within the same meta group and meta level 2019-04-18 15:54:56 +03:00
DarkPhoenix
7131cdbac6 Do not set position of empty module to None when we're attempting to convert it to dummy 2019-04-18 13:00:32 +03:00
DarkPhoenix
b70c1a7c6c Remove some deprecated code and rework handled list function 2019-04-18 13:00:06 +03:00
DarkPhoenix
f9fd265280 Add option which controls ammo switcher behavior 2019-04-18 11:34:16 +03:00
DarkPhoenix
9261d29ac1 DPS graph now respects factor reload option for fighters 2019-04-18 11:04:00 +03:00
DarkPhoenix
df658d4950 Changed default graph distancee to 0-100 km 2019-04-18 08:27:57 +03:00
DarkPhoenix
69f68bf4ea Always show implant set menu item if you have sets, even if implant is selected 2019-04-18 00:44:43 +03:00
DarkPhoenix
614f3acc7e Do not show civilian ammo for small lasers 2019-04-17 23:59:50 +03:00
DarkPhoenix
ec77acda1d Remove workaround used for orbital ammo, as it was removed from the game by CCP 2019-04-17 23:57:40 +03:00
DarkPhoenix
603553517e Bump version to 2.9.1 2019-04-17 22:41:43 +03:00
DarkPhoenix
4c04fd93ae Make sure position is returned as None in case the module cannot be found on passed fit 2019-04-17 22:37:44 +03:00
DarkPhoenix
f4f92b0821 Copy spoolup settings of modules when copying fit 2019-04-17 22:26:41 +03:00
DarkPhoenix
3aede13136 Copy t3d modes when copying fit 2019-04-17 22:24:49 +03:00
DarkPhoenix
d171548936 Fix fit creation 2019-04-17 20:02:05 +03:00
DarkPhoenix
3d0db365af Make projected modules overheatable again 2019-04-17 18:19:52 +03:00
DarkPhoenix
2716214816 Do not set mouse cursor on GTK as it's applied to whole panel for some reason 2019-04-17 17:05:16 +03:00
DarkPhoenix
91a46a2dd4 Move some code around 2019-04-17 16:22:09 +03:00
DarkPhoenix
9fd70a4ba9 Avoid using modPosition where possible 2019-04-17 16:14:30 +03:00
DarkPhoenix
400bb10ed3 Ensure that owner fit is always visible from all fit items and their modified attribute map
Fixes some issues with some afflictions not shown/registered when fit has just been loaded
2019-04-17 15:35:15 +03:00
DarkPhoenix
53915eb956 Minor cleanup 2019-04-17 13:27:08 +03:00
DarkPhoenix
5457c31148 Use already existing method in module validator 2019-04-17 10:03:49 +03:00
DarkPhoenix
be9ac7cc9c Bump version 2019-04-16 21:35:22 +03:00
DarkPhoenix
3e2d21ea44 Update siege effect 2019-04-16 21:33:49 +03:00
DarkPhoenix
be374f4eb4 Update regular effects 2019-04-16 21:02:43 +03:00
DarkPhoenix
ab200ef74b Update database to 1492195 2019-04-16 20:40:53 +03:00
DarkPhoenix
3e1ef6e76d Fix item diff script after we've changed the effects 2019-04-16 20:30:55 +03:00
DarkPhoenix
9fd0f016aa Merge branch 'master' of github.com:pyfa-org/Pyfa 2019-04-16 20:17:04 +03:00
DarkPhoenix
ae188826ae Update YAML file with icons from latest SDE 2019-04-16 20:15:41 +03:00
Anton Vorobyov
0736085676 Merge pull request #1925 from kiwimind/1924-typo
Amend typo on attribute tab on module stats window
2019-04-16 19:43:25 +03:00
Anton Vorobyov
fa4c48c6c2 Merge branch 'master' into 1924-typo 2019-04-16 19:43:13 +03:00
DarkPhoenix
82adccadda Always show factor reload time menu item 2019-04-16 19:41:52 +03:00
DarkPhoenix
f100971fbe Set charge to all modules when cmd/control is pressed, instead of having separate menu item 2019-04-16 19:35:24 +03:00
DarkPhoenix
af2da86f6f Change order of context menus 2019-04-16 19:26:45 +03:00
DarkPhoenix
5af211778b Rename context menu files 2019-04-16 18:16:53 +03:00
Glenn Barr
4c739308f9 Amend typo on attribute tab on module stats window 2019-04-16 16:16:36 +01:00
DarkPhoenix
98e834fd30 Re-add merge functionality 2019-04-16 17:23:25 +03:00
DarkPhoenix
7ae8d1dc1a Allow splitting drone stacks again 2019-04-16 16:53:22 +03:00
DarkPhoenix
e57fce39fe Fix fetching of prices of on-character implants 2019-04-16 16:25:44 +03:00
DarkPhoenix
fd54d2c28c Make sure module position is None when we're asking if it can be fit, fixes crash with cloning siege module-alike modules 2019-04-16 15:17:27 +03:00
DarkPhoenix
b5c411349c Never show that prices are being fetched for abyssal items 2019-04-16 15:12:36 +03:00
DarkPhoenix
4d31c8bb38 Send proper modadd/moddel events when changing mod meta level 2019-04-16 15:01:02 +03:00
DarkPhoenix
fbf3cace10 Save secondary state changes and restore them on undo 2019-04-16 14:48:25 +03:00
DarkPhoenix
30b12b04e8 Rework module to cargo GUI command 2019-04-16 14:07:54 +03:00
DarkPhoenix
9301bb56fa More changes to cargo to module command, start reworking module to cargo as well 2019-04-16 12:20:54 +03:00
DarkPhoenix
bc4c35665e Change the way dragging from cargo to modules is handled 2019-04-16 02:10:02 +03:00
DarkPhoenix
64bba0cfdb Rework cargo to module command 2019-04-16 01:41:19 +03:00
DarkPhoenix
a270dc44d2 Show attribute even if it's zero, if its base value is non-zero 2019-04-15 23:37:08 +03:00
DarkPhoenix
46fa1eb0c6 Fix implant set addition 2019-04-15 23:12:51 +03:00
DarkPhoenix
c7ed6367f9 Rework clone/swap modules 2019-04-15 21:00:34 +03:00
DarkPhoenix
9523c6f349 Add meta swap support to projected items 2019-04-15 20:03:00 +03:00
DarkPhoenix
8b0f5f871c Make sure drones to not merge on meta change 2019-04-15 18:57:00 +03:00
DarkPhoenix
3fa5ac7858 As commands now commit/recalc even in case of failure (as they do not know about exact reason of failure and we're not sure if rollback was succeeded), do not run them for every item added via double-click 2019-04-15 18:44:26 +03:00
DarkPhoenix
4c0f88cdfa Rework meta swap command 2019-04-15 18:05:18 +03:00
DarkPhoenix
0fedb17586 Fix implant panel selection issue 2019-04-15 14:06:57 +03:00
DarkPhoenix
960bef2b96 Move booster and implant meta swap out of meta swap command 2019-04-15 13:28:15 +03:00
DarkPhoenix
82777d0b02 Move gui commands to their own package to avoid confusion in commands package 2019-04-15 12:15:19 +03:00
DarkPhoenix
a560597a85 Rework 3 more UI commands 2019-04-15 12:06:07 +03:00
DarkPhoenix
59fb7bcd1b Do not show context menu item "open in new tab" for currently selected fit 2019-04-15 11:48:14 +03:00
DarkPhoenix
801f51b89c Rework projected GUI commands 2019-04-15 11:34:52 +03:00
DarkPhoenix
0b49bf201f Rework local module GUI commands 2019-04-14 22:47:00 +03:00
DarkPhoenix
cc8575b275 Rework local fighters GUI commands 2019-04-14 21:42:58 +03:00
DarkPhoenix
51a11edc36 Rework local drone GUI commands 2019-04-14 20:51:39 +03:00
DarkPhoenix
4a6c1c3920 Rework command-related GUI commands 2019-04-14 16:34:01 +03:00
DarkPhoenix
1cb0081420 Rework cargo-related GUI commands and use command when deleting item from cargo with delete key 2019-04-14 16:13:01 +03:00
DarkPhoenix
d61d69188f Do not store fit service and main frame on every command 2019-04-14 15:44:48 +03:00
DarkPhoenix
a829efa7ff Rework implant UI commands 2019-04-14 15:36:30 +03:00
DarkPhoenix
e6599d1a40 Rework GUI booster-related commands 2019-04-14 14:50:15 +03:00
DarkPhoenix
c4c68a4e93 Rename calc command package, as we're going to put gui commands into packages too 2019-04-14 14:21:43 +03:00
DarkPhoenix
f80244d560 Add custom command processor for our internal needs and use it in booster add command 2019-04-14 14:14:14 +03:00
DarkPhoenix
a8684ef1b9 Merge several local/projected commands into universal commands 2019-04-14 13:30:14 +03:00
DarkPhoenix
5ac9604fab Categorize other calc commands 2019-04-14 12:37:24 +03:00
DarkPhoenix
700e249bf3 Do not crash when undoing fit rename when fit item has been disposed 2019-04-14 11:55:22 +03:00
DarkPhoenix
c2b742304e Move some of commands into packages 2019-04-14 11:45:58 +03:00
DarkPhoenix
c2b0257449 Rework toggle commands 2019-04-14 11:37:58 +03:00
DarkPhoenix
0d90c187f2 Rename set mode command 2019-04-14 04:07:31 +03:00
DarkPhoenix
88acec4241 Show spoolup option for projected modules, and set spoolup via command processor for all cases 2019-04-14 03:59:59 +03:00
DarkPhoenix
9a6255cb29 Rework setting mode and fix command which changes fit name
It was just broken before
2019-04-14 03:18:25 +03:00
DarkPhoenix
c721869dfa Change charge changing command 2019-04-14 02:06:41 +03:00
DarkPhoenix
1154435a89 Minor style fixes 2019-04-13 23:26:53 +03:00
DarkPhoenix
6d9e60648e Do not remove items when quantity is 0 in fit commands, it will be done in gui commands instead 2019-04-13 23:11:28 +03:00
DarkPhoenix
4522edb814 Rework module state changing 2019-04-13 23:08:49 +03:00
DarkPhoenix
8139d88a52 Allow changing amounts of projected fighters 2019-04-13 22:48:20 +03:00
DarkPhoenix
353b845102 Change how changing of projected drone amount is done via commands 2019-04-13 22:05:06 +03:00
DarkPhoenix
c3bffcad34 Rework figter amount changer 2019-04-13 21:19:01 +03:00
DarkPhoenix
9e6031edf2 Get rid of drone variation command 2019-04-13 20:53:26 +03:00
DarkPhoenix
bb47df2119 Rework "change drone/cargo amount" commands 2019-04-13 20:33:23 +03:00
DarkPhoenix
aab9b39fea Slightly change how projected fits are processed 2019-04-13 18:47:47 +03:00
DarkPhoenix
1ca4c73a3e Rework projected fighter fit commands 2019-04-13 18:26:05 +03:00
DarkPhoenix
7f870cf675 Rework projected drone fit commands 2019-04-13 16:25:49 +03:00
DarkPhoenix
5f8ccb9831 Change fix for invisible labels on linux 2019-04-13 14:26:05 +03:00
DarkPhoenix
c94acd9718 If during price optimizations different items are converted into one, merge them 2019-04-13 03:19:34 +03:00
DarkPhoenix
1733d6abb8 Always show system-wide effect beacon on top 2019-04-13 02:52:59 +03:00
DarkPhoenix
aa9f16d3ad Make sure our handled lists are not sorted
Because we rely on item positions within lists to identify modules for undo/redo stuff
2019-04-13 02:46:54 +03:00
DarkPhoenix
c997661f3a Rework implant fit commands 2019-04-13 01:56:17 +03:00
DarkPhoenix
6174bf8a0b Refactor non-projected fighter commands 2019-04-13 01:27:26 +03:00
DarkPhoenix
36c19fe6e8 Rework local drone commands 2019-04-12 23:46:41 +03:00
DarkPhoenix
e6c9db3eef Change command-related commands a little 2019-04-12 22:24:13 +03:00
DarkPhoenix
336af0f669 Rework cargo to use cargoinfo 2019-04-12 20:09:13 +03:00
DarkPhoenix
2800637a90 Rework cargo fit commands 2019-04-12 19:51:18 +03:00
DarkPhoenix
1fb9936893 Fix booster commands 2019-04-12 17:55:56 +03:00
DarkPhoenix
d738ba615e Finish overhauling module-related fit commands 2019-04-12 14:32:25 +03:00
DarkPhoenix
e5a694384d Raise errors on all insertions to handled lists which fail 2019-04-12 12:41:46 +03:00
DarkPhoenix
1d98f889fd Raise exceptions on failures to add module to module list 2019-04-12 10:47:14 +03:00
DarkPhoenix
ad03f907fa Overhaul module-related commands 2019-04-12 04:02:28 +03:00
DarkPhoenix
5579929f83 Undoing removal of drones now restores their proper state 2019-04-11 18:20:56 +03:00
DarkPhoenix
e90e9a5ca1 Make removal of fighters completely undoable 2019-04-11 16:31:44 +03:00
DarkPhoenix
2341650437 Store projected fit state on deletion for undo purposes 2019-04-11 14:03:44 +03:00
DarkPhoenix
f2c26af791 Fix toggling of abilities of projected fighters 2019-04-11 13:45:25 +03:00
DarkPhoenix
fc82e45d6c As wormhole effects are still modules and we now fully support reverting modules even in case they were overwritten, consider them as modules in commands too 2019-04-11 13:21:49 +03:00
DarkPhoenix
1b54f07ce0 Fix small but significant oversight 2019-04-11 12:36:41 +03:00
DarkPhoenix
938fa11d13 Removed projected modules now keep their state for undoing 2019-04-11 10:45:09 +03:00
DarkPhoenix
a08aa77afc Restore state of command fits on undo 2019-04-11 00:54:42 +03:00
DarkPhoenix
4cbeb34a3e Make toggling fighter abilities undoable 2019-04-11 00:05:28 +03:00
DarkPhoenix
d2fab0a10e Make removal of fighters undoable w/o information loss 2019-04-10 23:42:05 +03:00
DarkPhoenix
a8c3612248 Make removal of item from cargo via double-click undoable 2019-04-10 23:16:46 +03:00
DarkPhoenix
50e4e6fdcf Fix undoing of drone removal 2019-04-10 23:01:43 +03:00
DarkPhoenix
69ada4f3ad Make sure we do not store any sqlalchemy-managed objects in projected command 2019-04-10 21:50:04 +03:00
DarkPhoenix
3fc77d03b4 Restore state of removed implants on undo 2019-04-10 19:32:48 +03:00
DarkPhoenix
8072bb600c Make toggling side-effects undoable 2019-04-10 18:47:46 +03:00
DarkPhoenix
fda2c43a1d Restore booster state even when it was replaced by another booster 2019-04-10 18:18:26 +03:00
DarkPhoenix
7fc98037a6 Save booster state upon deletion for undo 2019-04-10 17:59:34 +03:00
DarkPhoenix
b51c8d8ecf Focus projected pane when something is projected via context menu 2019-04-10 16:11:23 +03:00
DarkPhoenix
dca2db5a6d Make projected states undo'able 2019-04-10 15:44:03 +03:00
DarkPhoenix
fbb192404f Add undo support to muta->normal conversion 2019-04-10 09:51:07 +03:00
DarkPhoenix
7e41d8e20c Make conversion to mutaplasmid undoable 2019-04-10 09:14:22 +03:00
DarkPhoenix
9460998015 Make removing mutated items undoable 2019-04-10 01:22:41 +03:00
DarkPhoenix
86056bf282 Save all the info about mutations into command cache 2019-04-09 18:07:49 +03:00
Anton Vorobyov
bacb374ea4 Merge pull request #1914 from pyfa-org/menu_overhaul
Main menu & stats menu overhaul
2019-04-09 16:34:23 +03:00
DarkPhoenix
8d07f11aa4 Update shortcuts in main menu 2019-04-09 16:20:09 +03:00
DarkPhoenix
b6a13b32de Rework alt-key shortcuts 2019-04-09 15:55:10 +03:00
DarkPhoenix
1f1a16f896 Merge branch 'master' into menu_overhaul 2019-04-09 12:18:35 +03:00
Anton Vorobyov
444d7af7ed Merge pull request #1916 from pyfa-org/issue1887
Stats menu indicators
2019-04-09 12:13:43 +03:00
DarkPhoenix
e45e0b9444 Merge branch 'master' into menu_overhaul 2019-04-08 19:12:59 +03:00
DarkPhoenix
33886aea1b Add exotic plasma to damage patterns 2019-04-08 19:12:30 +03:00
DarkPhoenix
1ddc2edd88 Move loading defaults to preference buttons 2019-04-08 17:43:11 +03:00
DarkPhoenix
01b16ec5f0 Rework main menu by rearranging it into different groups 2019-04-08 16:32:07 +03:00
DarkPhoenix
ba337599c2 Do not activate ADC and PANIC upon fitting 2019-04-08 13:33:21 +03:00
DarkPhoenix
211a83defd Show market jump menu item only for items residing in groups shown by pyfa 2019-04-08 13:01:35 +03:00
Anton Vorobyov
091a7d7ab8 Merge pull request #1904 from burnsypet/issue-1871
Logic to enable/disable redo/undo buttons
2019-04-08 10:21:52 +03:00
Anton Vorobyov
b3030bacf9 Merge pull request #1913 from pyfa-org/market_metagroups
Market meta category options
2019-04-08 10:21:02 +03:00
DarkPhoenix
feb164a48e Reset item list to empty during search cancel only if we still were searching, do nothing otherwise 2019-04-08 00:16:58 +03:00
DarkPhoenix
b3a556e70a Raise error instead of doing nothing for abstract methods 2019-04-07 23:59:54 +03:00
DarkPhoenix
9d322ca862 Drop selection when search is used 2019-04-07 23:50:39 +03:00
DarkPhoenix
9bde08b1ce Rework price stats panel context menu 2019-04-07 23:33:22 +03:00
DarkPhoenix
953a67e2c4 Update market preferences icon 2019-04-07 21:00:57 +03:00
DarkPhoenix
2435e08dc0 Implement option to select all meta buttons on market group selection 2019-04-07 19:42:44 +03:00
DarkPhoenix
31645d20a5 As recents are int, do == instead of is 2019-04-05 21:57:01 +03:00
DarkPhoenix
5fa96c5e52 Introduce new option group and move some options around 2019-04-05 21:00:42 +03:00
DarkPhoenix
278d946f77 Fix price context menu 2019-04-05 20:22:24 +03:00
DarkPhoenix
9b8aa67271 Remove some old commented out code 2019-04-05 20:18:50 +03:00
DarkPhoenix
af197e56cf Revert "Remove price cache clear menu item"
This reverts commit d59111eef5.
2019-04-05 20:17:25 +03:00
DarkPhoenix
1d5ba89f2e Revert "Remove price options menu item"
This reverts commit f784f45b4e.
2019-04-05 20:17:13 +03:00
DarkPhoenix
f45ad5ceab Implement logic which temporarily enables/disables meta groups for search 2019-04-03 18:16:10 +03:00
DarkPhoenix
5dae614fa1 Split search and recent modes 2019-04-03 17:49:08 +03:00
DarkPhoenix
c144c16a7f Enable only available buttons in case of empty item list 2019-04-03 16:45:24 +03:00
DarkPhoenix
10425cd5d9 Do not run "emtpy item list" logic on market groups with no items at all 2019-04-03 16:41:33 +03:00
DarkPhoenix
1d208a0cf7 Move search mode reset on market jump to market browser from item view 2019-04-03 16:30:51 +03:00
DarkPhoenix
db07f9d534 Implement logic to autoselect some metagroups if no items were filtered 2019-04-03 15:58:18 +03:00
DarkPhoenix
ca4eeed8d1 Reword some preference descriptions 2019-04-03 15:36:28 +03:00
DarkPhoenix
292d95f6f8 Implement market jump meta category logic 2019-04-03 15:34:26 +03:00
burnsypet
bd5ee32227 change logic 2019-04-02 19:29:03 +01:00
DarkPhoenix
0a705d1d7f Change price panel padding a little 2019-04-02 20:00:53 +03:00
DarkPhoenix
be1bd24a05 Change layout of options and window size a little 2019-04-02 19:22:37 +03:00
DarkPhoenix
a9fb3501ac Change price preferences layout 2019-04-01 17:14:50 +03:00
DarkPhoenix
b8a8f9c422 Add metagroup-related preferences 2019-04-01 16:52:46 +03:00
DarkPhoenix
6c29b3f38b ALways include price of ship and modules 2019-04-01 15:41:38 +03:00
DarkPhoenix
f784f45b4e Remove price options menu item 2019-04-01 15:39:15 +03:00
DarkPhoenix
d59111eef5 Remove price cache clear menu item 2019-04-01 15:36:58 +03:00
DarkPhoenix
99a2a38f9c Merge branch 'master' into market_metagroups 2019-04-01 14:53:31 +03:00
DarkPhoenix
768c1d37b1 Fix fit export 2019-03-31 16:08:48 +03:00
Anton Vorobyov
b21cf5673f Merge pull request #1907 from MaruMaruOO/patch-1
Additional fix for #1902
2019-03-31 11:53:51 +03:00
MaruMaruOO
a6b8381e25 Additional fix for #1902
Adds checks to make sure effects return correct `isImplemented` and `isType` values when they are called before handler generation.
2019-03-30 09:15:48 -04:00
DarkPhoenix
7d8768ca3e Add extra check on command level to ensure no errors 2019-03-30 10:52:54 +03:00
DarkPhoenix
96e0a02d5c Ensure we do not attempt to import mutated module when we have no fit open 2019-03-30 10:33:01 +03:00
DarkPhoenix
6a2bdade80 Fix attr tab original value column fetching module attributes for charges 2019-03-29 01:09:52 +03:00
Ryan Holmes
ea9eb3a8b7 Merge branch 'origin_master' into issue1887 2019-03-26 18:53:19 -04:00
Ryan Holmes
9c5fe56981 Fix right click on state not toggling overheat 2019-03-26 18:46:26 -04:00
Ryan Holmes
8fed78d596 Add a few conditionals in case menu is spawned without a fit being loaded 2019-03-26 09:44:43 -04:00
Ryan Holmes
3c5846a983 Add a menu icon to stat panels which have a context menu associated with them 2019-03-26 09:37:03 -04:00
Ryan Holmes
fa0892032f Develop method for context menu classes to signal that they should be displayed, but disabled. This will allow us to determine if a context menu exists for a certain context (stats panel, for example) without relying on old logic of not displaying them if fitting is not loaded. 2019-03-26 09:36:31 -04:00
Ryan Holmes
ed7dd12258 Merge remote-tracking branch 'origin/context_menus' into origin_master 2019-03-26 09:32:19 -04:00
DarkPhoenix
1a5fc31e25 Switch to safeloader
Seems like we do not use any custom data structures in yaml
2019-03-26 08:10:40 +03:00
DarkPhoenix
facb0b1023 Fix EFS export 2019-03-26 08:00:57 +03:00
DarkPhoenix
6dd737cdd1 Revert "Fix EFS export"
This reverts commit 5d012d6959.
2019-03-26 07:58:53 +03:00
DarkPhoenix
5d012d6959 Fix EFS export 2019-03-26 07:57:51 +03:00
burnsypet
b00dbbbf42 Logic to enable/disable redo/undo 2019-03-25 19:31:10 +00:00
DarkPhoenix
b269381818 Include cargo and drones by default in total ship price 2019-03-25 16:14:48 +03:00
DarkPhoenix
fa72345bcf Add ship and modules as separate entries to menu for feature parity 2019-03-25 16:14:14 +03:00
DarkPhoenix
3229652efa Remove detailed price popups and move price preferences to new preference tab 2019-03-25 15:57:42 +03:00
Indiction
c02cccf415 Adding Option to Change "total price" calculation Statview
Hint for module and total price provide detail informations
2019-03-25 14:58:03 +03:00
DarkPhoenix
54277ebbda Merge branch 'master' into market_metagroups 2019-03-25 13:21:20 +03:00
DarkPhoenix
78c6d4f005 Merge branch 'master' of github.com:pyfa-org/Pyfa 2019-03-25 10:07:38 +03:00
DarkPhoenix
37ad2faa8e Fix fit XML export 2019-03-25 10:07:23 +03:00
Ryan Holmes
26cba1c47a Fix a long standing bug due to misuse of context menu bindings in stats panels (see #651, and probably others) 2019-03-24 21:48:05 -04:00
Ryan Holmes
f95420d7bf Fix character editor context menu on Linux (#1895) 2019-03-24 20:59:40 -04:00
Ryan Holmes
9c79fb666b Convert context menu spawning of "affected by" listing 2019-03-24 19:24:46 -04:00
Ryan Holmes
a9a9fd1b1a Clean up another context menu 2019-03-24 19:08:31 -04:00
Ryan Holmes
253d3107a0 First pass at cleaning up context menu events (#1895) 2019-03-24 18:55:25 -04:00
Ryan Holmes
656a7fc784 Do not attempted to remove from projected panel if nothing of interest is selected (#1899) 2019-03-24 16:59:18 -04:00
Ryan Holmes
be579cfaeb bump version 2019-03-24 10:46:44 -04:00
Ryan Holmes
d40a7c2efa Fix for GTK - you can only enable a menu item after it's been added to menu 2019-03-24 08:17:49 -04:00
Ryan Holmes
8ba05409e0 nvm, it doesn't
Revert "Allow platforms that can use a checked image to use one, otherwise this should fallback to plain check (for GTK)"

This reverts commit 2b817c5d22.
2019-03-24 07:21:43 -04:00
Ryan Holmes
2b817c5d22 Allow platforms that can use a checked image to use one, otherwise this should fallback to plain check (for GTK) 2019-03-24 07:18:16 -04:00
Ryan Holmes
ba445e7d4f Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2019-03-23 22:08:57 -04:00
Ryan Holmes
b836ceb216 Use checked api instead of bitmap for factor reload (#1897) 2019-03-23 22:07:08 -04:00
DarkPhoenix
dfa0373497 Fix fighter abilities and do not rely on effects' removed attributes anymore 2019-03-23 18:42:35 +03:00
DarkPhoenix
caefd4fbbb Sort fighters by group and name 2019-03-23 18:02:18 +03:00
DarkPhoenix
b7528d11b2 Remove fighters from drone sorting 2019-03-23 17:53:17 +03:00
DarkPhoenix
07d333d3d5 Fix bug with booster side-effects which appeared due to sorting them by attribute slot 2019-03-23 17:46:26 +03:00
DarkPhoenix
48ac6cb2af Remove debugging prints or move them to pyfalog 2019-03-23 14:01:43 +03:00
Ryan Holmes
87a246204b Merge pull request #1893 from pyfa-org/effect_rollup
Effect rollup
2019-03-22 18:59:55 -04:00
Ryan Holmes
3ef056225b Merge branch 'effect_rollup_embedded' into effect_rollup 2019-03-22 18:59:20 -04:00
DarkPhoenix
4fa63aa2bd Add more jargon definition 2019-03-23 01:04:55 +03:00
DarkPhoenix
1edaf021da Fix booster effects 2019-03-22 19:11:28 +03:00
DarkPhoenix
37b44befac Add newline to the end of the file 2019-03-22 18:30:41 +03:00
DarkPhoenix
efd58a80a4 Change script to not write to effect file too much 2019-03-22 18:26:27 +03:00
DarkPhoenix
e43cce20a6 Fix remote hull rep effect 2019-03-22 18:04:38 +03:00
DarkPhoenix
0c7601b6d3 Change effectUsedBy script and run it over effects file 2019-03-22 18:01:14 +03:00
DarkPhoenix
4cfcfedc14 Change the way effects are stored even in source 2019-03-22 15:30:14 +03:00
DarkPhoenix
0024bc5514 Rename effect 2019-03-22 12:56:15 +03:00
Ryan Holmes
aacb95df7c more info in logging 2019-03-21 21:23:30 -04:00
Ryan Holmes
854d60792e Merge branch 'origin_master' into effect_rollup 2019-03-21 20:35:01 -04:00
Ryan Holmes
d922bf8913 fix bad resets 2019-03-21 20:30:37 -04:00
Ryan Holmes
703dc93dee Merge branch 'origin_master' into effect_rollup 2019-03-21 19:57:45 -04:00
Ryan Holmes
7fd545aad4 add rollup to macos build 2019-03-21 19:57:27 -04:00
Ryan Holmes
a69730085f Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2019-03-21 19:48:10 -04:00
Ryan Holmes
1603201166 Add "Can fit" grouping 2019-03-21 19:47:31 -04:00
DarkPhoenix
ead8238d7e Merge branch 'master' into market_metagroups 2019-03-22 02:02:17 +03:00
DarkPhoenix
8380f516e8 Add fallback for safety 2019-03-21 23:56:44 +03:00
DarkPhoenix
1b7c23b1d3 Sort boosters by slot 2019-03-21 23:55:25 +03:00
DarkPhoenix
295368635b Move some of preferences into new group 2019-03-21 14:00:49 +03:00
DarkPhoenix
6291fe1626 Fix HTML export (#1890) 2019-03-21 13:01:21 +03:00
DarkPhoenix
cdaf5cc168 No need to use .value for IntEnums 2019-03-21 12:55:39 +03:00
Ryan Holmes
5940625e24 Don't attempt to add cargo if there is not fitting loaded (#1888) 2019-03-20 21:51:58 -04:00
Ryan Holmes
549353dba1 Merge pull request #1885 from pyfa-org/issue1870
Implement fixes for #1870 - undo the Module.toDummy that happens when…
2019-03-20 18:01:30 -04:00
DarkPhoenix
4dc281b37e Move spoolup enum into costs 2019-03-20 13:07:44 +03:00
DarkPhoenix
0242cc845c Pep8 2019-03-20 13:05:38 +03:00
DarkPhoenix
e9c6d98db8 Fix fetching skills via ESI 2019-03-20 13:04:38 +03:00
DarkPhoenix
86459faf76 Fix issue with ship filter which didn't follow market overrides
It bugged out if you have some limited edition ships. E.g. if you have malice fit and no other AF fits, when you enable filter it hid limited edition group but showed AF group
2019-03-20 12:12:51 +03:00
Anton Vorobyov
e8af636831 Merge pull request #1857 from pyfa-org/price_optimize
Price optimize
2019-03-19 19:48:36 +03:00
Ryan Holmes
eea7220e3d remove incorrect files 2019-03-19 11:47:55 -04:00
Ryan Holmes
cc56611783 add comment 2019-03-19 11:36:30 -04:00
Ryan Holmes
0b511af48a Remove weird typo, whoops 2019-03-19 11:34:54 -04:00
Ryan Holmes
25bbf3dc03 Move export logic from mainframe to export dialog, and introducing ui blocking for price optimization 2019-03-19 11:34:10 -04:00
DarkPhoenix
72a602b5b0 Merge branch 'master' into price_optimize 2019-03-19 16:45:17 +03:00
Ryan Holmes
d107156341 Fix for sill name getting cutoff on gtk (#1886) 2019-03-19 09:15:09 -04:00
DarkPhoenix
8063647bba Merge branch 'master' into price_optimize 2019-03-19 08:42:06 +03:00
Ryan Holmes
573d8e068c Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2019-03-18 22:32:48 -04:00
Ryan Holmes
f6c6f9a0c9 Handle double click event on skill groups in character editor (#1886) 2019-03-18 22:30:54 -04:00
Ryan Holmes
d9c5c9cc0e Merge pull request #1836 from pyfa-org/spoolup
Spoolup
2019-03-18 20:32:18 -04:00
Ryan Holmes
bb7fb022ef fixes for windows and selected menu item 2019-03-18 20:25:28 -04:00
DarkPhoenix
52c9f4076b Change reset label 2019-03-18 20:08:06 +03:00
DarkPhoenix
894231b009 Change selection affix 2019-03-18 19:40:30 +03:00
DarkPhoenix
34fe530ac7 Add current value marker 2019-03-18 19:29:27 +03:00
DarkPhoenix
33b91a79ab Add option to disable this context menu 2019-03-18 18:21:53 +03:00
DarkPhoenix
51180a9375 Put spoolup menu above item stats 2019-03-18 17:54:00 +03:00
DarkPhoenix
6e44963d57 Implement spoolup selection via purely context menu 2019-03-18 17:52:37 +03:00
DarkPhoenix
8114765236 Merge branch 'master' into spoolup 2019-03-18 16:04:45 +03:00
DarkPhoenix
7ddd3a35d1 Merge branch 'master' into price_optimize 2019-03-18 14:34:35 +03:00
DarkPhoenix
52a68adb11 Put character editor window into scope of main window
This fixes various annoying things happening under linux: two separate applications shown when character editor open and various window focus bugs when opening stats of skills in character editor
2019-03-18 14:33:17 +03:00
DarkPhoenix
566e7fd046 Disable UI for duration of price optimization 2019-03-18 13:55:57 +03:00
Ryan Holmes
a74cdc59bd Implement fixes for #1870 - undo the Module.toDummy that happens when replacing a module, but the new module doesn't fit. And shuffle around the logic that dictates if a module / item fits onto a particular ship to allow us to ask a fit if a base item can fit based on low-level attributes that don't change 2019-03-17 22:03:39 -04:00
Ryan Holmes
3c98aad4ba Autosize the item attribute columns (#1878). 2019-03-17 19:35:19 -04:00
Ryan Holmes
0063840cfa Merge branch 'price_optimize' of https://github.com/pyfa-org/Pyfa into price_optimize 2019-03-17 13:18:50 -04:00
Ryan Holmes
96077ed115 Create blocking UI for fit price optimizations 2019-03-17 13:18:42 -04:00
Ryan Holmes
19f02ef914 Align skill column to the right (#1866) 2019-03-17 09:06:47 -04:00
Ryan Holmes
de9ce47bed Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2019-03-17 09:01:47 -04:00
Ryan Holmes
ccd3665115 Do not call Layout on the skill tree view. #1866 2019-03-17 09:01:40 -04:00
Ryan Holmes
1a992a90ad Add logging 2019-03-16 19:11:27 -04:00
Ryan Holmes
fff07078dc add eos config option for all effects 2019-03-16 14:36:35 -04:00
Ryan Holmes
81d040fba6 Convert all effect files to effect<ID>.py 2019-03-16 14:08:20 -04:00
DarkPhoenix
a35f04cd9a Merge branch 'master' into price_optimize 2019-03-16 13:55:35 +03:00
DarkPhoenix
c6c364c451 Change runtime of combat rig sec modifier 2019-03-16 13:55:13 +03:00
DarkPhoenix
8dcc3f2b51 Merge branch 'master' into price_optimize 2019-03-16 13:30:35 +03:00
DarkPhoenix
42383cef03 Add effect which increases rig strength if system is not hi-sec 2019-03-16 13:29:47 +03:00
DarkPhoenix
579081393b Merge branch 'master' into price_optimize 2019-03-16 01:47:18 +03:00
Ryan Holmes
2290281024 Merge pull request #1869 from IndictionEve/Code_Cleanup_Enums
Code cleanup enums #1862
2019-03-15 18:06:49 -04:00
DarkPhoenix
712c49d129 Merge branch 'master' into price_optimize 2019-03-15 10:14:30 +03:00
Ryan Holmes
ac16b19d93 Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2019-03-14 20:15:25 -04:00
Ryan Holmes
51b3cff4a9 Fix for #1877 2019-03-14 20:15:05 -04:00
DarkPhoenix
768b0b3a3a Merge branch 'master' into price_optimize 2019-03-15 01:41:28 +03:00
DarkPhoenix
538271d737 Add UI-specific highIsGood override for web 2019-03-15 01:40:15 +03:00
Ryan Holmes
61da8be732 Few import fixes and some bug fixes 2019-03-14 14:46:01 -04:00
Ryan Holmes
90e275e386 Remove unused import 2019-03-14 14:25:11 -04:00
Ryan Holmes
8e98af8517 Performance improvement when collecting counts for categories. Instead of making n calls for each category to sql, we get a grouped count by shipID, then process this in python, which is much faster. 2019-03-14 14:15:01 -04:00
Ryan Holmes
9a16c579eb fixing various imports to point to eos.const instead of old locations 2019-03-14 12:50:20 -04:00
Indiction
8b864692fb Moved non-EOS enum to new service/const.py. Renamed FittingAttrGroup
to GuiAttrGroup
2019-03-12 23:17:25 +01:00
DarkPhoenix
eaddc942a0 Merge branch 'master' into price_optimize 2019-03-12 14:25:51 +03:00
Ryan Holmes
82c5ae1fe9 some clean up 2019-03-09 20:43:40 -05:00
Ryan Holmes
5c2df66335 #1867 Fix for the image list crash on linux 2019-03-09 20:38:58 -05:00
Indiction
afa8c3c53a Replaced eos.enum by enum. Removed unused enum import.
Found another Enum to move.
2019-03-09 18:59:43 +01:00
Indiction
bd33efa875 Changed FittingSlot to IntEnum 2019-03-09 18:45:28 +01:00
DarkPhoenix
f53c8e9efc Switch "total" and "character" around
So that total is bottom-right item
2019-03-09 17:40:13 +03:00
DarkPhoenix
d2b306d030 Fix export window sizing bug 2019-03-09 17:31:02 +03:00
Indiction
f58c8ec4f9 Added unique to rest except Fittingslot 2019-03-09 15:18:10 +01:00
Ryan Holmes
dd9390384e remove effect file adding in the pyfa.spec file (for dev only) 2019-03-09 09:05:39 -05:00
DarkPhoenix
22fc6cb13c Integrate price optimization with undo/redo 2019-03-09 15:44:50 +03:00
Indiction
aaec82e493 Added unique to current IntEnums
Renamed PortMultiBuyItemType to PortMultiBuyOptions
2019-03-09 12:30:05 +01:00
Indiction
6333a0c74b Adding descriptions to enums.
Renaming Enums into more useful names.
2019-03-07 22:30:51 +01:00
DarkPhoenix
41711706c0 Merge branch 'master' into price_optimize 2019-03-07 13:13:17 +03:00
Indiction
e6309bb8bb Copy Enums to const.py
Switching to IntEnum where necessary.
2019-03-07 00:14:48 +01:00
IndictionEve
909c9f7b71 Merge pull request #2 from pyfa-org/master
Update
2019-03-06 23:29:50 +01:00
DarkPhoenix
becf7c3ff2 Commit stub of price optimization command 2019-03-06 23:59:11 +03:00
DarkPhoenix
257df58c3a Get rid of idea of "better" replacements
It turned out to be maintenance hell and it's just hard to find all the dual-action attributes (like crash vs GD sig attr, AB cycle time modification vs rep cycle time modification etc)
2019-03-06 00:43:19 +03:00
Ryan Holmes
23d945c7f2 disable effect imports to ensure proper handling when building 2019-03-04 20:45:44 -05:00
Ryan Holmes
e3971c995e Fix windows build to use effect rollups 2019-03-04 19:53:19 -05:00
DarkPhoenix
8641c41da6 Add bunch of overrides to make sure hardwirings are upgraded as expected 2019-03-04 18:35:06 +03:00
Ryan Holmes
b7f53e8402 Ignore the all effects file to avoid accidentally commiting it 2019-03-04 10:09:52 -05:00
Ryan Holmes
1ef517d87e Preliminary support for a "all effects" module to help with import times hopefully 2019-03-04 10:09:05 -05:00
DarkPhoenix
c3e03f2136 Fix em- implant series replacement 2019-03-03 23:39:55 +03:00
DarkPhoenix
4d31c2a2a3 Change the way we generate replacements and update database 2019-03-03 21:06:12 +03:00
DarkPhoenix
b03860e765 Add implant, booster and cargo support to fit price optimization 2019-03-03 19:57:59 +03:00
Ryan Holmes
2e49aa1419 #1863 dont attempt to remove character implants 2019-03-03 08:26:39 -05:00
DarkPhoenix
647c093451 Add drones and fighters to fit optimization 2019-03-03 10:00:23 +03:00
DarkPhoenix
d96146034a Fix replacing of modules 2019-03-03 09:46:27 +03:00
Ryan Holmes
b944f27fc8 tweak 2019-03-02 22:14:39 -05:00
Ryan Holmes
df80449b0b Simplify the spoolup dialog 2019-03-02 22:11:55 -05:00
Ryan Holmes
986ae16eaf Allow global spoolup value to be editable via preferences 2019-03-02 21:31:13 -05:00
Ryan Holmes
f81cc4ad93 Merge remote-tracking branch 'origin/master' into spoolup 2019-03-02 20:57:29 -05:00
blitzmann
c9b0322c9f Merge branch 'tonycoz-colour-item-list' 2019-03-02 17:35:37 -05:00
blitzmann
114d72e23f Fix bug for when updating preferences before loading anything into ItemView 2019-03-02 17:35:30 -05:00
blitzmann
f8e6474b39 Some slight tweaks to work done by @tonycoz for #1839 2019-03-02 17:21:46 -05:00
Ryan Holmes
8d0c2c18d2 Merge branch 'master' into colour-item-list 2019-03-02 15:27:54 -05:00
Ryan Holmes
dddec72f13 Merge pull request #1813 from pyfa-org/attrGroup
Attribute grouping
2019-03-02 15:25:11 -05:00
Ryan Holmes
9cfbaf3450 Merge branch 'req_updates' into origin_master 2019-03-02 14:53:48 -05:00
Ryan Holmes
9fc16cb287 more updates 2019-03-02 14:31:16 -05:00
Ryan Holmes
78836add28 update requirements 2019-03-02 14:21:13 -05:00
Ryan Holmes
f919e23360 There's some times when self.httpd doesn't exist for some reason. Too lazy to find out the cause 2019-03-02 11:43:21 -05:00
Ryan Holmes
ec3822a6da Develop dialog and keep SSO server running as long as dialog remains active (#1859) 2019-03-02 11:00:28 -05:00
Tony Cook
9bdb4ea967 move the item slot colours to config and use it from there 2019-03-01 19:52:02 +11:00
Tony Cook
af17a4f1c9 make slot a property for item and use that for the item list bg 2019-03-01 19:51:30 +11:00
Tony Cook
2ea3394845 make the item list colour per slot if colorFitBySlot set
attempts to resolve #1839
2019-03-01 19:51:30 +11:00
Ryan Holmes
65dff8dcf7 Scroll the window back to 0, 0 when children are removed (#1843) 2019-02-28 21:41:59 -05:00
Ryan Holmes
bfaad631bc Fix crash in linux for attribute groupings 2019-02-28 20:24:07 -05:00
blitzmann
96a5bf7ea9 update eve.db 2019-02-28 18:52:41 -05:00
blitzmann
e665161dc8 Merge remote-tracking branch 'origin/master' into attrGroup
# Conflicts:
#	eve.db
2019-02-28 18:51:52 -05:00
DarkPhoenix
18e03e46c3 Wire functionality to menu item
Still doesn't work
2019-02-28 21:44:04 +03:00
DarkPhoenix
d9941945e0 Add method which supposedly will update fit to optimize its price 2019-02-28 00:12:53 +03:00
Ryan Holmes
75d5b48df8 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2019-02-27 11:28:46 -05:00
Ryan Holmes
8c8e7825e9 fix typo 2019-02-27 11:28:38 -05:00
DarkPhoenix
af3a7553ed Merge branch 'master' into price_optimize 2019-02-25 09:27:25 +03:00
DarkPhoenix
f68ee81634 Change stats window size for gtk 2019-02-25 09:26:35 +03:00
DarkPhoenix
4385b3651f Attempt to get rid of codacy warnings 2019-02-25 09:04:59 +03:00
DarkPhoenix
ed24e7a2a3 Add validity override of 2 hours for prices 2019-02-25 08:43:27 +03:00
DarkPhoenix
b9e68504ed Add support for multibuy price optimization option 2019-02-25 08:35:35 +03:00
blitzmann
1fcd95d36f Merge branch 'WatchMeCalculate-issue-1845' 2019-02-24 17:59:12 -05:00
blitzmann
4dc70dad3b Apply CTRL+Backspace fix for fitting Notes text box 2019-02-24 17:58:55 -05:00
blitzmann
e0a54c14e2 Merge branch 'issue-1845' of git://github.com/WatchMeCalculate/Pyfa into WatchMeCalculate-issue-1845 2019-02-24 17:49:42 -05:00
DarkPhoenix
839d025885 Add price optimization option to multibuy
Doesn't work yet
2019-02-24 12:50:34 +03:00
DarkPhoenix
8d183a859d Add method to fetch price optimizations 2019-02-24 12:22:29 +03:00
IndictionEve
09bc1eb9d2 Merge pull request #1 from pyfa-org/master
Update Commit
2019-02-24 08:24:57 +01:00
DarkPhoenix
c6f2072bb9 Add method which prepares items for fetching 2019-02-24 03:36:56 +03:00
DarkPhoenix
7d42f8dba6 Update db and how we generate list of replacements 2019-02-23 15:20:56 +03:00
DarkPhoenix
8b86f14ee2 Ignore more attributes when finding similar items 2019-02-23 14:49:07 +03:00
DarkPhoenix
ef7195a7cc Change database generation script to rely on type effects and parent type for grouping 2019-02-22 19:04:37 +03:00
DarkPhoenix
43e88fa78d Merge branch 'master' into price_optimize 2019-02-22 11:25:33 +03:00
DarkPhoenix
5d0900337f Change how we split lines during fit import, also re-use split lines where needed to avoid format-specific linebreak bugs 2019-02-22 11:24:43 +03:00
Jonah Jolley
a5a9dc0877 Adding support for ctrl+backspace in searchbars 2019-02-21 18:18:01 -07:00
DarkPhoenix
e36b9661f0 Do not generate empty fetches when everything has been requested 2019-02-21 16:50:10 +03:00
DarkPhoenix
c66f80d6e5 Allocate passed timeout across multiple fetches to avoid exceeding it, with focus on primary data source 2019-02-21 16:05:35 +03:00
Anton Vorobyov
0dfe6707a7 Merge pull request #1856 from WatchMeCalculate/issue-1835
Mac Osx clipboard can store items with \r, ensure we split on newline or carriage return
2019-02-21 14:23:44 +03:00
DarkPhoenix
f9eef5ee07 Fetch item price globally if failed to get sensible data for specified system 2019-02-21 13:05:43 +03:00
DarkPhoenix
dc3b5c916b Merge branch 'master' into price_optimize 2019-02-21 12:32:35 +03:00
Anton Vorobyov
0471cda64e Merge pull request #1847 from pyfa-org/fit_export_options
Multibuy export options
2019-02-21 12:28:20 +03:00
DarkPhoenix
b2bcdf0a46 Replace old export option format with new one when needed 2019-02-21 12:16:36 +03:00
DarkPhoenix
cf9d2082ef Fix codacy issues 2019-02-21 10:44:37 +03:00
DarkPhoenix
032b1589ad Merge branch 'master' into fit_export_options 2019-02-21 10:39:50 +03:00
Jonah Jolley
410c87ed89 Mac Osx clipboard can store items with \r, ensure we split on newline or carriage return 2019-02-20 21:08:58 -07:00
DarkPhoenix
b377c1c25f Merge branch 'master' into price_optimize 2019-02-21 02:02:21 +03:00
DarkPhoenix
fbce3536da Fix battery cap resistance sliders 2019-02-21 01:54:41 +03:00
DarkPhoenix
7ac24ff7ee Allow to customize fetch timeout when requesting prices 2019-02-19 20:40:03 +03:00
DarkPhoenix
7aba11142f Enable price column in fighters tab 2019-02-19 19:08:09 +03:00
DarkPhoenix
704042b4b7 Change the way we work with prices 2019-02-19 19:02:50 +03:00
DarkPhoenix
21dd9bb6e4 Merge branch 'master' into price_optimize 2019-02-19 13:47:49 +03:00
DarkPhoenix
509849fbf5 Fix EHE issue 2019-02-19 13:12:18 +03:00
DarkPhoenix
55f2ebf4a4 Merge branch 'master' into fit_export_options 2019-02-18 13:10:00 +03:00
Ryan Holmes
e96a836ad0 fix travis file 2019-02-17 19:08:33 -05:00
Ryan Holmes
2a224e8882 Merge pull request #1853 from blitzmann/CIUpdates
CI updates
2019-02-17 16:19:16 -05:00
Ryan Holmes
0a00d86c6d Merge branch 'master' into CIUpdates 2019-02-17 16:18:01 -05:00
Ryan Holmes
c3d1eaef2a Merge pull request #1851 from MaruMaruOO/master
Adds Mutadaptive Remote Armor Repairers to EFS exports.
2019-02-17 16:16:17 -05:00
Ryan Holmes
93f23b549b Merge branch 'master' into master 2019-02-17 16:16:09 -05:00
Ryan Holmes
b3d0554df6 Merge remote-tracking branch 'origin/master' into blitzmann_CIUpdates
# Conflicts:
#	dist_assets/mac/pyfa.spec
2019-02-17 15:52:57 -05:00
blitzmann
dba54e3ec8 test 2019-02-17 15:27:08 -05:00
DarkPhoenix
2b16a8ed76 Add some comments to variations fetcher 2019-02-17 14:29:44 +03:00
DarkPhoenix
4cbafb5559 Update database again and add method which finds replacements for passed item 2019-02-17 13:36:52 +03:00
DarkPhoenix
d02623e365 Fix oversight 2019-02-17 12:45:40 +03:00
DarkPhoenix
c8eef489da Exclude more attributes from consideration, and do some overrides to not have incorrect optimizations 2019-02-17 12:26:44 +03:00
DarkPhoenix
d507927ba3 Do not consider items the same if they have no attributes defined 2019-02-17 01:53:56 +03:00
DarkPhoenix
09421db28e Update effects after database update 2019-02-17 01:05:09 +03:00
DarkPhoenix
941edd6715 Update database 2019-02-16 22:39:08 +03:00
DarkPhoenix
fdac5309ac Modify db generation script to find same/better replacements for all items 2019-02-16 22:26:42 +03:00
DarkPhoenix
449c7d6aa2 Add two more columns to gamedata to hold info about better items 2019-02-16 14:06:23 +03:00
MaruMaruOO
b60b190b81 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2019-02-14 01:24:07 -05:00
MaruMaruOO
3cb8313669 Add Mutadaptive Remote Armor Repairers to EFS export. 2019-02-14 01:23:59 -05:00
DarkPhoenix
ba29376464 Merge branch 'master' into fit_export_options 2019-02-13 18:52:10 +03:00
DarkPhoenix
436113dedc Set price object status on successful fetches 2019-02-13 18:51:44 +03:00
DarkPhoenix
9dc0ec67d4 Merge branch 'master' into fit_export_options 2019-02-13 18:19:03 +03:00
DarkPhoenix
194ebb96a7 Add ruler between base item info and mutation stats 2019-02-13 18:18:38 +03:00
DarkPhoenix
fc04a32913 Add info about base item to mutations tab 2019-02-13 18:14:46 +03:00
DarkPhoenix
deee6fd6ab Make GTK window even bigger by default, and hide description type if there's no description for the item 2019-02-13 17:31:45 +03:00
DarkPhoenix
a4fae73a1e Make "fill with module" context menu entry disablable via preferences 2019-02-13 17:12:21 +03:00
DarkPhoenix
7bad3bc376 Show 'market group' context menu for mutated items as well 2019-02-13 17:07:06 +03:00
DarkPhoenix
7dd1c63898 Return 0 price even if price has not been fetched 2019-02-13 16:19:01 +03:00
DarkPhoenix
c8eea45454 Merge branch 'master' into fit_export_options 2019-02-13 15:57:06 +03:00
DarkPhoenix
3ed949395e Flush prices rather than commit, it takes much less time and still satisfies our needs 2019-02-13 15:56:15 +03:00
DarkPhoenix
6ebc90b8aa Remove flush as it's part of commit according to sqlalchemy docs 2019-02-13 15:30:08 +03:00
DarkPhoenix
7769179104 Merge branch 'master' into fit_export_options 2019-02-13 14:03:56 +03:00
DarkPhoenix
cbd1a34c68 Round cpu/pg like EVE does
To work around some fits where pyfa shows that items do not fit when they actually do
2019-02-13 13:14:18 +03:00
DarkPhoenix
e0c389a643 Do not show (!) for fetches which will always fail (e.g. abyssal mods). Also restore commit as it was a threat synchornization mechanism 2019-02-13 13:07:54 +03:00
DarkPhoenix
6a27ae7525 Merge branch 'master' into fit_export_options 2019-02-13 00:56:05 +03:00
DarkPhoenix
591dcffa43 Do not try to fetch price for items which contain no market group according to CCP data 2019-02-13 00:54:56 +03:00
DarkPhoenix
b0317ea560 Fix mistype 2019-02-12 19:07:59 +03:00
DarkPhoenix
9eea99f600 Do not export if user presses cancel 2019-02-12 13:28:18 +03:00
DarkPhoenix
d55d6c3e5e Rework the way options are stored 2019-02-12 13:14:31 +03:00
DarkPhoenix
eeef2104c2 Move option of exporting charges from general preferences to EFT and multibuy exports 2019-02-12 13:03:15 +03:00
DarkPhoenix
2098ff6da1 Merge branch 'master' into fit_export_options 2019-02-12 12:50:38 +03:00
DarkPhoenix
fb5d62304c Allow sorting by price in variations tab 2019-02-12 12:50:02 +03:00
DarkPhoenix
8baac1e207 Introduce secondary sort parameter for compare tab 2019-02-12 12:35:53 +03:00
DarkPhoenix
4324b846e0 Disable XML and DNA export 2019-02-12 12:18:42 +03:00
DarkPhoenix
143606d8f8 Merge branch 'master' into fit_export_options 2019-02-12 12:16:58 +03:00
DarkPhoenix
dfc0a896c4 Do not commit price right away when creating the object 2019-02-12 12:10:17 +03:00
DarkPhoenix
980c84b911 Add support for default export option values 2019-02-12 10:37:51 +03:00
DarkPhoenix
41b6000f6e Rename ranges to something more sensible 2019-02-12 10:17:19 +03:00
DarkPhoenix
28fc845250 Merge branch 'master' into fit_export_options 2019-02-12 09:25:24 +03:00
DarkPhoenix
193faaafe7 Make sure that gauge bar neutral value is always reachable, even if it does not correspond to base value 2019-02-12 09:24:02 +03:00
DarkPhoenix
ce9db79552 Do not redefine property 2019-02-12 08:39:03 +03:00
DarkPhoenix
672fd77bec Get market instance only once 2019-02-11 16:18:43 +03:00
DarkPhoenix
89656b04ad Do not export mutated items for multibuy 2019-02-11 14:50:44 +03:00
DarkPhoenix
0997a54324 Add option to export disable cargo export for multibuy 2019-02-11 14:44:38 +03:00
DarkPhoenix
59569d46ae Add implants & boosters option to multibuy export 2019-02-11 14:11:03 +03:00
DarkPhoenix
3bc1ce195c Change the way we store options 2019-02-11 14:04:28 +03:00
DarkPhoenix
98e6781077 Make sure order of export formats is also the same 2019-02-11 13:13:00 +03:00
DarkPhoenix
f2deb0e6c7 Make sure order of options doesn't depend on order of options in memory (which can be random as it's dict) 2019-02-11 12:57:27 +03:00
DarkPhoenix
a5efea56ab Change description of export options a little 2019-02-11 12:28:36 +03:00
Ryan Holmes
1fe35f5aab Merge pull request #1844 from MaruMaruOO/master
Merge missing changes from #1755, efs version bump and minor linting.
2019-02-07 21:36:47 -05:00
Ryan Holmes
07b8f5b914 update appveyor and travis configs 2019-02-02 19:06:36 -05:00
MaruMaruOO
1f50e7cb51 Merge missing changes from #1755, efs version bump and minor linting. 2019-01-29 02:17:55 -05:00
blitzmann
572d337935 Newer versions of numpy apparently aren't supported very well with pyinstaller yet. Force inclusion of module, otherwise automated build will cause graph support to fail 2019-01-20 23:40:33 -05:00
blitzmann
01f8c65304 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2019-01-10 23:37:08 -05:00
blitzmann
a1ee8b49ef Merge branch 'petosorus-fill-with-module' 2019-01-10 23:36:40 -05:00
blitzmann
0745ed50e0 * Merge branch 'fill-with-module' of git://github.com/petosorus/Pyfa into petosorus-fill-with-module
* Remove settings check

# Conflicts:
#	gui/fitCommands/__init__.py
2019-01-10 23:36:05 -05:00
Ryan Holmes
76e66a99ff Merge pull request #1821 from burnsypet/issue-1816
Remove extra (α) from clone name when renaming
2019-01-10 23:28:24 -05:00
blitzmann
3259cc3e50 Rename Scale to percentage 2019-01-10 23:24:34 -05:00
blitzmann
5f237e578b use spoolup dialog with remote reps 2019-01-10 23:16:04 -05:00
blitzmann
c645c089dd More work on the spoolup gui, including support for commands and some other nicities (recalc fit when changing, load the input with previous) 2019-01-10 23:13:22 -05:00
blitzmann
436bee1e85 Start working on a gui to set spoolup options 2019-01-05 22:26:17 -05:00
blitzmann
dc5bd7f627 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2019-01-01 20:56:46 -05:00
blitzmann
d6825fb8b7 #1832 Add stacking penalty to Inertial Stabilizers 2019-01-01 20:56:05 -05:00
Ryan Holmes
b9ec89e9c8 Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2018-12-24 10:40:22 -05:00
Ryan Holmes
cc63e62154 Fix for #1831 - use css style string. This prevents crashing on systems that bring back a color with opacity as the system default 2018-12-24 10:39:56 -05:00
blitzmann
cc134c36e2 bump version 2018-12-19 21:07:58 -05:00
DarkPhoenix
17313bd67b Assume RRs work at 100% efficiency, even if they are projected from self 2018-12-19 23:46:30 +03:00
Ryan Holmes
b831dfbc7f Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2018-12-19 10:17:59 -05:00
Ryan Holmes
b739b791d4 fix esi endpoint 2018-12-19 10:17:50 -05:00
DarkPhoenix
0480673460 Fix neurotoxin implant not affecting armor amount affected by x-instinct 2018-12-17 12:55:57 +03:00
DarkPhoenix
7ffced2151 Change layout of bosonic damage misc description 2018-12-17 00:10:06 +03:00
DarkPhoenix
3297ef8975 Return size conversion
I'm dumb and thought it's heavy->heavy and large->large
2018-12-15 22:03:13 +03:00
DarkPhoenix
acba971e70 Aggregate and sort items during multibuy export 2018-12-15 12:56:27 +03:00
DarkPhoenix
dd8169adb4 Add couple additional definitions 2018-12-15 11:12:29 +03:00
DarkPhoenix
857a625ae2 Remove some "replacements" 2018-12-15 11:02:17 +03:00
Ryan Holmes
ac3a7386aa Bump version 2018-12-14 19:06:04 -05:00
DarkPhoenix
3eed5bfc64 Add more racial definitions 2018-12-15 00:21:25 +03:00
DarkPhoenix
d0992ed56f Change how excessive mods are stored on import 2018-12-14 18:40:32 +03:00
DarkPhoenix
af37ec21e9 Fix EFT import bug another way 2018-12-14 18:32:45 +03:00
DarkPhoenix
51ef3ec758 Revert "Make sure that modules are put onto their proper place during EFT import, not to the end"
This reverts commit fe063cf19a.
2018-12-14 18:14:50 +03:00
DarkPhoenix
f66da9870e Revert "Fix issue with replace method"
This reverts commit ca46984a6b.
2018-12-14 18:14:41 +03:00
DarkPhoenix
ca46984a6b Fix issue with replace method 2018-12-14 17:10:27 +03:00
DarkPhoenix
fe063cf19a Make sure that modules are put onto their proper place during EFT import, not to the end 2018-12-14 16:56:51 +03:00
DarkPhoenix
3bdb12cc5d Make sure reps are running late (so that they all get modified before actually applying effect) 2018-12-14 13:49:17 +03:00
DarkPhoenix
6819dc87a6 Fix PDS jargon entries 2018-12-14 12:50:37 +03:00
DarkPhoenix
2ba6c4bc08 Merge branch 'master' of github.com:pyfa-org/Pyfa 2018-12-14 08:15:42 +03:00
Ryan Holmes
bb548b796a fix appveyor 2018-12-14 05:03:09 -05:00
DarkPhoenix
6f8fca7525 Implement spoolup parameters fetcher and rely on it for misc column stats 2018-12-14 08:15:05 +03:00
burnsypet
ff8ea205db Remove extra (α) from clone name when renaming 2018-12-13 20:34:00 +00:00
DarkPhoenix
453536cf14 Show more decimal places than 3 when it's necessary 2018-12-13 20:00:36 +03:00
DarkPhoenix
080d94e299 Rework sliders once again 2018-12-13 19:37:50 +03:00
DarkPhoenix
ae23fba6b7 Introduce function which calculates step amount depending on context 2018-12-13 19:28:54 +03:00
DarkPhoenix
b8f53f9bb3 Rework how mutation tab works with max/min and good/bad values to fix neut resistance bug 2018-12-13 18:04:54 +03:00
DarkPhoenix
e143a79b06 Remove temporary script
I used it to find mutadaptive RR icon
2018-12-13 16:10:11 +03:00
DarkPhoenix
fa7c93d99a Update icons/renders 2018-12-13 16:09:41 +03:00
DarkPhoenix
f48ce43c0c Replace asterisk with superscript s 2018-12-13 14:54:23 +03:00
DarkPhoenix
ba12d97c1d Support spoolup options in EFS export as well 2018-12-13 14:49:06 +03:00
DarkPhoenix
03e8b8522b Mark spoolup values with asterisk 2018-12-13 14:11:03 +03:00
DarkPhoenix
7a8baac5bd Rework way we pass spoolup options, so that it's possible to prefer passed values or on-module values as needed 2018-12-13 13:54:53 +03:00
DarkPhoenix
58ceff6144 Show tooltip with spoolup local tank when needed 2018-12-13 10:46:35 +03:00
DarkPhoenix
7bc82e229f Make spoolup tooltip format consistent 2018-12-13 09:36:33 +03:00
DarkPhoenix
74ebd3415c Calculate sustainable tank adjustments for prespool/fullspool values too 2018-12-13 09:17:59 +03:00
DarkPhoenix
de752cbe0a Add prespool/fullspool support to non-sustainable tank calculation 2018-12-12 15:48:30 +03:00
DarkPhoenix
25c5abffee Introduce new attributes which store prespool and postspool armor reps, and modify effects affecting it 2018-12-12 15:10:38 +03:00
DarkPhoenix
ec1a2035cd Update effect comments 2018-12-12 13:04:51 +03:00
DarkPhoenix
b3fbc080db Update database 2018-12-12 12:59:31 +03:00
DarkPhoenix
f289a72121 Show full spoolup time in tooltip (column can show another value now, when spoolup options are implemented) 2018-12-12 12:41:35 +03:00
DarkPhoenix
e6b2d15468 Fetch spoolup time for gun's misc value from spoolup calculator 2018-12-12 12:36:31 +03:00
DarkPhoenix
e76dc2e92b Add spoolup time calculation to mutadaptive RRs 2018-12-12 10:46:33 +03:00
DarkPhoenix
10572c7dbd Expose spoolup time to caller 2018-12-12 10:31:20 +03:00
DarkPhoenix
e83e081548 Calculate amount of cycles for spoolup 2018-12-12 10:20:17 +03:00
DarkPhoenix
85a834d1a3 Add space in "spool up" 2018-12-12 10:05:53 +03:00
DarkPhoenix
46c95d722c Use max spoolup for projected RRs 2018-12-12 09:28:48 +03:00
DarkPhoenix
70831bb5e4 Show spoolup for RR output stats 2018-12-12 09:20:48 +03:00
DarkPhoenix
12227cd016 Refactor how RR panel labels are processed a little 2018-12-12 08:53:25 +03:00
DarkPhoenix
2749426a7c Change tooltips 2018-12-12 08:43:54 +03:00
DarkPhoenix
0a23c3cabb Add spoolup support to misc column tooltips 2018-12-12 00:32:50 +03:00
DarkPhoenix
5a0670838d Expose spooled up value to stats panels 2018-12-11 23:15:46 +03:00
DarkPhoenix
2dfdead656 Override with full spoolup by default until controls are implemented 2018-12-11 20:49:14 +03:00
DarkPhoenix
5fdae11bb1 Expose damage output composition to UI 2018-12-11 19:13:31 +03:00
DarkPhoenix
c991562662 Show DPS tooltips only when prespool and postspool damage output is different 2018-12-11 18:53:06 +03:00
DarkPhoenix
b4eb6e7fc3 Set spoolup preferences from UI side 2018-12-11 18:39:37 +03:00
DarkPhoenix
d4e8ac761e Allow to control spoolup via fit object 2018-12-11 18:21:08 +03:00
DarkPhoenix
30ff2e0dae Add jargon entry for ex-energy transfers 2018-12-11 17:42:54 +03:00
DarkPhoenix
4f0f8fcdfc Rework internal interfaces to be able to specify spoolup in more flexible manner and carry output dps types 2018-12-11 17:39:03 +03:00
DarkPhoenix
a1c3d26b73 Do not crash when creating tooltip with fit as None 2018-12-11 08:24:03 +03:00
DarkPhoenix
aa3043b0ca Change mutadapative RR to use spoolup calculator 2018-12-10 15:08:52 +03:00
DarkPhoenix
2d9dcc624c Make sure spoolup function works with non-spoolup arguments passed to it 2018-12-10 14:53:46 +03:00
DarkPhoenix
aa80a4812d Add time-based spoolup calculation 2018-12-10 14:42:22 +03:00
DarkPhoenix
5b03d01d32 Fix rounding 2018-12-10 13:59:04 +03:00
DarkPhoenix
3228c7f74d Add separate spoolup calculator 2018-12-10 13:50:22 +03:00
DarkPhoenix
5b60abf4b6 Expose new fields to sqlalchemy 2018-12-10 11:29:09 +03:00
DarkPhoenix
47a97772cf Add upgrade which adds spoolup attributes to database 2018-12-10 11:24:32 +03:00
DarkPhoenix
f4123310ae Add mutadaptive RR effect and related UI support 2018-12-10 10:42:49 +03:00
DarkPhoenix
f05439989d Update data to 1433497 2018-12-10 10:11:45 +03:00
DarkPhoenix
1df7c0aff8 Merge branch 'master' into singularity 2018-12-10 09:20:15 +03:00
DarkPhoenix
29fde786fb Merge branch 'spoolup_support' 2018-12-10 09:19:40 +03:00
DarkPhoenix
4833fc68a0 Merge branch 'master' into attrGroup 2018-12-05 13:15:42 +03:00
blitzmann
3f0fc3c44b added effect 2018-12-03 21:22:59 -05:00
blitzmann
375e8de33f Update database and get some easy effects finished 2018-12-03 21:15:04 -05:00
blitzmann
9d04f06f69 Merge branch 'master' into singularity 2018-12-03 21:10:15 -05:00
blitzmann
0297ec47f6 Fix for #1814 2018-12-02 16:08:53 -05:00
DarkPhoenix
75e1e48ba8 Allow lock amount skills to be applied to structures 2018-12-02 19:36:22 +03:00
blitzmann
89ff9a3d77 replace db with updated version 2018-12-01 23:24:20 -05:00
blitzmann
6fa1593ddc Merge branch 'master' into attrGroup
# Conflicts:
#	eos/gamedata.py
#	eve.db
#	gui/builtinItemStatsViews/itemAttributes.py
2018-12-01 23:15:35 -05:00
blitzmann
d404d10bfe Fix exclusive abyssal weathers items (#1794) 2018-12-01 23:01:13 -05:00
blitzmann
194c159379 Create a new property on Module, returns if module is projected (or None if it's not attached to a fit). Fix issues with setting charges on projected modules because the command was always looking at the literal modules on the fit (instead of projected) 2018-12-01 20:50:40 -05:00
blitzmann
791b6e15d4 Move the specialtyMiningAmount value application to a later runtime, to allow all other bonuses to apply before it's set (#1790) 2018-11-28 22:54:04 -05:00
Ryan Holmes
882e39417d Include spoolup in the tooltip of DPS 2018-11-28 00:58:06 -05:00
Ryan Holmes
8b6d32fe3b Merge remote-tracking branch 'origin/master' into spoolup_support 2018-11-27 23:59:22 -05:00
blitzmann
715f9427d5 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2018-11-27 22:52:57 -05:00
blitzmann
78b281cf3a Fixes a few mining amount bonuses (#1809) 2018-11-27 22:52:48 -05:00
Ryan Holmes
bbede00cc4 Merge branch 'master' of https://github.com/pyfa-org/Pyfa into origin_master 2018-11-27 21:40:42 -05:00
Ryan Holmes
e6da57ab57 Fix standup nuets not respecting energy warfare resists (#1808) 2018-11-27 21:40:22 -05:00
blitzmann
9e08783802 Add middle click to close fitting tab (#1804) 2018-11-25 15:12:12 -05:00
Ryan Holmes
1dc98ce33d Merge pull request #1807 from pyfa-org/issue/1806
Attempt to save the charge when changing module variations.
2018-11-24 21:41:55 -05:00
Ryan Holmes
c97750a593 Attempt to save the charge when changing module variations.
Move caching of old module into Do function. Having it in `change_module` causes it to run even with the Undo command, whch causes funkiness
2018-11-24 21:38:50 -05:00
DarkPhoenix
aa7e3bd69d Sort cargo like default inventory sort order in game & like EFT export 2018-11-23 15:15:28 +03:00
blitzmann
5a6b9114e2 bump version 2018-11-22 23:59:49 -05:00
DarkPhoenix
61abcf3018 Apply all components of abyssal pvp weather 2018-11-22 16:29:10 +03:00
DarkPhoenix
4845b3b0ce Add PvP weather to abyssal weather menu 2018-11-22 16:17:54 +03:00
DarkPhoenix
8f0e8f72cd Update database to 1425015 2018-11-22 15:09:34 +03:00
Ryan Holmes
96269a7777 Merge pull request #1805 from pyfa-org/issue/1793
Don't include non active fighters in dps graph
2018-11-20 21:43:24 -05:00
blitzmann
bdcc05b7b6 Don't include non active fighters in dps graph 2018-11-20 21:39:31 -05:00
Ryan Holmes
060b512bcf Merge pull request #1803 from pyfa-org/muta_item_import
Mutated item import
2018-11-20 20:44:57 -05:00
DarkPhoenix
3907c8c29a Change how compiled regex is used 2018-11-20 19:19:14 +03:00
DarkPhoenix
c786012b28 Update database to 1422751 2018-11-20 17:08:31 +03:00
DarkPhoenix
37a084e1d1 Fit importing plain modules in command code 2018-11-20 13:54:07 +03:00
DarkPhoenix
b9c3675894 Fix case when only module name is passed
Still crashes and query cache, will fix later
2018-11-20 13:51:49 +03:00
DarkPhoenix
60ecc95049 Fix command code 2018-11-20 13:48:54 +03:00
DarkPhoenix
59d9d47a56 Do some work on mutated module commands to support new parsing format 2018-11-20 13:38:38 +03:00
DarkPhoenix
c619efa68e Change the way DNA import is handled 2018-11-20 13:03:27 +03:00
DarkPhoenix
05e895e7b7 Move out mutated module parsing from EFT to separate module 2018-11-20 12:51:49 +03:00
Ryan Holmes
58daf2a543 work on getting abyssal modules imported via clipboard 2018-11-20 00:49:04 -05:00
DarkPhoenix
0294684bb8 Implement import of separate mutated items 2018-11-19 17:47:48 +03:00
DarkPhoenix
fa9b3be41c Move fetch function to shared 2018-11-19 16:57:19 +03:00
DarkPhoenix
74bf3fbc8b Move mutation export to another module 2018-11-19 15:31:13 +03:00
DarkPhoenix
dc2a4d4446 For abyssal modification range, show integer + 3 fraction digits, like CCP does 2018-11-19 14:59:34 +03:00
DarkPhoenix
b0895611d6 Move tiamat/hydra out of normal groups 2018-11-17 14:48:25 +03:00
DarkPhoenix
f664a1cad3 Fix crash on opening mutated BCS stats 2018-11-15 16:19:20 +03:00
Ryan Holmes
19de7e40dc Merge pull request #1799 from pyfa-org/mutation_gauge_fix
Mutation gauge fix
2018-11-14 21:26:33 -05:00
DarkPhoenix
de2ee1dce6 Set input box upon updates as well 2018-11-14 17:36:35 +03:00
DarkPhoenix
90698dde90 Rework slider to use values rather than modifiers 2018-11-14 17:15:04 +03:00
Ryan Holmes
0ab6d6e845 Merge pull request #1798 from pyfa-org/release/v2.6.0
Release/v2.6.0
2018-11-13 21:14:54 -05:00
Ryan Holmes
74d87845cf Merge pull request #1797 from pyfa-org/master
Merge pull request #1796 from pyfa-org/release/v2.6.0
2018-11-13 21:14:12 -05:00
blitzmann
9e2b15776f bump version 2018-11-13 21:13:35 -05:00
Ryan Holmes
c8ade0741c Merge pull request #1796 from pyfa-org/release/v2.6.0
Release/v2.6.0
2018-11-13 21:12:47 -05:00
blitzmann
af8b444ab5 update icons 2018-11-13 20:49:53 -05:00
blitzmann
2ba26f01b2 update db 2018-11-13 20:49:37 -05:00
DarkPhoenix
e77bb11d0a Update database and effects to 1419904 2018-11-13 14:09:23 +03:00
DarkPhoenix
c14b56f37d Fix file name for case-sensitive filesystems
Phobos produces all-lowercase file
2018-11-13 13:41:59 +03:00
DarkPhoenix
e6fe8de5ed Remove unused effects 2018-11-02 15:52:58 +03:00
DarkPhoenix
cf27c2be10 Update database and add effects for two new triglavian ships 2018-11-02 15:49:35 +03:00
DarkPhoenix
f39ba27a13 Add backend support for damage stats separation (prespool and postspool) 2018-11-02 13:30:38 +03:00
Ryan Holmes
78ff74f0f7 Merge pull request #1787 from pyfa-org/issue/1778
Issue/1778
2018-10-28 22:08:03 -04:00
blitzmann
29a2a08986 Add drag n drop form market to implant view 2018-10-28 22:06:08 -04:00
blitzmann
881b92a6ea Convert implant location change to a command 2018-10-28 21:59:14 -04:00
Ryan Holmes
50c22c836b Merge pull request #1786 from pyfa-org/issue/1777
Recalc fit after removing implants (and undoing removal)
2018-10-28 21:07:58 -04:00
blitzmann
63115a7c0f Recalc fit after removing implants (and undoing removal) 2018-10-28 21:07:12 -04:00
blitzmann
fd43f33871 fix bug where info was none 2018-10-28 17:03:40 -04:00
blitzmann
36bf4ef9ca Some tweaks and fixes to the attribute grouping logic 2018-10-28 16:28:44 -04:00
blitzmann
63f9847406 Merge branch 'master' into attrGroup
# Conflicts:
#	eve.db
#	gui/bitmap_loader.py
2018-10-27 15:13:54 -04:00
petosorus
46f5a592ce Right click option to fill slots with a module 2018-10-21 16:07:02 +02:00
Ryan Holmes
f854627888 Merge pull request #1776 from pyfa-org/release/v2.5.1
release 2.5.1
2018-10-15 21:22:25 -04:00
blitzmann
5ec8468d3f release 2.5.1 2018-10-15 21:21:53 -04:00
Ryan Holmes
0da4e4359b Merge pull request #1772 from tron1point0/issue/pyfa-org/1769
Try loading smaller variants if scaled icons are missing
2018-10-15 21:11:02 -04:00
Tron
c5e8742838 More flake8 fixes. 2018-10-15 06:00:15 -05:00
Tron
f9f90852c5 Merge branch 'master' into issue/pyfa-org/1769 2018-10-15 05:59:42 -05:00
Traian Nedelea
6b5f2450ad Merge pull request #1 from pyfa-org/master
Pull from upstream.
2018-10-15 05:59:27 -05:00
DarkPhoenix
4f2e962a46 Blow sig of command destroyers which are using MJFG 2018-10-15 13:55:14 +03:00
Tron
05ce8fbf1c Fixed flake8 complaints. 2018-10-15 05:44:22 -05:00
Tron
929b2dfb38 Factored out scaled image loading into a method so CodeClimate (hopefully) stops complaining about cognitive complexity. 2018-10-15 05:35:28 -05:00
Ryan Holmes
659e0e5ead Merge pull request #1774 from pyfa-org/issue/1773
Support changing variation for drones #1773
2018-10-14 23:27:31 -04:00
blitzmann
7bb44f6473 Support changing variation for drones #1773 2018-10-14 23:26:56 -04:00
Tron
60f024fdb7 Try loading smaller variants if scaled icons are missing. pyfa-org/Pyfa/#1769 2018-10-14 15:47:58 -05:00
blitzmann
38f1314c05 Continuing work on attribute grouping. Break out attribute add to list into a centralized function. create some utility lists of attributes that are grouped 2018-10-14 13:30:05 -04:00
blitzmann
46ece5da0c Tweak to include human-readable rig sizes, and more tweaks to the attribute grouping definitions 2018-10-14 03:42:42 -04:00
blitzmann
d21ccef269 Start defining grouping in another file to keep it contained 2018-10-14 00:49:25 -04:00
Ryan Holmes
da601c9a63 Merge pull request #1770 from pyfa-org/issue/1769
Don't include 2x version of icons that don't have a larger version.
2018-10-13 20:50:39 -04:00
blitzmann
7464de06b1 Don't include 2x version of icons that don't have a larger version. 2018-10-13 20:49:56 -04:00
blitzmann
d788abcab2 revert database for now 2018-10-13 00:02:55 -04:00
blitzmann
d2b601dd8f Merge remote-tracking branch 'origin/master' into attrGroup
# Conflicts:
#	eve.db
2018-10-13 00:02:06 -04:00
Ryan Holmes
20fbda9e7a Merge pull request #1768 from pyfa-org/issue/1767
Check to make sure the bitmap exists before converting to image.
2018-10-12 23:59:22 -04:00
blitzmann
15bbf69fcf Check to make sure the bitmap exists before converting to image. 2018-10-12 23:58:51 -04:00
Ryan Holmes
677a9b33c5 Merge pull request #1766 from pyfa-org/issue/1758
Don't run implant toggle when there is not fit loaded
2018-10-11 22:27:26 -04:00
blitzmann
e9efdcd4e8 Don't run implant toggle when there is not fit loaded 2018-10-11 22:27:07 -04:00
Ryan Holmes
c3b0b7d1e1 Merge pull request #1765 from pyfa-org/hotfix/2.5.0
fix issue with pyinstaller not finding correct modules
2018-10-11 22:02:59 -04:00
blitzmann
d46a2d61bb fix issue with pyinstaller not finding correct modules 2018-10-11 22:02:36 -04:00
Ryan Holmes
673a2e25e3 Merge pull request #1764 from pyfa-org/release/v2.5.0
Release/v2.5.0
2018-10-11 21:17:23 -04:00
blitzmann
749adb9ec8 update efsport 2018-10-11 21:16:12 -04:00
blitzmann
5cab8b1070 Merge remote-tracking branch 'origin/master' into release/v2.5.0-1
# Conflicts:
#	service/efsPort.py
2018-10-11 21:15:15 -04:00
blitzmann
00637f84cb update version 2018-10-11 21:12:07 -04:00
blitzmann
bc5a43bfb3 tox fixes 2018-10-11 21:08:26 -04:00
blitzmann
723ef5c48d Merge branch 'maxGroupFix' into release/v2.5.0-1 2018-10-11 00:50:43 -04:00
blitzmann
53c1a77aeb Add effect for emergency hull energizer 2018-10-11 00:47:41 -04:00
DarkPhoenix
e5389d44d9 Make mass entangler active 2018-10-10 10:42:12 +03:00
blitzmann
c27032ef64 Define the attribute groupings for the new attributes panel, and build out the tree 2018-10-09 22:58:01 -04:00
blitzmann
54b2e5b5fb update renders and icons 2018-10-09 18:38:05 -04:00
blitzmann
1276016a98 Reintroduce the check states functionality to the AddModule and ChangeState commands 2018-10-09 18:19:29 -04:00
blitzmann
7374b00883 Convert Attributes to HyperTreeList 2018-10-09 01:06:11 -04:00
blitzmann
c54d0dc5ff add dynamic attribute miner to dump 2018-10-08 22:32:26 -04:00
Ryan Holmes
fc0bfd83b2 Merge pull request #1754 from MaruMaruOO/master
Small efs export update.
2018-10-08 16:54:21 -04:00
blitzmann
42620c842e added some icons 2018-10-08 13:43:06 -04:00
blitzmann
fd3b3f98bf Bumped version to 1398728 2018-10-08 13:38:52 -04:00
blitzmann
fd7c5c1580 Remove some old debugging prints 2018-10-08 12:50:07 -04:00
blitzmann
c0922adfb2 Merge branch 'hd-images' into release/v2.5.0 2018-10-08 12:44:04 -04:00
blitzmann
1454cd8a0d Merge remote-tracking branch 'origin/development' into release/v2.5.0 2018-10-08 12:40:23 -04:00
MaruMaruOO
3e249ec155 Minor lint and EFS export maxRange bug fix. 2018-09-28 23:36:18 -04:00
MaruMaruOO
edfbf71958 EFS export version bump 2018-09-27 03:06:00 -04:00
MaruMaruOO
4876ff7035 Merge branch 'master' into efs_port 2018-09-27 02:52:49 -04:00
MaruMaruOO
d5034c9e0d Add HIC points to EFS export. 2018-09-27 02:50:28 -04:00
Ryan Holmes
9ec54c9004 Merge pull request #1751 from pyfa-org/issue/1750
Fix for #1750 - when sorting items in the item compare, items without…
2018-09-26 18:17:55 -04:00
blitzmann
0749e03211 Fix for #1750 - when sorting items in the item compare, items without that attribute cause an error due to None / int comparison 2018-09-26 18:17:28 -04:00
Ryan Holmes
e03adad23a Merge pull request #1749 from pyfa-org/issue/1656
Update DPS as factor in reload setting in preferences changes
2018-09-25 21:14:59 -04:00
blitzmann
9b3ba8c9aa Update DPS as factor in reload setting in preferences changes 2018-09-25 21:14:37 -04:00
Ryan Holmes
85746cd681 Merge pull request #1748 from pyfa-org/issue/1447
Fix an issue in which left up event was triggered after selecting a f…
2018-09-25 21:04:18 -04:00
blitzmann
2e64280403 Fix an issue in which left up event was triggered after selecting a file in a file dialog (#1447) 2018-09-25 21:03:51 -04:00
Ryan Holmes
d7b81ea87d Merge pull request #1747 from pyfa-org/issue/1746
Fix for localized fliament abyssal effect
2018-09-25 20:31:35 -04:00
blitzmann
f4404e2649 Fix for localized fliament abyssal effect 2018-09-25 20:29:48 -04:00
DarkPhoenix
f598e8e3c2 Fix couple of price-related bugs 2018-09-19 04:51:14 +03:00
Ryan Holmes
27488a0260 Merge pull request #1738 from m-sasha/missile-ammo-picker-fix
Fixed missile module ammo picker not showing damage type icons.
2018-09-17 00:30:06 -04:00
Ryan Holmes
c53e7964bf Merge pull request #1741 from pyfa-org/codeCleanup
Code cleanup
2018-09-17 00:04:23 -04:00
Ryan Holmes
3516d6fdc5 Merge pull request #1740 from pyfa-org/issue/1730
Add missing entosis link effect
2018-09-17 00:01:24 -04:00
blitzmann
69af1440ae Add missing entosis link effect 2018-09-17 00:00:42 -04:00
blitzmann
31c3101d6d Remove redundant parenthesis 2018-09-16 01:11:16 -04:00
blitzmann
5850026aa9 docstring fixes 2018-09-16 01:09:55 -04:00
blitzmann
b4b8a158f5 Bunch of import optimizations 2018-09-16 00:05:36 -04:00
blitzmann
5c6303995d Replace set() with a literal 2018-09-15 23:44:32 -04:00
blitzmann
f0353a7dd7 some dict cleanup 2018-09-15 23:44:16 -04:00
blitzmann
1fb19e3b94 Merge remote-tracking branch 'origin/master' into development 2018-09-15 23:41:49 -04:00
Ryan Holmes
1788b32b83 Merge pull request #1727 from pyfa-org/commandRefactor
Undo/Redo (refactoring into command pattern)
2018-09-15 23:41:06 -04:00
blitzmann
621672bf34 Some tox fixes 2018-09-15 20:38:08 -04:00
blitzmann
b08406b7d6 Move the FitRenameCommand command 2018-09-15 17:46:55 -04:00
Ryan Holmes
6211d1de70 Merge pull request #1728 from pyfa-org/errorDialogFixes
Add pyfa and eve data version to error dialog
2018-09-15 17:30:49 -04:00
Ryan Holmes
916b11deb8 Merge pull request #1735 from m-sasha/crisp-text
The text drawn in chrome_tabs is now crisp on Retina screens
2018-09-12 20:50:56 -04:00
Alexander Maryanovsky
8e41a90f57 Fixed missile module ammo picker not showing damage type icons. 2018-09-12 23:54:02 +03:00
blitzmann
9aa2b17ae6 commit all the new things! 2018-09-11 19:50:25 -04:00
blitzmann
7f02a078fd Fix some import issues, and save the scale factor on the BitmapLoader class (since it probably won't be changing?) 2018-09-11 19:48:02 -04:00
blitzmann
07b6c9c437 tweak icons script to save scaled versions of images 2018-09-11 19:47:14 -04:00
Alexander Maryanovsky
7c7650ac07 BitmapLoader.getBitmap will now load a @2x (or whatever the main window's content scale is) bitmap, if one is available. 2018-09-11 23:40:18 +03:00
Alexander Maryanovsky
4e399f9bbb The text drawn in chrome_tabs is now crisp on Retina screens 2018-09-11 14:42:37 +03:00
Alexander Maryanovsky
b2c718d614 Implemented copying the currently open fit stats to the clipboard. 2018-09-08 20:14:34 +03:00
blitzmann
12b11d57ba Merge remote-tracking branch 'origin/development' into commandRefactor 2018-09-03 17:28:35 -04:00
blitzmann
bea7102a3f Merge remote-tracking branch 'origin/master' into commandRefactor 2018-09-03 17:26:26 -04:00
Ryan Holmes
b77a577c06 Merge pull request #1725 from pyfa-org/issue1722
Make sure small abyssal nos has a type name (bad eve data)
2018-09-01 18:12:52 -04:00
blitzmann
c5aab07d65 Make sure small abyssal nos has a type name (bad eve data) 2018-09-01 18:12:16 -04:00
Ryan Holmes
362ae72183 Merge pull request #1724 from pyfa-org/abyssal_export
Abyssal export
2018-09-01 18:04:55 -04:00
blitzmann
6f5d0453a6 Added import of Port, which has a method that XML import uses. Importing inside the function to avoid circular import 2018-09-01 18:02:04 -04:00
blitzmann
c552f6a1d4 formatting fixes 2018-09-01 17:54:10 -04:00
Ryan Holmes
99a8b03697 Add pyfa and eve data version to error dialog 2018-09-01 03:01:42 -04:00
Ryan Holmes
9d63946aa7 Merge pull request #1715 from pyfa-org/priceFix
Price callback fix
2018-08-30 23:05:41 -04:00
blitzmann
6eba2b1abd Merge remote-tracking branch 'origin/master' into development 2018-08-30 21:24:10 -04:00
DarkPhoenix
b05f1573c6 Fix log messages 2018-08-30 21:41:50 +03:00
DarkPhoenix
f4311d1cef Remove object which we don't actually need 2018-08-30 21:39:28 +03:00
DarkPhoenix
8abad416bd Split multibuy into its own file as well 2018-08-30 16:23:20 +03:00
DarkPhoenix
52dbd8d9ef Fix few export/import functions 2018-08-30 16:17:56 +03:00
DarkPhoenix
4e5a70993e Split XML facilities into their own file as well 2018-08-30 16:15:23 +03:00
DarkPhoenix
dd0fbfddb9 Split ESI stuff into its own file 2018-08-30 15:57:59 +03:00
DarkPhoenix
02e35181d5 Move out DNA format into separate file 2018-08-30 15:46:29 +03:00
DarkPhoenix
302cab54fd Get rid of PortProcessing object 2018-08-30 15:23:24 +03:00
DarkPhoenix
ba157af496 Allow format to have no space between: ship name - fit name; module name - charge name; module spec - offline suffix; module spec - mutastats reference
This fixes import of modules with charges from zkb and few other issues
2018-08-30 14:25:40 +03:00
blitzmann
d1e6647d1f Don't show/hide options box, move options to under EFT, and simply disable them when EFT not selected 2018-08-30 00:07:37 -04:00
DarkPhoenix
0a47fba107 Move import/export facilities to their own folder 2018-08-28 19:00:39 +03:00
DarkPhoenix
3faa57f39a Remove debugging log requests 2018-08-26 11:10:14 +03:00
Ryan Holmes
75333264a7 Merge pull request #1710 from minlexx/master
Fix parsing system proxy var containing "user:password@" part
2018-08-25 22:22:32 -04:00
blitzmann
e7d846063d Fix for #1714 - was sending in the entire module, not just the position 2018-08-25 19:33:30 -04:00
blitzmann
c2b7cc00dd Fix for #1713 - should look at Fit.processors, not Fit.__class__.processors - artifact from a rewrite 2018-08-25 19:28:34 -04:00
blitzmann
a107171543 Fix for #1712 - instead of adding module (which is a simple append), we must replace module (where we give it a position) 2018-08-25 19:24:41 -04:00
blitzmann
79be16114d fix 2018-08-25 19:12:42 -04:00
blitzmann
c530660132 Save last export setting 2018-08-25 19:01:49 -04:00
blitzmann
ebe0efac81 First bit of work for GUI support for abyssal export. 2018-08-25 17:24:08 -04:00
DarkPhoenix
18ee37d8fd Fix small oversight 2018-08-25 19:30:48 +03:00
DarkPhoenix
f2c2e2e65a Implement mutated attributes import 2018-08-25 19:27:03 +03:00
DarkPhoenix
93f1a18b37 Respect spaces between the modules during import 2018-08-25 17:42:19 +03:00
DarkPhoenix
44aed364b7 Fix oversight which broke dronebay/fighterbay/cargo detection 2018-08-25 16:21:28 +03:00
DarkPhoenix
eb8fa2f259 Rework EFT importing 2018-08-25 16:03:45 +03:00
DarkPhoenix
a8c69abc72 Move EFT import/export related functions to separate file 2018-08-25 11:06:33 +03:00
DarkPhoenix
2dd1ddddd5 Further rework of import function 2018-08-24 18:57:42 +03:00
DarkPhoenix
4a27c60486 Clean up the fit being imported before parsing 2018-08-24 13:25:41 +03:00
DarkPhoenix
66d559306f Avoid doing too wide lines 2018-08-24 10:03:44 +03:00
DarkPhoenix
83222489c4 Condense code a bit more 2018-08-24 10:01:31 +03:00
DarkPhoenix
0a2fa62e21 Fix misplaced comment 2018-08-24 09:55:32 +03:00
DarkPhoenix
6240f23c02 Enumerate mutated modules based on their export order rather than how pyfa order, and round attribute values to avoid float errors 2018-08-24 09:54:03 +03:00
blitzmann
13498e9b35 bump 2018-08-23 21:46:13 -04:00
blitzmann
ca30025be0 Merge tag 'v2.4.0' into commandRefactor
# Conflicts:
#	gui/builtinViews/fittingView.py
#	service/fit.py
2018-08-23 21:15:28 -04:00
blitzmann
97ef231711 fix price callbacks 2018-08-23 21:10:59 -04:00
DarkPhoenix
82d8c95d2f Rework export format for abyssal mods, now uses references 2018-08-23 19:22:24 +03:00
Alexey Minnekhanov
dde5ee3701 Fix parsing system proxy var containing "user:password@" part 2018-08-23 11:15:33 +03:00
DarkPhoenix
44a3cb3b2e Add ability to export mutated module attributes 2018-08-22 19:54:52 +03:00
DarkPhoenix
44c58abe81 Rewrite EFT export function
Now uses double blank lines to divide logical sections, and racks within these sections (mods/rigs/subs, drones/fighters, implants/boosters) and sorts unordered containers for export
2018-08-22 18:51:31 +03:00
Ryan Holmes
7055690805 Merge pull request #1705 from pyfa-org/release/v2.4.0
Release/v2.4.0
2018-08-21 20:45:51 -05:00
blitzmann
116dde3f3f Bump release 2018-08-21 21:45:35 -04:00
Ryan Holmes
daef1ebdfd Merge branch 'master' into release/v2.4.0 2018-08-21 20:43:27 -05:00
Ryan Holmes
5c38ab4228 Merge pull request #1688 from MaruMaruOO/efs_port
Adds copy to clipboard for Eve Fleet Simulator
2018-08-21 20:43:13 -05:00
Ryan Holmes
299243c446 Merge pull request #1689 from MaruMaruOO/issue/1683
Update market.service to reflect new booster market groups.
2018-08-21 20:34:48 -05:00
Ryan Holmes
970c3a5473 Merge branch 'master' into efs_port 2018-08-21 20:21:16 -05:00
Ryan Holmes
bc63eaa876 Merge pull request #1704 from feyyd/bug/1692
Bug/1692
2018-08-21 20:14:44 -05:00
Ryan Holmes
78de723b81 Merge pull request #1701 from feyyd/bug/1691
Bug/1691
2018-08-21 20:12:57 -05:00
Ryan Holmes
dbb9823df5 Merge pull request #1697 from feyyd/bugfix-1695
Bug/1695, Bug/1690
2018-08-21 20:06:15 -05:00
blitzmann
95899548e5 Fix an issue with double forward slashes in res paths (#1703) 2018-08-21 20:58:38 -04:00
blitzmann
2a076292da pep8 2018-08-21 20:48:30 -04:00
blitzmann
308fa3c46c Update effect headers 2018-08-21 20:47:56 -04:00
blitzmann
ccd6d357ed New icons 2018-08-21 20:45:16 -04:00
blitzmann
21b6a2cdfd Update for new effects and ships 2018-08-21 20:44:46 -04:00
DarkPhoenix
ccbd0a117b Fix merge issue 2018-08-21 19:51:56 +03:00
DarkPhoenix
6caa79c951 Merge master into singularity 2018-08-21 19:43:41 +03:00
DarkPhoenix
4365da8292 Merge branch 'master' into singularity 2018-08-21 19:40:39 +03:00
DarkPhoenix
ff222b8d62 Some fixes to DB conversion script 2018-08-21 19:39:07 +03:00
Ryan Holmes
180b766b59 Merge branch 'master' into development 2018-08-21 00:45:15 -04:00
P
b4e765abfa add None checks in deleteFit to prevent exceptions 2018-08-20 21:41:50 -07:00
P
2f40365a03 default return of getModifiedAttr so can use comparison 2018-08-19 17:42:55 -07:00
P
2001a395e5 extra check, swap instead of clone if unique module 2018-08-19 17:28:24 -07:00
blitzmann
7e94914f65 Implement drone toggle command 2018-08-18 01:09:37 -04:00
blitzmann
b17314f3c6 Add projected drone change command, and remove some prints 2018-08-18 00:45:26 -04:00
blitzmann
fd83a4b709 Remove drone splitting / merging, and introduce drone change qty 2018-08-18 00:39:05 -04:00
blitzmann
a37fdf48c8 Fix implant / booster toggles, add qty change commands, started dinking with drone stacks, although think I might remove this altogether in favor of a qty change 2018-08-18 00:06:50 -04:00
Ryan Holmes
5ee8e203db Merge branch 'commandRefactor' of https://bitbucket.org/blitzmann/pyfa-playground into commandRefactor 2018-08-16 23:41:19 -04:00
Ryan Holmes
083b34c780 working commit 2018-08-16 23:40:50 -04:00
P
6c12e1c5fc fix bug issue 1690 as well 2018-08-15 22:23:35 -07:00
blitzmann
bcbed3df39 Fix an issue which caused pyfa to crash (turns out instantiating the commands in the init was not a good idea) 2018-08-16 00:24:31 -04:00
P
083b618b71 1695 fixes + tox test fixes 2018-08-15 20:38:05 -07:00
blitzmann
3d4b41d135 Move deprecated methods to a base class - will remove this eventually, want to keep Fit clean 2018-08-14 01:31:59 -04:00
blitzmann
eeb2b019c0 Remove the crap from meta swap that was already reimplemented, leaving only drones as a reminder on what needs to be done 2018-08-14 01:26:17 -04:00
blitzmann
71257b5265 Implement some various toggles as commands 2018-08-14 01:25:36 -04:00
blitzmann
a5a152d395 Move meta swap functionality to command process 2018-08-14 00:58:50 -04:00
Ryan Holmes
f0983c1468 Implement fighter add/remove commands 2018-08-13 19:35:32 -04:00
Ryan Holmes
513e9d14d8 Moved the default fighter ability to the __init__() 2018-08-13 18:53:30 -04:00
Ryan Holmes
efbf2e7432 Make sure we recalc during swaps from cargo to module 2018-08-13 18:50:00 -04:00
Ryan Holmes
646a903f18 differentiate command processors based on fitID 2018-08-13 17:16:00 -04:00
Ryan Holmes
d74f2b2e42 Rework the logic of dragging module to cargo 2018-08-13 17:01:16 -04:00
Ryan Holmes
9977866eb0 work on moving from cargo to modules (including swapping modules) 2018-08-13 15:03:19 -04:00
Ryan Holmes
008d73e605 Finish off commands for cargo to module action 2018-08-13 02:01:16 -04:00
Ryan Holmes
2164588329 projected drone commands 2018-08-12 17:49:58 -04:00
Ryan Holmes
391c3a32a6 commands for add / remove projected fighters 2018-08-10 13:29:26 -04:00
Ryan Holmes
bd975becf1 Continue work on projections (adding/removing projected environment and fit) 2018-08-10 12:47:51 -04:00
Ryan Holmes
d6b280d3cc Working commit for adding / removing projected modules / environments 2018-08-09 15:52:34 -04:00
Ryan Holmes
56ebb2926d Merge remote-tracking branch 'bitbucket/commandRefactor' into commandRefactor 2018-08-05 11:06:45 -04:00
Ryan Holmes
804d90c50c Don't run adding command on implants and boosters if item is already item 2018-08-05 08:17:24 -04:00
Ryan Holmes
326e1e04c2 Reworked slot-copying logic so that we can call it explicitly outside the append. Needed for the fitting commands to know what the previous item ID was that it's replacing. 2018-08-05 08:14:12 -04:00
blitzmann
0f4f8c636d Start working on projections 2018-08-04 22:10:14 -04:00
blitzmann
425c7f657c Do command fit toggle. Still need to settle on the logic for how to handle deleted fits - seems there's an issue with the queue. 2018-08-03 22:30:09 -04:00
blitzmann
3c7f0258df More converting for command fits 2018-08-03 21:19:51 -04:00
Ryan Holmes
7a1b4b4a1e Merge remote-tracking branch 'bitbucket/commandRefactor' into commandRefactor
# Conflicts:
#	gui/fitCommands/__init__.py
2018-08-03 16:11:52 -04:00
Ryan Holmes
fcc53d3f21 Add commands for booster and command fits 2018-08-03 16:10:27 -04:00
blitzmann
15ba5c8ace Convert tactical mode switching 2018-08-03 02:01:42 -04:00
blitzmann
6057a1a7d9 Fix issue with setting None charge 2018-08-03 02:01:26 -04:00
blitzmann
e0add506c9 Merge branch 'commandRefactor' of https://bitbucket.org/blitzmann/pyfa-playground into commandRefactor 2018-08-03 01:42:36 -04:00
blitzmann
aa282990a5 Fix the state change command to not store the modules themselves, but the positions 2018-08-03 01:42:20 -04:00
blitzmann
1686220523 Fix the state change command to not store the modules themselves, but the positions 2018-08-03 01:42:06 -04:00
blitzmann
c84c79c917 More tweaks to existing commands 2018-08-03 01:08:33 -04:00
blitzmann
36b158637c Some documentation 2018-08-02 23:23:52 -04:00
blitzmann
fc153915b6 More work on commands, this time focusing on details with module add / remove functionalities. 2018-08-02 02:06:03 -04:00
blitzmann
098f0f92ee Fix issue with layout-modifying modules (need to build fill() into the recalc itself at some point) 2018-07-31 21:29:59 -04:00
blitzmann
cfb7a70da5 Add recalcs to Add and remove module 2018-07-30 00:05:00 -04:00
blitzmann
984978a80d move some files around and create a context manager for fit recalclation 2018-07-28 00:07:10 -04:00
blitzmann
dd430bc9bb Implant and cargo conversions 2018-07-27 23:54:41 -04:00
blitzmann
b724e5bec1 Set up commands for adding/removing cargo 2018-07-27 00:43:47 -04:00
MaruMaruOO
1f09494df5 Merge branch 'master' into efs_port 2018-07-27 00:32:23 -04:00
MaruMaruOO
d9827b445f Add versioning data to EFS export 2018-07-27 08:03:21 -04:00
MaruMaruOO
46e58ecba7 Add module typeIDs to data exported by efsPort 2018-07-27 06:51:53 -04:00
MaruMaruOO
c1405fa675 More getter swapping for efsPort 2018-07-26 17:39:32 -04:00
MaruMaruOO
b7900b0b25 Change more efsPort syntax to use getters 2018-07-26 17:27:03 -04:00
MaruMaruOO
bef8fbbc3a Used getModifiedItemAttr in efsPort to replace itemModifiedAttributes for consistancy 2018-07-26 14:24:55 -04:00
MaruMaruOO
4fc630d44e Minor efsPort linting 2018-07-26 12:02:04 -04:00
MaruMaruOO
582a3893d1 Removed unneeded initalization from efsPort 2018-07-26 11:48:34 -04:00
MaruMaruOO
03e325cdcb Change efsPort.getOutgoingProjectionData to corectly use mod.item.group.name 2018-07-26 11:23:39 -04:00
blitzmann
7f8ad3885d Create isCharge property 2018-07-26 01:16:29 -04:00
blitzmann
0d32b60f7e Convert module swap / clone to fit / gui commands 2018-07-26 00:31:38 -04:00
blitzmann
53f6d43109 Migrate over the ammo setting stuff to fit/gui commands 2018-07-25 22:50:43 -04:00
blitzmann
dd6fe01df5 Migrate module state change to gui/fit command pattern 2018-07-25 22:24:57 -04:00
blitzmann
1f9024a740 Move getProposedStatefrom fit service to module class 2018-07-25 22:23:50 -04:00
blitzmann
65c568bd95 Move some module state mapping definitions to the module file and add deprecation flags some sFit functions (will be moving to module / commands) 2018-07-25 22:02:51 -04:00
blitzmann
9ccdb51063 remove some logging tweaks 2018-07-25 00:58:11 -04:00
blitzmann
d5aeb0913d Start refactoring the refactor that was started with command pattern refactoring.
Instead of attempting to keep all the Fit service functionality, move these into specific "Fitting Commands" that are designed to define a unit of work and it's undo. Then, we will have "GUI Commands" which are defined as actions taken by the user themselves - these will usually use one or more "Fitting Commands".
2018-07-24 01:29:57 -04:00
MaruMaruOO
38726675e1 Added disintegrator stats 2018-07-23 20:28:53 -04:00
Ryan Holmes
622a3004c5 Merge pull request #1687 from MaruMaruOO/issue/1684
Have imported fits always use implants if present
2018-07-22 19:32:24 -04:00
blitzmann
2ccad2a358 Handle use case of moving a module from market to fitting view 2018-07-21 19:52:28 -04:00
blitzmann
a66eb059e2 Convert module swap to command pattern 2018-07-21 18:20:24 -04:00
blitzmann
5d0342ee2d Convert module charge handling to command pattern (adding charges and removing charges) 2018-07-21 18:04:07 -04:00
blitzmann
ec3cd75f4c Convert the context > Remove Module to command pattern 2018-07-21 16:00:02 -04:00
blitzmann
9309ddff07 Created undo/redo command for module remove, along with reapplying some module-specific attributes (state, charge). Fixed a bug when trying to add a module that doesn't fit 2018-07-21 15:34:58 -04:00
blitzmann
0c3fa53bcf Support undo/redo module add 2018-07-21 14:46:25 -04:00
blitzmann
926e0a9035 Start working on some undo / redo functionality. this is just the start, only module state changes and fit rename is implemented, and probably not very well x_x 2018-07-21 00:12:28 -04:00
MaruMaruOO
fe0266e517 Added mitigation for outdated forced groupMarketIDs 2018-07-19 05:40:18 -04:00
MaruMaruOO
0a8bb79e47 Update market.service to reflect new booster market groups 2018-07-19 13:16:59 -04:00
blitzmann
e9cb7696dd Fix an issue for Polycarbon Engine Housing (#1682) 2018-07-19 00:03:17 -04:00
MaruMaruOO
c054a2d80d Trivial lint 2018-07-17 23:09:39 -04:00
MaruMaruOO
2f7a3e0287 Have imported fits always use implants if present 2018-07-17 22:35:09 -04:00
MaruMaruOO
6be77646fc Linting for consistancy 2018-07-17 22:32:30 -04:00
MaruMaruOO
a6a0831123 Removed uneeded file 2018-07-17 21:03:39 -04:00
MaruMaruOO
682607c31f Remove local build files not intended for git 2018-07-17 21:01:26 -04:00
MaruMaruOO
c0096fc016 Revert irrelevent changes compared to master 2018-07-17 20:46:15 -04:00
MaruMaruOO
ebac100e38 Adjusted EFS to clipboard tooltip 2018-07-17 04:22:40 -04:00
MaruMaruOO
fe43c2ee2e Merge branch 'master' into efs_port 2018-07-17 03:06:34 -04:00
MaruMaruOO
b1f1db1bee Change service.efsPort to a class structure for consistancy. 2018-07-17 02:54:01 -04:00
blitzmann
df75646766 bump release 2018-07-17 02:10:24 -04:00
Ryan Holmes
6270d34dfd Merge pull request #1677 from MaruMaruOO/issue/1673
Have missing icons display as question mark icons
2018-07-16 21:00:10 -04:00
Ryan Holmes
497fdd7a11 Merge pull request #1675 from MaruMaruOO/port_bug_fix
Bug fix to set implantLocation when importing fits
2018-07-16 12:09:58 -04:00
MaruMaruOO
6583aa9b34 Have missing icons display as question mark icons 2018-07-16 10:26:29 -04:00
MaruMaruOO
910fe99e44 Bug fix to set implantLocation when importing from clipboard 2018-07-16 08:43:41 -04:00
MaruMaruOO
4be78db738 Added additional data to efs exports moduleNames and moved it to service.efsPort 2018-07-16 06:25:56 -04:00
MaruMaruOO
897763e8d5 Merge branch 'master' into py3EFFS 2018-07-16 04:01:08 -04:00
blitzmann
fc921d2c16 Bump version 2018-07-15 17:44:13 -04:00
blitzmann
b57bede510 tox fixes 2018-07-15 02:51:53 -04:00
blitzmann
d4f719a428 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2018-07-15 02:38:08 -04:00
Ryan Holmes
6f8ff9255a Merge pull request #1660 from flashspys/patch-2
Make pyfa retina ready
2018-07-15 02:29:46 -04:00
Ryan Holmes
79d4b458c8 Merge pull request #1668 from MaruMaruOO/issue/1667
Added setting for default implant location
2018-07-15 02:29:29 -04:00
Ryan Holmes
c7d9c0e0e0 Merge pull request #1671 from MaruMaruOO/copy_improvements
Added missing data to fit copying
2018-07-15 02:29:00 -04:00
blitzmann
b7be0d0dfb fix database (give name to Small Abyssal Energy Nosferatu - this is a known EVE bug) 2018-07-15 02:20:28 -04:00
blitzmann
475e8f1ff2 Update effect headers and some icons 2018-07-15 01:09:07 -04:00
blitzmann
9298dcd454 Update to 1348988 2018-07-15 00:54:50 -04:00
blitzmann
3b13712db1 Add missing effect 2018-07-15 00:47:50 -04:00
blitzmann
df92b857c9 Add a script to extract the dynamic attribute mappings from the client 2018-07-15 00:47:26 -04:00
MaruMaruOO
d5aee34aa8 Added missing data to fit copying 2018-07-12 07:35:14 -04:00
MaruMaruOO
7a4c7a8f9f Removed excess diagnostic information 2018-07-11 10:28:39 -04:00
Maru Maru
1699b8ceee Add ability to use character implants by default 2018-07-11 05:35:19 -04:00
Maru Maru
f624528ce5 trivial line movement 2018-07-11 02:50:50 -04:00
Maru Maru
c0e9878982 Merge branch 'master' into py3EFFS 2018-07-11 02:23:01 -04:00
Maru Maru
7a078f433a draft of misc patches for main branch 2018-07-11 12:05:57 -04:00
blitzmann
89efa9cbf9 Fix syntax issue (see #1657) 2018-07-09 22:59:26 -04:00
Ryan Holmes
786864b146 Merge pull request #1663 from MaruMaruOO/patch-1
Fixes the Helios's drone damage bonus.
2018-07-09 22:17:22 -04:00
Ryan Holmes
8383a645da Merge pull request #1652 from WatchMeCalculate/Issue-1621
Address Issue where evemon xml was not being imported
2018-07-09 22:16:07 -04:00
Ryan Holmes
1c579c9134 Merge pull request #1665 from MaruMaruOO/issue/1662
Allow drone skill effects to process implants
2018-07-09 22:12:33 -04:00
Ryan Holmes
b8c09429db Merge pull request #1664 from MaruMaruOO/patch-2
Typo fix for eos.gamedata.translations["Boolean"]
2018-07-09 22:10:21 -04:00
Ryan Holmes
090b61778f Merge pull request #1666 from MaruMaruOO/issue/1657
Make itemStats.closeBtn fire a wx.CloseEvent
2018-07-09 22:07:32 -04:00
MaruMaruOO
29541bc5d9 Make itemStats.closeBtn fire a close event 2018-07-09 05:51:23 -04:00
MaruMaruOO
3fcad7ed3f Allow drone skill effects to process implants 2018-07-09 01:37:40 -04:00
MaruMaruOO
fe951e2ca1 Typo fix for eos.gamedata.translations["Boolean"]
Fix for #1659.
I assume the second argument is a typo given the use case.
If not giving it a default value also works.
2018-07-08 21:44:55 -04:00
MaruMaruOO
0603e0c89d Fixes the Helios's drone damage bonus.
The required skill should be Light Drone Operation as light drones don't require Drone Avionics.
This causes the damage bonus to apply correctly. Giving a max skill Hobgoblin II 29.7dps rather than 19.8dps.
2018-07-06 23:41:34 -04:00
Maru Maru
da5893ac91 Merge branch 'master' into py3EFFS 2018-07-06 04:26:48 -04:00
Maru Maru
7af5c17015 Changed the name of Eve Fleet Fight Simulator to Eve Fleet Simulator and updated refs to match 2018-07-06 14:01:54 -04:00
Felix Wehnert
9f580597fd Make pyfa retina ready
This should help pyfa to look better on macOS 📺
2018-07-02 18:55:48 +02:00
blitzmann
819c0ba321 Fix eve db 2018-06-21 00:28:15 -04:00
blitzmann
b68e7d9344 Merge branch 'profile' 2018-06-21 00:24:19 -04:00
blitzmann
86333a05fb Remove redundant import 2018-06-21 00:24:07 -04:00
blitzmann
39f7ecdf5c Merge branch 'mutaplasmids'
# Conflicts:
#	eve.db
2018-06-21 00:22:57 -04:00
blitzmann
6c184e9184 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2018-06-21 00:21:36 -04:00
blitzmann
c587fa1e84 Merge branch 'issue/1645' 2018-06-21 00:21:08 -04:00
DarkPhoenix
1b932fd885 Implants are not penalized 2018-06-19 16:10:41 +03:00
WatchMeCalculate
99f14746e4 Removed return and re-added apiUpdateCharSheet function 2018-06-19 00:16:32 -07:00
blitzmann
6c6423515c Fix for #1635 2018-06-18 20:55:16 -04:00
blitzmann
15216453c9 Update item attributes panel when mutation changes (#1644) 2018-06-17 13:01:54 -04:00
blitzmann
8f16fc5c1e Merge branch 'master' into mutaplasmids
# Conflicts:
#	eve.db
2018-06-17 12:52:49 -04:00
blitzmann
444f42ceee Change CREST export text to ESI 2018-06-17 12:51:57 -04:00
blitzmann
8bf9a9881f Add some invalidation logic to module for Abyysal modules without base or mutaplasmid 2018-06-17 12:23:05 -04:00
blitzmann
8f5060cc3e Fix some issues capping at a certain range (#1651) 2018-06-17 12:10:33 -04:00
blitzmann
b7458396ac Fix some rounding issues (#1651) 2018-06-17 01:48:51 -04:00
blitzmann
d4dba99363 Properly handle projecting an abyssal module (we now copy modules instead of using the same item ID) 2018-06-17 00:04:34 -04:00
blitzmann
710739696a Incorporate mutaplasmids within module copy 2018-06-16 23:25:27 -04:00
blitzmann
5c566bae73 Introduce special cases for cargo swapping when dealing with abyssal modules (#1649) 2018-06-16 21:50:18 -04:00
blitzmann
4e8e5d86c4 Fix for #1647 2018-06-16 17:04:29 -04:00
blitzmann
7e6fc4e6c2 Fix issue with closing item stats 2018-06-16 15:58:30 -04:00
Maru Maru
6bbfb18680 Merge branch 'master' into py3EFFS 2018-06-16 04:52:10 -04:00
Maru Maru
d61ab0ff5a Refactoring for various EFS export code 2018-06-16 04:50:55 -04:00
blitzmann
47016c682e Don't destroy ItemStats window on close. Instead, Skip() the event so that it can finish processing events correctly. (#1650) 2018-06-15 02:27:41 -04:00
blitzmann
eece7de547 Merge branch 'issue/1642' into mutaplasmids 2018-06-15 01:32:03 -04:00
blitzmann
ed94294584 Finish implementing the translated values for the Mutators 2018-06-15 01:31:51 -04:00
blitzmann
634bdab396 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2018-06-14 22:53:33 -04:00
blitzmann
3462252ecc Automatically check on character load that the character at least has all skills in the database for it (#1645) 2018-06-14 22:53:16 -04:00
blitzmann
5a085b6e27 Automatically check on character load that the character at least has all skills in the database for it (#1645) 2018-06-14 22:52:33 -04:00
blitzmann
12c491a6b3 Merge branch 'mutaplasmids' of https://github.com/pyfa-org/Pyfa into mutaplasmids 2018-06-13 23:11:37 -04:00
Ryan Holmes
4d8240a588 Merge pull request #1643 from burnsypet/mutaplasmids
Added reset and randomize buttons to mutaplasmid view
2018-06-13 23:10:55 -04:00
blitzmann
154b07e0d6 Move the attribute unit translations from the GUI to the Unit class and tweak the display of mutator ranges to use this. Additionally, develop inverse functions to the value translations for eventual use in the mutator slider 2018-06-13 23:10:48 -04:00
burnsypet
59a5b68152 Added reset and randomize buttons to mutaplasmid view 2018-06-13 22:52:36 +01:00
Ryan Holmes
f0a6034cec Merge pull request #1632 from WatchMeCalculate/Issue-#1627
Adds exception handler for when HttpServer fails on init
2018-06-13 00:21:46 -04:00
Ryan Holmes
6224286524 Merge pull request #1639 from burnsypet/issue-1637
HTML export now contains EFT block
2018-06-13 00:20:14 -04:00
Ryan Holmes
eefc84465f Merge pull request #1638 from surculus12/issue-1633
resolves #1633
2018-06-13 00:18:15 -04:00
blitzmann
4fd54ca74a bump beta version 2018-06-12 22:23:57 -04:00
blitzmann
779b9f0821 Fix attribute icons to use new method 2018-06-12 21:51:58 -04:00
blitzmann
3ae10fe483 adding icons 2018-06-12 21:46:31 -04:00
blitzmann
88be999899 update database 2018-06-12 21:46:05 -04:00
blitzmann
6fdcce12a3 Merge branch 'icons-1621' into v2.2.0b1
# Conflicts:
#	eos/db/__init__.py
#	eos/db/gamedata/__init__.py
#	eos/db/gamedata/item.py
#	eos/gamedata.py
#	eve.db
2018-06-12 21:43:28 -04:00
blitzmann
e19d231eba Merge branch 'master' into v2.2.0b1
# Conflicts:
#	eve.db
2018-06-12 21:41:04 -04:00
blitzmann
d4d55c026a tweak font sizes 2018-06-12 21:29:00 -04:00
blitzmann
3ebfe045c5 Catch a rare error with mutators that are kinda orphaned (not via module, but the mod doesn't have base or mutaplasmid) 2018-06-12 21:15:31 -04:00
blitzmann
75230a78a6 Do not explicitly add the mutator to the module. Setting the Mutator.module property is sufficient, and prevents from a duplicate one from being added with a None key. 2018-06-12 20:57:06 -04:00
burnsypet
ab6200e2c1 Fixed line length for PEP8 2018-06-12 20:11:39 +01:00
burnsypet
8a18047957 HTML export now contains EFT block 2018-06-12 19:17:39 +01:00
blitzmann
fccd4b61f4 Recalc fit after a mutator change and 1 sec has passed. This allows for both gui animations to finish and prevent multiple quick changes form clogging everything up) 2018-06-12 01:55:40 -04:00
blitzmann
bceaa0d1d5 Get mutations to save 2018-06-11 23:44:34 -04:00
blitzmann
994521f654 Move some functionality tot he mutator object, and clean some stuff up 2018-06-11 23:09:21 -04:00
surculus12
b7b60e4ea6 resolves #1633 2018-06-11 15:24:17 +00:00
blitzmann
6a03ff59af Attribute graph: add edge on neutral 2018-06-10 02:28:01 -04:00
blitzmann
f8b5adb31d Determine validity via mod, not value (prevents weirdness with negatives) 2018-06-10 01:30:05 -04:00
blitzmann
e8b56b076b Instantiate mutators when a mutated module is created / loaded from DB. Some bug fixes for a few things. 2018-06-10 01:10:53 -04:00
blitzmann
fe47ebd1f5 Merge branch 'attribute_gauge' of https://bitbucket.org/blitzmann/pyfa-playground into attribute_gauge 2018-06-09 20:35:08 -04:00
blitzmann
3b310e9b61 Tweaks to slider logic with respect to negative values 2018-06-09 20:34:59 -04:00
Ryan Holmes
07737a1f6d more refactoring and bug fixes for gui 2018-06-09 11:03:04 -04:00
blitzmann
962789bf63 More tweaks 2018-06-09 09:49:32 -04:00
blitzmann
ab2d6dbf3a Flesh out a lot of the small graphical specifics. Stilll needs a bit of work and a few bugs worked out, but I feel it's coming along. 2018-06-08 22:34:15 -04:00
blitzmann
542f2b3061 More tweaks 2018-06-07 19:38:40 -04:00
WatchMeCalculate
abefe21796 Adds exception handler for when HttpServer fails on init 2018-06-05 23:42:00 -07:00
blitzmann
cc529d3499 Penalized drone velocity rigs (#1630) 2018-06-06 00:25:45 -04:00
blitzmann
aee225d11a Only apply thermodynamics skill to modules with heatDamage attribute 2018-06-05 23:59:01 -04:00
Ryan Holmes
0b45438981 Merge pull request #1626 from WatchMeCalculate/Issue-#1519
Issue #1519, on fitting restriction toggle, accurately keep valid modules
2018-06-05 20:26:16 -04:00
DarkPhoenix
d48f9354ec Update database (vedmak fitting changes) and do relevant string updates
Also change jsontosql script to ignore fsdtypeoverrides which is no longer dumpable by phobos
2018-06-05 20:02:00 +03:00
blitzmann
58b422a6d9 Add a bunch of tests, and get it looking just right. Still need to do some general cleanup 2018-06-05 09:02:15 -04:00
blitzmann
b1dce3b7b6 Changes to attribute slider, and thinking about dropping it in support of a modified pyfa gauge 2018-06-04 22:55:34 -04:00
blitzmann
460ba81d44 Some tweaks to the attribute slider 2018-06-04 19:18:18 -04:00
Ryan Holmes
e01699f738 Add a SetValue method to the attribute slider 2018-06-04 17:24:49 -04:00
blitzmann
c9f555a860 Move the slider to another file (makes it easier to test), and adjust the logic so that the base value is always considered in the center, no matter the skew of the ranges 2018-06-04 02:53:14 -04:00
blitzmann
b3acc8fd21 Get a slider interface going for the items stats. Starting to come together! 2018-06-04 02:21:52 -04:00
blitzmann
3670f3289c Convert a module to an abyssal with a mutaplasmid - saving to and loading from database confirmed. 2018-06-03 19:50:50 -04:00
blitzmann
04171b243b Get the mutaplasmid context men working to display the mutaplasmids 2018-06-03 16:48:31 -04:00
blitzmann
20f57146c4 Merge branch 'master' into mutaplasmids
# Conflicts:
#	eve.db
2018-06-03 16:31:20 -04:00
blitzmann
012c5f536b Add mutaplasmid context menu 2018-06-03 16:29:00 -04:00
blitzmann
3fbd869821 Get some basic relationships added for mutaplasmids 2018-06-03 16:28:33 -04:00
blitzmann
19cf3c2036 Update various GUI things to show new location for ship icon 2018-06-02 14:54:59 -04:00
blitzmann
18bbe49c49 support renders 2018-06-02 14:34:00 -04:00
blitzmann
e806471b47 Run icon script to remove the clothing icons 2018-06-02 14:10:37 -04:00
blitzmann
59d56fc333 Remove clothing form the database 2018-06-02 14:04:34 -04:00
blitzmann
926299c20e Add process for getting graphic ids from fsdbinary (not utilizing them yet) 2018-06-02 11:58:38 -04:00
blitzmann
e8d5e9f9f2 More icons fixes 2018-06-02 10:18:56 -04:00
WatchMeCalculate
a5b5cec919 Fixed flake8 issues 2018-06-01 13:08:25 -07:00
Ryan Holmes
bb978c3dff Implement a profiling option. x_x 2018-06-01 15:46:45 -04:00
WatchMeCalculate
cbb8545c30 If module had previously violated fitting restrictions, but now is a valid module, recolor background 2018-06-01 02:22:29 -07:00
WatchMeCalculate
87660246b6 When re-enabling restrictions only delete incompatible modules
Hardpoints past limit will show up highlighted red.
2018-06-01 02:19:14 -07:00
WatchMeCalculate
cc586f6532 For modules with maxfitting, ensure on validity count, don't count itself 2018-06-01 02:18:03 -07:00
WatchMeCalculate
02103b6d2e Refactor checking if Hardpoints has free spots into a function fit can use 2018-06-01 02:16:29 -07:00
blitzmann
94b1876cf1 icon script tweak 2018-05-31 21:36:22 -04:00
blitzmann
8bb3cbb25e More icon fixes 2018-05-31 21:20:47 -04:00
blitzmann
5388ba7a70 Remove need for Icon class, references to it's DB relationship, and remove from DB. Also, add the files. All the files. 2018-05-31 21:13:12 -04:00
blitzmann
ff1d8109cd Start updating the icons script. You can now point it at an EVE installation and an icons.json, which is generated via the icons.yaml from from the SDE (for now, unless we can figure out how to access that info form the res files. it's in CCPs format).
Lots of old stuff still here, needs cleanup. We no longer restrict the queries to certain categories / groups, seemed like extra logic to remember whenever new stuff is potentially added.
2018-05-31 21:09:35 -04:00
DarkPhoenix
408e1246c7 Reduce font size for chrome tabs 2018-05-31 14:47:38 +03:00
DarkPhoenix
051e601f14 Use system font for fitting pane 2018-05-31 13:26:54 +03:00
blitzmann
fb5849e43e Bump version 2018-05-31 01:03:14 -04:00
blitzmann
367b26816b Add some missing stuffs in the manifest (don't know if needed) 2018-05-31 00:54:54 -04:00
blitzmann
e3bec84d31 Tweaks to the Inno Setup file 2018-05-31 00:44:31 -04:00
blitzmann
d92ccffc8d Test a few fixes for the windows installer 2018-05-31 00:01:36 -04:00
blitzmann
e8efa22a95 Merge branch 'singularity' 2018-05-30 19:49:40 -04:00
blitzmann
861d034635 Bump version 2018-05-30 19:49:21 -04:00
blitzmann
7a18224800 pep8 2018-05-30 19:34:14 -04:00
Ryan Holmes
92a906611b Merge pull request #1619 from fsufitch/master
Tweak jargon defaults for more entries based on personal experience
2018-05-30 15:53:27 -04:00
Filip Sufitchi
6fc532a6a2 Tweak jargon defaults for more entries based on personal experience 2018-05-30 15:31:12 -04:00
blitzmann
d0777602e7 Clean up unused effect files now that the effects script works (hopefully) 2018-05-29 21:49:32 -04:00
blitzmann
618507f88c Fix the effects used by script (no longer restricted on category / group), and fix many effects headers 2018-05-29 21:43:25 -04:00
blitzmann
c5bc9e2534 Added missing effectsm, and update headers 2018-05-29 21:39:11 -04:00
blitzmann
b097818f1b Do not allow import of unpublished items (temporary measure to prevent abyssal items) 2018-05-29 21:01:55 -04:00
blitzmann
ba2471e75c Add new icons files 2018-05-29 20:15:05 -04:00
blitzmann
de7a5361fd Add triglavian icon to ship browser 2018-05-29 19:58:59 -04:00
blitzmann
0827e13b31 Add some missing icons 2018-05-29 19:40:55 -04:00
blitzmann
ec2bf8d4ed Update renders 2018-05-29 19:40:01 -04:00
blitzmann
8ab709e590 * Update database (unpublish Abyssal items, for now)
* Add eve data version and datetime to about window (temp measure until we can get a better about window implemented)
2018-05-29 19:37:55 -04:00
Ryan Holmes
efe974f8f9 Merge pull request #1616 from WatchMeCalculate/issue-#1599
Remove asterisk next to character name after API refresh
2018-05-28 17:55:23 -04:00
WatchMeCalculate
da85c66089 Make sure to clear dirty skills when clearing all skills 2018-05-28 13:33:19 -07:00
blitzmann
a02f863bc8 update database 2018-05-27 17:30:12 -04:00
blitzmann
553a181966 Merge branch 'abysmal_weather' into singularity
# Conflicts:
#	eve.db
2018-05-27 17:25:47 -04:00
blitzmann
4a1e4853fb fix issue with display 2018-05-27 17:25:04 -04:00
blitzmann
9f560584ce Fix fighter DPS graph (#1521) 2018-05-27 16:29:47 -04:00
blitzmann
670f19ce95 fixed attribute export (#1613) 2018-05-27 16:25:10 -04:00
blitzmann
3944545721 Support for Abyssal module loading base item attributes 2018-05-27 14:58:14 -04:00
blitzmann
a706da8adc Remove some of the redundant jargon keywords 2018-05-27 12:12:20 -04:00
Ryan Holmes
829fd12163 Merge pull request #1575 from ftsartek/patch-1
Jargon defaults updated for significantly more options
2018-05-27 12:08:55 -04:00
Maru Maru
f8504cfa6e Merge branch 'master' into py3EFFS 2018-05-27 04:08:42 -04:00
Maru Maru
05e76a884a Partially cleaned up efs utilities 2018-05-27 04:07:21 -04:00
Ryan Holmes
b5addc8a87 Merge pull request #1609 from minlexx/copy_text
Copy text from item traits and desription panels
2018-05-26 22:35:24 -04:00
Alexey Min
8cb592db6f Make item description copyable 2018-05-26 14:34:54 +03:00
Alexey Min
be21fec2d2 Make item traits copyable 2018-05-26 14:34:40 +03:00
blitzmann
154ac6b045 forgot the DB 2018-05-25 23:20:36 -04:00
blitzmann
d3bd52fe07 Get dynamic attributes JSON saved to the database... now for the tinkering to begin! 2018-05-25 19:18:51 -04:00
DarkPhoenix
d4beba8b7b Fix ammo picker for disintegrators 2018-05-24 14:35:17 +03:00
DarkPhoenix
4141a9df45 Do not show falloff range if it's too low (disintegrators fetch base value of 1 and show it) 2018-05-24 14:32:35 +03:00
DarkPhoenix
b6181f8ad6 Update db to latest sisi 2018-05-24 09:37:54 +03:00
blitzmann
fabf759aa7 Start implementing support for mutaplasmids.
* There's a new table `mutators` that has an FK back to a module, and links to an attribute ID with it's new value
* Fixes an issue in the item state where the "base" value showed the literal base value for the attribute, regardless of override / mutators
* If there is an override and a mutated attribute, mutated value takes effect
2018-05-24 01:26:49 -04:00
blitzmann
c0f34f1117 update database, and a code tweak 2018-05-23 01:12:46 -04:00
blitzmann
5cf9e0c4ff Merge branch 'singularity' into abysmal_weather
# Conflicts:
#	eve.db
2018-05-23 00:49:29 -04:00
blitzmann
33d4a8a691 update database 2018-05-23 00:46:51 -04:00
blitzmann
9268dc36bf Give the abyssal effect name some custom, directed loving. Mmm. 2018-05-23 00:45:11 -04:00
blitzmann
e95cbdd19b Re-work the wormhole (now call Environmental) context menu 2018-05-23 00:38:30 -04:00
blitzmann
c4177f8911 Remove .zip check for img files (no longer part of build, wondering if this is causing slow start up times) 2018-05-22 00:06:06 -04:00
blitzmann
eaae51f8d8 Add status messages back to ESI fitting export (#1502) 2018-05-21 23:37:15 -04:00
blitzmann
9f69c76380 Reimplement support for exporting ESI fittings... whoops (#1593) 2018-05-21 23:23:21 -04:00
blitzmann
2f9d2e2a60 Force command processors not to show (#1562) 2018-05-21 23:15:41 -04:00
blitzmann
f9e60a00f2 Remove the CREST table from a migration, since it no longer exist (was causing issues for some folks with very old databases) 2018-05-21 23:03:25 -04:00
blitzmann
fde449c7d8 more whoops 2018-05-21 22:09:30 -04:00
blitzmann
6b346c4b37 Whoops 2018-05-21 22:08:56 -04:00
blitzmann
aeb1a80e73 fix attempt for #1602 2018-05-21 21:11:51 -04:00
blitzmann
1c359fb6ed tox 2018-05-20 15:58:25 -04:00
blitzmann
a8c57bbdeb Merge branch 'singularity' into abysmal_weather 2018-05-20 15:57:17 -04:00
blitzmann
752c67bc0b tox 2018-05-20 15:57:02 -04:00
blitzmann
e7c826b71c Merge branch 'master' into singularity 2018-05-20 15:56:12 -04:00
blitzmann
2cac214f46 tox 2018-05-20 15:55:26 -04:00
blitzmann
c1f24a1979 Merge branch 'singularity' into abysmal_weather 2018-05-20 15:51:47 -04:00
blitzmann
63e5b6da68 Merge branch 'master' into singularity 2018-05-20 15:51:22 -04:00
blitzmann
23d9e7a91b Fix travis config 2018-05-20 15:50:56 -04:00
blitzmann
7ac4b52d20 Do all localization effects 2018-05-20 15:05:41 -04:00
blitzmann
d110dd4c76 Implement xeon gas and electric store weather effects 2018-05-20 14:33:37 -04:00
blitzmann
a5b959fbf8 Implement caustic and darkness weather 2018-05-20 14:22:58 -04:00
blitzmann
90f1947ea7 Implement caustic weather 2018-05-20 14:14:35 -04:00
blitzmann
afd16e1afd Add new warfareBuffID, and fix issue with going to effect file in debug 2018-05-20 14:10:37 -04:00
blitzmann
bc23417eae Start working on Abysmal space environment effects. The values produced for the infernal weather (calm firestorm) thermic resist penalties are spot on according to my testing. :D 2018-05-20 12:53:33 -04:00
Maru Maru
2a410a13a0 EFS mass export now uses the configured save path for consistancy. 2018-05-20 04:36:20 -04:00
blitzmann
d84525876a Gather abysmal environnments into database 2018-05-20 00:52:48 -04:00
Maru Maru
d5afacef3f Merge branch 'master' into py3EFFS 2018-05-20 00:39:08 -04:00
blitzmann
891c20eea7 Merge branch 'master' into singularity 2018-05-20 00:22:24 -04:00
blitzmann
020cc9e295 Revert "Clean up unused effects"
This reverts commit 842be9535b.
2018-05-20 00:22:14 -04:00
blitzmann
e423c9248a Fixes for some odd markdown2 bugs (#1532) 2018-05-19 23:57:40 -04:00
blitzmann
b138fea245 Tweak rack labels 2018-05-19 17:56:48 -04:00
blitzmann
cb509a832e Add number of slots in the rack heading (#1535) 2018-05-19 17:55:17 -04:00
blitzmann
155a3a4e42 Tweak the ammo sorter to be more consistent, and not go off of calculated values for the modules (which may change based on the current charge) (#1520) 2018-05-19 17:41:04 -04:00
Ryan Holmes
a59949a57a Merge pull request #1578 from minlexx/esi_proxy
Use proxies from Pyfa's "Network settings" for ESI requests
2018-05-19 17:07:57 -04:00
blitzmann
4ba33aa5b8 Fix two structure rig effects related to missile charge bonuses (#1526) 2018-05-19 17:07:01 -04:00
blitzmann
6dbb61dc12 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2018-05-19 14:53:07 -04:00
blitzmann
f1d3b68308 Bump version 2018-05-19 14:52:58 -04:00
blitzmann
cec61fc225 Some QOL tweaks to the character editor SSO section 2018-05-18 23:41:37 -04:00
blitzmann
caf31517ca Fix attempt for #1560 2018-05-18 01:18:46 -04:00
blitzmann
22edebbf9b More stuff for #1586 2018-05-18 01:18:31 -04:00
blitzmann
806f17f6ea Test fix for #1586 2018-05-17 00:50:17 -04:00
ftsartek
5aa14de0c4 Update defaults.yaml
extra update to include two more american/british english translations
2018-05-17 14:49:00 +12:00
Ryan Holmes
77a5896997 Merge pull request #1584 from minlexx/fix_browse_esi_fittings
Skip fits for unknown ships in "Browse EVE Fittings"
2018-05-15 17:49:41 -04:00
Alexey Min
cc754342c8 Skip fits for unknown ships in "Browsing EVE Fittings" 2018-05-16 00:36:37 +03:00
Alexey Min
63074a2b85 Reduce code duplication:
Network settings class now provides its own method to get proxy settings dict in requests format.
This method can be used both in network service and esi access, reducing code duplication.
2018-05-15 22:13:04 +03:00
Alexey Minnekhanov
bec746b76f Use proxies from Pyfa's "Network settings" for ESI requests 2018-05-15 12:48:18 +03:00
blitzmann
eeb700c75d Get back into tox's good graces 2018-05-15 01:41:32 -04:00
blitzmann
deecfb31dc Merge tag 'v2.0.1' into singularity (bring sisi code up to date with pyfa 2 / py3 / wx4)
# Conflicts:
#	eos/effects/techtwocommandburstbonus.py
2018-05-15 01:17:51 -04:00
blitzmann
9bb83d4574 Merge branch 'master' of https://github.com/pyfa-org/pyfa 2018-05-14 22:08:07 -04:00
blitzmann
8023b2ea29 Bump version 2018-05-14 21:59:25 -04:00
blitzmann
3e1244a27a Fix for not being able to drag fit to tab area (#1569) 2018-05-14 19:26:23 -04:00
blitzmann
51e610830f Fix (not really) an issue with a dead character editor still receiving events 2018-05-14 18:27:53 -04:00
ftsartek
f52d091f9a Updated for significantly more options 2018-05-15 10:05:42 +12:00
blitzmann
a2877f6b5f Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2018-05-14 01:03:06 -04:00
Ryan Holmes
acf6b3dffd Merge pull request #1549 from flashspys/patch-1
Add Drone Damage Amplifier to defaults
2018-05-14 00:39:44 -04:00
blitzmann
b6a1c4b308 Add support for using own client details (messy code, but it works!) 2018-05-14 00:37:26 -04:00
blitzmann
e29ab817af Add the client details back to the preferences page 2018-05-13 13:27:49 -04:00
blitzmann
86576581cd Break out the phobos dump from the data compilation (dump has to work in py2, whereas compilation requires py3 due to hooking directly in with EOS classes). protip: PyCharm configurations are awesome 2018-05-13 01:17:59 -04:00
blitzmann
50bd46015b fix the osx icon 2018-05-12 23:10:27 -04:00
blitzmann
aa2ffaf1ea Update installer script and create new dist script for windows. todo: find out hwo to invoke PyInstaller from python 2018-05-12 22:49:18 -04:00
blitzmann
5cc6b6c69c Move over all esi stuff to it's own class, which the esi service extends from. Also fix an issue in the EVE fittings browser where deleting a fit didn't actually remove it from the list of fits (due to that list being populated by the return data of ESI, which can be cached). More clean up. 2018-05-12 13:57:14 -04:00
blitzmann
0365f71c00 Move over ESI functionality to be completely separate from esipy 2018-05-12 12:25:34 -04:00
blitzmann
4d666907c9 Start breaking out esipy, first up: getting for login 2018-05-11 23:24:30 -04:00
Felix Wehnert
0466678176 Add Drone Damage Amplifier to defaults 2018-05-09 10:20:11 +02:00
blitzmann
c1e239b9b3 Add a message box informing user of failed ESI initialization 2018-05-08 22:00:35 -04:00
blitzmann
26aaeabd7f Bump version 2018-05-08 21:33:20 -04:00
blitzmann
0e0bc9dfd2 Remove some references to old api stuff (#1547) 2018-05-08 21:06:32 -04:00
DarkPhoenix
df24313bcf Update to recent sisi changes 2018-05-08 14:58:25 +03:00
blitzmann
8990cbfd6a update readme 2018-05-08 00:01:55 -04:00
blitzmann
8f34c03289 implement a stop gap measure for #1384 2018-05-07 23:20:11 -04:00
blitzmann
c1322a3566 Run through pyfa.io for update checks (allows us to log version usage and provide more flexibility going forward). Falls back to simple github request 2018-05-07 22:55:50 -04:00
blitzmann
5101e2851a replace eve-central with evemarketer 2018-05-07 22:28:40 -04:00
blitzmann
7b7f67ad2e bump version 2018-05-07 22:24:18 -04:00
blitzmann
dbdc566ae4 Only raise exception for status code > 400 (was previously excluding 201 and the like) 2018-05-07 22:09:31 -04:00
blitzmann
f4fd991907 Remove some event handling from the ESI windows to prevent errors from happening (#1501) 2018-05-07 22:00:41 -04:00
blitzmann
42ad74158b Remove the ASCII text from console 2018-05-07 21:55:47 -04:00
blitzmann
c99afa79e1 Merge branch 'test-3' 2018-05-07 21:54:51 -04:00
blitzmann
789c3b869a Add new Exception type 2018-05-06 13:04:02 -04:00
blitzmann
7d8d87662b Merge remote-tracking branch 'origin/py3' into test-3 2018-05-06 12:58:04 -04:00
blitzmann
645a5ced14 check response for a 200 2018-05-06 12:57:48 -04:00
Maru Maru
56a3911b96 Adjusted effs export to remove bugs with python3 2018-05-05 04:09:01 -04:00
Ryan Holmes
5ed98e8fed Update requirements.txt 2018-05-04 23:30:43 -04:00
DarkPhoenix
a1c894bb22 Provide safe fallback for hardshell booster effect (currently broken on sisi) 2018-05-04 16:01:29 +03:00
DarkPhoenix
32c6dcdb79 Sort fits during search the same way they are sorted normally 2018-05-03 11:24:01 +03:00
DarkPhoenix
842be9535b Clean up unused effects 2018-05-03 09:58:44 +03:00
DarkPhoenix
7b6cb25ac4 Fix disintegrator group name 2018-05-03 09:50:36 +03:00
Ryan Holmes
f12370389c Merge pull request #1538 from fsufitch/issue/1533
Improve user experience customizing jargon.yaml
2018-05-02 22:36:44 -04:00
blitzmann
fc35d7bb26 Add mutaplasmids to group listing for sql inclusion 2018-05-02 22:32:49 -04:00
DarkPhoenix
94e1515b43 Update database after recent ship changes 2018-05-03 01:06:01 +03:00
Filip Sufitchi
95c1f7bde0 Improve user experience customizing jargon.yaml 2018-05-02 11:02:46 -04:00
Maru Maru
dba86edff2 Added python3 functionality to effs exporter 2018-05-02 03:25:20 -04:00
Maru Maru
e2d8a3a4e8 Merge branch 'effsExpBack' into py3EFFS 2018-05-01 00:03:42 -04:00
Maru Maru
090065ddd4 Removed sepurflous effs related files 2018-04-30 20:44:14 -04:00
Maru Maru
acade56769 Adjusted effs fit name prefixing 2018-04-30 20:38:38 -04:00
blitzmann
d52c249921 Remove client path hashing for secret file (was interfering with OS X build, because it unpacks pyfa into a different, random directory each time it runs) 2018-04-29 12:49:03 -04:00
blitzmann
0b9a50cd8d fix mac spec 2018-04-29 11:56:47 -04:00
blitzmann
25bbfec318 add a few things to requirements.txt 2018-04-29 11:31:33 -04:00
blitzmann
1192c26b8f Add the jargon yaml files to the build process 2018-04-29 11:30:41 -04:00
blitzmann
4a3201ffd4 Merge branch 'py3' of https://github.com/pyfa-org/Pyfa into test-3 2018-04-28 20:35:26 -04:00
blitzmann
406a22100d Merge branch 'esi' into test-3 2018-04-28 20:35:14 -04:00
Ryan Holmes
2547cf70c2 Merge pull request #1515 from Neugeniko/Issue#1511
Fix new sustained reps code for logistic drones.
2018-04-28 20:08:07 -04:00
DarkPhoenix
1fc4eab1ce Add spoolup time to misc column 2018-04-28 07:49:04 +03:00
DarkPhoenix
e1e4efde7a Update stats to latest sisi data 2018-04-27 23:24:57 +03:00
DarkPhoenix
cf5769e0f8 Add missing skill and damage mod effects 2018-04-24 20:52:46 +03:00
DarkPhoenix
a8b1f38e84 Update database and implement ship effects, also make pyfa to show final damage value for disintegrators after ramp-up time is complete
(if you don't want me to commit here just write phoenix@mail.ru, i have no way to communicate with you otherwise)
2018-04-24 19:13:30 +03:00
Ryan Holmes
e83fa4d40b Merge pull request #1513 from fsufitch/issue/1369
Issue/1369
2018-04-07 09:10:44 -04:00
Ryan Holmes
c552cb5e40 Merge pull request #1510 from fsufitch/issue/1509
Use list control length instead of sys.maxsize for platform compatibility
2018-04-07 08:27:40 -04:00
Maru Maru
49b1e2ee36 Added option to copy EFFS stats to the clipboard via the CopySelectDialog UI 2018-04-05 02:35:12 -04:00
Maru Maru
aec9202be1 added more data to effs exports, including module names. 2018-04-05 02:24:44 -04:00
Neugeniko
363904411d Projected Logistic Drones don't have a cap use or rawCycleTime.
Only call the logic for the appropriate module groups.
2018-04-04 16:55:05 +10:00
Filip Sufitchi
49bc9f50bc Add a comprehensive default jargon file 2018-04-02 17:35:58 -04:00
Filip Sufitchi
30501feb99 Raise search limit back up to 3 2018-04-02 17:25:45 -04:00
Filip Sufitchi
efc07e1553 Move minimum search length check to the service, to cover jargon 2018-04-02 17:23:30 -04:00
Filip Sufitchi
9bbeec523e Remove some debug try/except stuff 2018-04-02 16:44:14 -04:00
Filip Sufitchi
943ee517f4 Add jargon service
Jargon service translates search strings for the market
using community-sourced abbreviations. It also creates the
jargon.yaml file in the user's save directory, for
future customization (either manual, or via the UI) and
provides the code hooks to load and update it. The
JargonLoader is capable of hot-loading new jargon.yaml
configurations without restarting Pyfa.
2018-04-02 16:40:39 -04:00
Filip Sufitchi
18bb3bf246 Use list control length instead of sys.maxsize for platform compatibility 2018-03-31 16:28:59 -04:00
blitzmann
117d51caab change back to the py3-dev database 2018-03-25 21:42:51 -04:00
blitzmann
a3e411f225 Merge tag 'v2.0.0b5' into esi
# Conflicts:
#	eos/saveddata/character.py
2018-03-25 19:21:32 -04:00
blitzmann
083af3ebc7 Suppress pre-release notification only if current build is not a pre-release 2018-03-25 13:25:09 -04:00
blitzmann
3fd4d106d9 Merge branch 'master' into test-3
# Conflicts:
#	config.py
#	eos/effects/warpdisruptsphere.py
#	service/update.py
2018-03-25 13:16:07 -04:00
Ryan Holmes
7c376c93a2 Merge pull request #1500 from pyfa-org/release/1.36
Release/1.36
2018-03-25 13:12:46 -04:00
blitzmann
4ef7b645a8 Update effects, icons, db, version bump 2018-03-25 13:11:29 -04:00
blitzmann
cccc7ff2d0 Merge branch 'master' into release/1.36
# Conflicts:
#	service/update.py
2018-03-25 13:03:52 -04:00
blitzmann
b7c45f4c6e Fix the update check logic; only go through the 5 latests updates, and if the check fails (specifically due to our new beta tagging for v2) then simply continue to the next one instead of failing outright 2018-03-25 03:33:02 -04:00
blitzmann
3964658d9a Enable cargohold for structures (#1414) 2018-03-25 03:18:34 -04:00
blitzmann
03212be54a Merge branch 'master' into test-3
# Conflicts:
#	eos/capSim.py
#	eos/effects/structurewarpscrambleblockmwdwithnpceffect.py
#	eos/effects/warpdisruptsphere.py
2018-03-25 03:03:59 -04:00
blitzmann
46098f2127 Merge branch 'master' into release/1.36 2018-03-25 03:00:28 -04:00
Ryan Holmes
2005d0b0b9 Merge pull request #1494 from Neugeniko/Issue#1439-2
Respect 'Factor in Reload' preference for sustainable tank (tidied up).
2018-03-25 02:59:48 -04:00
blitzmann
3293380515 styling fix 2018-03-24 18:18:16 -04:00
Neugeniko
68e5b22fe2 Implement effect for Standup Warp Disruption Burst Projector.
Make active so we can see its effect on capacitor.

(cherry picked from commit 03c2088e6b)
2018-03-24 17:59:49 -04:00
Neugeniko
0f7dd7cc0c Correct the structure guidance enhancers to apply bonuses to relevant charges.
(cherry picked from commit 5c20ee7ade)
2018-03-24 17:59:34 -04:00
Neugeniko
0713251685 Redefine scrambler operation.
If we are projecting effects, modify warpScrambleStatus all the time, and turn off modules requiring 'High Speed Maneuvering' (MWDs) or "Micro Jump Drive Operation" (MJD etc) if a scrambling script is loaded.

(cherry picked from commit 04c62aabea)
2018-03-24 17:59:23 -04:00
Neugeniko
3fda62e320 Redefne structure mounted disruptor operation
If we are projecting effects, modify warpScrambleStatus all the time, and turn off modules requiring 'High Speed Maneuvering' (MWDs) or "Micro Jump Drive Operation" (MJD etc) if a scrambling script is loaded.

(cherry picked from commit 0994158abd)
2018-03-24 17:59:08 -04:00
Neugeniko
5f1c2d6676 Redefine Warp Disruption Field Generators operation
If we are applying effects onto our self, disallowAssistance all the time, and go into low mass/high sig etc mode when no script is loaded.

If we are projecting effects, modify warpScrambleStatus all the time, and turn off modules requiring 'High Speed Maneuvering' (MWDs) or "Micro Jump Drive Operation" (MJD etc) if a scrambling script is loaded.

(cherry picked from commit 77a66a66ea)
2018-03-24 17:58:52 -04:00
blitzmann
c0ba559ca6 Merge branch 'master' into release/1.36 2018-03-24 17:52:22 -04:00
Ryan Holmes
164720db3d Merge pull request #1495 from Neugeniko/Issue#1482-2
Fix cap use for non repeatable modules.
2018-03-22 00:58:16 -04:00
blitzmann
bd90ec4bf0 Don't fail an api update when a skill has been removed (#1473) 2018-03-21 22:12:21 -04:00
blitzmann
d7e24dfa8f Merge branch 'Issue#1486' 2018-03-21 21:51:13 -04:00
Ebag333
2f1ad21392 Calculate DPS for beam type doomsdays. 2018-03-21 21:49:04 -04:00
Ebag333
687d539534 Enable misc info for doomsdays. 2018-03-21 21:48:46 -04:00
Ryan Holmes
bd6793bc19 Merge pull request #1498 from Neugeniko/Issue#1484
Create basic effects files for various modules.
2018-03-21 21:18:08 -04:00
Ryan Holmes
6dd6452c11 Merge pull request #1491 from Neugeniko/Capsimreload
CapSim changes to make reloadtime a variable.
2018-03-21 21:03:40 -04:00
Ryan Holmes
e59a1cd27b Merge pull request #1489 from Neugeniko/Issue#1488
Bomb Launcher Problems Issue#1488
2018-03-21 20:55:05 -04:00
blitzmann
24d14d5e19 Fix attribute that was changed on some items 2018-03-21 20:48:05 -04:00
blitzmann
e0584367c5 fix some update logic for the new beta releases 2018-03-21 20:32:59 -04:00
blitzmann
a2f48e8944 update effects and a few tox fixes 2018-03-21 20:18:00 -04:00
blitzmann
95ba18f8a9 Update database 2018-03-20 23:03:02 -04:00
blitzmann
122d8ef367 Add Monitor effects 2018-03-20 23:01:05 -04:00
blitzmann
281d2ed1f4 Add Praxis effect 2018-03-20 22:55:12 -04:00
blitzmann
48924774f9 Add drake navy issue effects 2018-03-20 22:53:34 -04:00
blitzmann
ee00914a2b Renamed attribute 2018-03-20 22:49:40 -04:00
Maru Maru
ed3083aa77 Fixed indentation issues and corrected fighters damage reduction factor to include sensitivity 2018-03-19 22:56:42 -04:00
Ryan Holmes
48d90c1eca Add login method to login request 2018-03-18 00:54:59 -04:00
Ryan Holmes
415b3db809 Merge branch 'esi-noserver' into esi 2018-03-18 00:47:07 -04:00
Ryan Holmes
53451dfaf6 Implement a setting for manual vs server login method 2018-03-18 00:46:53 -04:00
Ryan Holmes
49181dce2b Develop dialog to input SSO Info from pyfa.io, and handle the login. Still need to hook this up to a settings option 2018-03-17 21:08:11 -04:00
Ryan Holmes
199763bcca Separate the server login handler from the sso info handler 2018-03-17 20:31:38 -04:00
Ryan Holmes
033647da61 Move to a central login() method 2018-03-17 20:23:14 -04:00
Ryan Holmes
00e8e9d84a Send pyfa version to server when logging in 2018-03-17 20:18:28 -04:00
Neugeniko
96b701687b pep 8 2018-03-17 13:53:03 +11:00
Neugeniko
e1e90cc23e pep 8 2018-03-17 13:43:19 +11:00
Neugeniko
f41ecae8c8 Add a minimal effects files for mjfg, lance dd's,
reaper dd's, bosonic dd's and gtfo dd's.
2018-03-17 13:23:58 +11:00
Neugeniko
65ec8cf4ee Take into consideration reactivation time for non repeatable modules
like the assault DC and MJD when calculating their 'actual'
cycle time.
2018-03-17 11:44:29 +11:00
Neugeniko
4fc93f7089 Respect 'Factor in Reload' preference for sustainable tank (tidied up). 2018-03-17 09:39:50 +11:00
Ryan Holmes
3ec01a20c2 Bunch of renaming to bring variables up to speed 2018-03-16 18:15:48 -04:00
Ryan Holmes
8a10f0a766 sCrest > sEsi 2018-03-16 18:06:33 -04:00
Ryan Holmes
0db125177f Remove some more cruft 2018-03-16 18:05:49 -04:00
Ryan Holmes
a3f532f62f Remove some cruft, and show EVE fitting when selecting it, rather than double clicking 2018-03-16 18:01:47 -04:00
Neugeniko
234f36c8c0 Zero reload times when reloads are off so we can group modules
with normally different reload times.
2018-03-16 15:57:14 +11:00
Ryan Holmes
2c3957b2db Disable CREST settings in preferences 2018-03-15 23:07:34 -04:00
Ryan Holmes
79deca41c1 Fix skill fetching 2018-03-15 23:05:28 -04:00
Ryan Holmes
570df7f645 Fix a bug with the character selection, and automatically assign a character after logging into eve via character editor 2018-03-15 22:13:56 -04:00
Ryan Holmes
8153b80d05 Work around for sso character not being delete from characters after sso deleted, some other minor tweaks 2018-03-15 19:58:17 -04:00
Ryan Holmes
b74654a5b3 Fix relationships for sso / characters 2018-03-15 02:58:58 -04:00
Ryan Holmes
4c6f68b07e Move sso character stuff to character file (for now while I try to figure out how to properly delete these) 2018-03-14 18:46:49 -04:00
Ryan Holmes
9839efc2dc Fix sso character relationship to not delete sso character (whoops) 2018-03-14 18:40:38 -04:00
Ryan Holmes
9d379d966c Implement working character associations with SSO character 2018-03-14 17:53:48 -04:00
Neugeniko
61086989dc Need to wait speed + reactivation delay between void bomb. 2018-03-14 16:04:15 +11:00
Neugeniko
023ea43611 Divide by numShots not need as we do that below. 2018-03-14 15:39:20 +11:00
Neugeniko
044e032ab3 Allow variable reload time in CapSim. 2018-03-14 13:40:49 +11:00
Neugeniko
da7b95041d Allow variable reload time in CapSim. 2018-03-14 13:40:31 +11:00
blitzmann
f52f39984f Add api view back to character editor (non functioning) 2018-03-12 21:13:18 -04:00
blitzmann
1513b07071 set cargo amoutninput to select all instead of inserstion end 2018-03-11 19:40:38 -04:00
blitzmann
be19b7414a Make a relation between characters and sso chars 2018-03-11 19:39:58 -04:00
blitzmann
75f9a0252a Start working on character to SSO character mapping 2018-03-11 17:38:51 -04:00
blitzmann
5169c35d5c Implement SSO Character delete, Remove some unused character logout code (still need to hook this up with character delete functionality) 2018-03-11 16:50:12 -04:00
blitzmann
bbdf1ee6cc More tweaks / error handling for esi 2018-03-11 15:31:41 -04:00
blitzmann
6c6e8a9972 Do some error handling 2018-03-11 14:47:57 -04:00
Neugeniko
97742b08c8 Attribute disallowRepeatingAction has been renamed to
disallowRepeatingActivation in the database. Make appropriate
modification to instances of this attribute name in code.

(cherry picked from commit ff607e4b03)
2018-03-11 12:19:43 -04:00
Ryan Holmes
8ef4c61fc3 Merge pull request #1481 from Neugeniko/Issue#1480
Attribute disallowRepeatingAction has been renamed.
2018-03-11 12:19:12 -04:00
Neugeniko
ff607e4b03 Attribute disallowRepeatingAction has been renamed to
disallowRepeatingActivation in the database. Make appropriate
modification to instances of this attribute name in code.
2018-03-11 21:38:46 +11:00
Maru Maru
4b2a58ca6f Updated .gitignore to include the generated export files 2018-03-11 03:51:41 -04:00
Maru Maru
0de950862b Added a crude data exporter for effs
Known to be quite buggy and needs formating adjustments.
In order to export fit data it first requires data to be exported with pyfas minimal html exporter.
The resulting pyfaFits.html file should be placed in the project directory before running effs_stat_export.py.
2018-03-11 03:28:48 -04:00
blitzmann
30c1ab125c Increase esipy requirement 2018-03-10 17:58:47 -05:00
blitzmann
8276746dad Do custom EsiPY prefix, change sso endpoint to look at pyfa.io instead of localhost 2018-03-10 15:46:23 -05:00
blitzmann
5560ef4d34 Merge branch 'test-3' into esi
# Conflicts:
#	eos/saveddata/character.py
#	service/character.py
#	service/eveapi.py
#	service/pycrest/eve.py
2018-03-10 15:32:21 -05:00
blitzmann
fac31f7254 Merge branch 'py3-requests-proxy' of git://github.com/minlexx/Pyfa into minlexx-py3-requests-proxy 2018-03-10 12:10:54 -05:00
blitzmann
1efcc8d3ef style 2018-03-10 12:09:51 -05:00
Neugeniko
03c2088e6b Implement effect for Standup Warp Disruption Burst Projector.
Make active so we can see its effect on capacitor.
2018-03-10 10:08:22 +11:00
Neugeniko
5c20ee7ade Correct the structure guidance enhancers to apply bonuses to relevant charges. 2018-03-10 00:50:58 +11:00
Neugeniko
04c62aabea Redefine scrambler operation.
If we are projecting effects, modify warpScrambleStatus all the time, and turn off modules requiring 'High Speed Maneuvering' (MWDs) or "Micro Jump Drive Operation" (MJD etc) if a scrambling script is loaded.
2018-03-07 15:29:31 +11:00
Neugeniko
0994158abd Redefne structure mounted disruptor operation
If we are projecting effects, modify warpScrambleStatus all the time, and turn off modules requiring 'High Speed Maneuvering' (MWDs) or "Micro Jump Drive Operation" (MJD etc) if a scrambling script is loaded.
2018-03-07 15:27:53 +11:00
Neugeniko
77a66a66ea Redefine Warp Disruption Field Generators operation
If we are applying effects onto our self, disallowAssistance all the time, and go into low mass/high sig etc mode when no script is loaded.

If we are projecting effects, modify warpScrambleStatus all the time, and turn off modules requiring 'High Speed Maneuvering' (MWDs) or "Micro Jump Drive Operation" (MJD etc) if a scrambling script is loaded.
2018-03-07 15:25:57 +11:00
Alexey Minnekhanov
0b615b578a Bring back proxy settings in network preferences view 2018-03-05 18:02:34 +03:00
Alexey Minnekhanov
53f07db5fe Network: apply proxy settings for requests library call 2018-03-05 16:24:00 +03:00
Alexey Minnekhanov
4d4815d6af Network: change User-Agent header from "urllib" to "requests" with version 2018-03-05 16:16:06 +03:00
blitzmann
b296e0709c Merge branch 'master' into test-3 2018-03-05 00:07:28 -05:00
blitzmann
373e0a390b Don't multiple HP of structure, instead assign it. Fixes #1460 2018-03-04 19:42:28 -05:00
blitzmann
222037ff40 Remove proxy support for the time being 2018-03-04 18:10:40 -05:00
blitzmann
4fac10ccb7 Fix update checker, migrate to requests package for all network stuff. The eveapi package is probably not going to work with caching and whatnot, but pyfa doesn't use it and XML API is EOL anyway 2018-03-04 18:08:34 -05:00
blitzmann
7956ca0409 Merge remote-tracking branch 'origin/master' into test-3
# Conflicts:
#	config.py
2018-03-04 16:47:08 -05:00
Ryan Holmes
5b27d0559f Merge pull request #1464 from pyfa-org/release/v1.35.2
Bump version
2018-03-04 16:44:28 -05:00
blitzmann
85157fdf85 Bump version 2018-03-04 16:44:00 -05:00
blitzmann
caf8e7f2d6 Test something on mac 2018-03-03 17:40:40 -05:00
blitzmann
124bb027ab Use bs4.UnicodeDammit to handle different encodings for file imports (fits only for now, can look into expanding for other file import types) 2018-03-03 14:21:55 -05:00
blitzmann
d5ca14ca52 Remove encoding checks for eft import (#1459) 2018-03-03 00:50:56 -05:00
blitzmann
99982aa547 Merge branch 'master' into test-3 2018-03-02 00:17:54 -05:00
blitzmann
3f4493c0ea Another fix for #1403 2018-03-02 00:17:33 -05:00
blitzmann
cdb604b29f Merge remote-tracking branch 'origin/py3' into test-3 2018-03-01 23:42:29 -05:00
blitzmann
d3b8cebc8a Merge branch 'master' into test-3 2018-03-01 23:42:22 -05:00
Ryan Holmes
7d245660bc Merge pull request #1455 from pyfa-org/issue/1451
Don't fail when trying to project a module that can't be projected.
2018-03-01 23:41:50 -05:00
blitzmann
b1e40427a3 Tox 2018-03-01 23:41:39 -05:00
blitzmann
73925df24b Don't fail when trying to project a module that can't be projected. 2018-03-01 23:24:00 -05:00
Ryan Holmes
04fbd3b548 Merge pull request #1454 from Neugeniko/py3
Resolves issue #1453 with xmlparser.ParseFile(file) wanting bytes.
2018-03-01 20:59:08 -05:00
Neugeniko
d9dd94d6c3 Update character.py
Resolves issue #1453 with xmlparser.ParseFile(file) wanting bytes.
2018-03-02 12:00:11 +11:00
blitzmann
963353a1dc Merge branch 'master' into test-3 2018-03-01 00:40:40 -05:00
Ryan Holmes
3411dcfd91 Merge pull request #1446 from pyfa-org/issue/1445-master
Issue/1445 master
2018-03-01 00:30:24 -05:00
blitzmann
ae6434affb Fix issue with importing EVE API XML 2018-03-01 00:30:08 -05:00
blitzmann
f773e0a935 fix misplaced parentheses
(cherry picked from commit 2a60216a92d39bb200c26bce8573484f54a80dc5)
2018-03-01 00:26:52 -05:00
blitzmann
7ab3ad9e08 Don't delete and recreate skills when updating char sheet. Instead, get each individual skill and change level.
(cherry picked from commit 55c79c1bafaa9a1b159b73a72c6480f7e8d6cb6b)
2018-03-01 00:26:47 -05:00
blitzmann
3f3a82ca6c Merge branch 'py3' of https://github.com/pyfa-org/Pyfa into test-3 2018-02-28 22:02:22 -05:00
blitzmann
e902cc5780 Add event.skip() to fit rename textCtrl focus loss 2018-02-28 22:00:48 -05:00
Ryan Holmes
fcb6952119 Merge pull request #1444 from Neugeniko/py3
Ensure graph frame unbinds its event handlers.
2018-02-27 21:09:10 -05:00
Neugeniko
3eecd57979 Update graphFrame.py 2018-02-28 03:17:37 +11:00
blitzmann
6e73b9fefd Tox 2018-02-27 00:52:15 -05:00
blitzmann
f0b0285f77 Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2018-02-27 00:46:10 -05:00
blitzmann
e706a015b3 Merge branch 'issue/1397' into development 2018-02-27 00:45:53 -05:00
blitzmann
a804f9a1ad Fix working on missing skills context menu (#1412)
(cherry picked from commit 96c13c344a)
2018-02-27 00:45:46 -05:00
blitzmann
9e1b7dbb87 Add ability to drag a module from fitting window to projected pane 2018-02-27 00:44:42 -05:00
blitzmann
551ffe9ed3 Quick fix for #1430 2018-02-27 00:23:29 -05:00
blitzmann
cbe1ce5bcd Merge branch 'master' into test-3 2018-02-27 00:16:45 -05:00
Ryan Holmes
917afd5067 Merge pull request #1441 from pyfa-org/issue/1440
Convert sec status to float on character import (#1440)
2018-02-27 00:15:59 -05:00
blitzmann
c3fb9231a4 Convert sec status to float on character import (#1440) 2018-02-27 00:15:20 -05:00
blitzmann
2ed2f8e262 Fix issue with losing wrapper for FittingView when closing 2018-02-25 12:04:57 -05:00
blitzmann
390d90ac47 Merge branch 'issue/1434' into test-3 (#1434)
# Conflicts:
#	gui/builtinViews/fittingView.py
2018-02-25 01:57:36 -05:00
blitzmann
4c877e7a5a re-enable the tab preview 2018-02-25 01:45:43 -05:00
blitzmann
972fe433f7 remove vestigial file 2018-02-25 00:11:13 -05:00
blitzmann
ecaf6f96a9 guage: respect animation setting (#1434) 2018-02-25 00:10:17 -05:00
Ryan Holmes
8541e2a869 Merge pull request #1438 from pyfa-org/issue/1433
DNA export should respect Export Charges setting
2018-02-24 23:50:21 -05:00
blitzmann
48a2963472 Merge branch 'issue/1433' into test-3 2018-02-24 23:40:26 -05:00
blitzmann
f245a02372 DNA export should respect Export Charges setting 2018-02-24 23:37:53 -05:00
blitzmann
1c16343b46 Merge branch 'master' into test-3 2018-02-24 22:24:16 -05:00
Ryan Holmes
d0f66f2d16 Merge pull request #1437 from pyfa-org/issue/1432
Always open imports in a new tab (#1432)
2018-02-24 22:23:13 -05:00
blitzmann
df0c6ed269 Merge branch 'bug/amount-modal' into test-3 2018-02-24 22:21:02 -05:00
Ryan Holmes
9a4e26a5be Merge pull request #1436 from pyfa-org/bug/amount-modal
Handle getting value for Change Amount differently for projected fits (#1435)
2018-02-24 22:20:51 -05:00
blitzmann
2b87f91279 tox fix 2018-02-24 22:20:24 -05:00
blitzmann
9b48b61b9b Merge branch 'bug/amount-modal' into test-3 2018-02-24 22:17:22 -05:00
blitzmann
57e67b3699 Handle getting value for Change Amount differently for projected fits 2018-02-24 22:17:04 -05:00
blitzmann
15e60c3d24 Always open imports in a new tab (#1432) 2018-02-24 21:11:53 -05:00
blitzmann
ebf07db6c6 Partial fix for #1430 2018-02-24 19:01:54 -05:00
blitzmann
1559767201 Ensure that the event is propagated when the graph window handles FitChanged (#1430) 2018-02-24 18:21:32 -05:00
blitzmann
6e5e52df37 See #1429, version file not currently applied 2018-02-24 17:13:50 -05:00
blitzmann
e9289c102b Fix issue in notebook tab preview (this feature hasn't been enabled for a while, but we may want to turn it back on eventually. As such, ensure that we don't run into any problems here) 2018-02-24 13:53:56 -05:00
blitzmann
81d61d7e29 lol context management not available in 4.0.0b2, and can't update to >4.0 until #1421 is addressed 2018-02-24 13:49:17 -05:00
blitzmann
9ab4ec2d4f Convert AutoBufferedPaintDC > BufferedPaintDC (and use spiffy new context management). See #1418 2018-02-24 13:45:36 -05:00
blitzmann
565332dfcd Set wx requirement to v4b2, see #1421 2018-02-24 13:28:45 -05:00
blitzmann
f94fbd740a Merge branch 'bug/amount-modal' into test-3
# Conflicts:
#	gui/builtinContextMenus/amount.py
2018-02-24 02:55:40 -05:00
Ryan Holmes
a2719ec2f7 Merge pull request #1427 from pyfa-org/bug/amount-modal
Redesign amount modal
2018-02-24 02:54:38 -05:00
blitzmann
1da12cb18e tox fix 2018-02-24 02:54:23 -05:00
blitzmann
e0cddcd061 Redesign amount modal, basing style off wx.TextEntryDialog (but not a wx.TextEntryDialog, because there are possibilities to do a few different things in this modal) 2018-02-24 02:47:13 -05:00
blitzmann
78f632a4f6 Merge remote-tracking branch 'origin/master' into test-3 2018-02-24 02:03:29 -05:00
Ryan Holmes
52754535a0 Merge pull request #1426 from pyfa-org/issue/1416
Issue/1416
2018-02-24 02:02:57 -05:00
blitzmann
a9db667c9c Do the same treatment to Target Resists as Damage Patterns 2018-02-24 02:01:23 -05:00
blitzmann
f442632fbc Fix importing damage profiles which included overwriting existing ones and then performing a delete on one of them. #1416 2018-02-24 01:49:09 -05:00
blitzmann
362086cc83 Fix type in database default for damage types 2018-02-24 01:47:05 -05:00
blitzmann
73d59569ff Merge remote-tracking branch 'origin/master' into test-3
# Conflicts:
#	gui/characterEditor.py
2018-02-23 23:28:33 -05:00
Ryan Holmes
cb4fadf84c Merge pull request #1425 from pyfa-org/issue/1419
Migrate the Save Character As dialog tot he same dialog / validator a…
2018-02-23 23:26:44 -05:00
blitzmann
e85d144928 Migrate the Save Character As dialog tot he same dialog / validator as the Edit Character Name (#1419) 2018-02-23 23:25:11 -05:00
blitzmann
07099f4057 Fix working on missing skills context menu (#1412)
(cherry picked from commit 96c13c344a)
2018-02-23 01:17:18 -05:00
blitzmann
96c13c344a Fix working on missing skills context menu (#1412) 2018-02-23 01:15:57 -05:00
blitzmann
8f42822d9e Add roman package as a requirement, and remove the roman module from pyfa 2018-02-23 01:04:31 -05:00
blitzmann
c5ba79cfbb Merge branch 'master' into test-3
# Conflicts:
#	.gitignore
2018-02-23 01:02:51 -05:00
Ryan Holmes
f69f76856a Merge pull request #1391 from BlueShanks/acceptRomanNumerals
Character Editor: accept skill plans in Roman numerals too
2018-02-23 01:01:57 -05:00
Ryan Holmes
3a23d820cc Merge branch 'master' into acceptRomanNumerals 2018-02-23 01:01:07 -05:00
blitzmann
c917d22db5 tox fixes for the roman library to prevent travis from yelling at us 2018-02-23 01:00:43 -05:00
blitzmann
c3f8b102fa Add the romans library to pyfa itself to avoid having to modify the binaries 2018-02-23 00:57:26 -05:00
blitzmann
5e566db47d Fix attribute override export / import (#1420) 2018-02-23 00:36:52 -05:00
blitzmann
5b2c5907ed Skills needed export (#1412): Need to encode the string before we gzip it 2018-02-23 00:23:45 -05:00
blitzmann
dd78a41171 Fix HTML export (more encoding stuff). Also fix old bug in which unicode fit names don't display correctly in the webbrowser. #1411 2018-02-23 00:13:14 -05:00
blitzmann
201fb4e241 Remove all encoding bits from fit importing. Might not work 100% of the time, but as 2.0 gets introduced to the community, we'll get reports of possible problems. #1410 2018-02-23 00:00:53 -05:00
blitzmann
8abd25fe40 Use a scolled window in preference pages 2018-02-19 23:32:44 -05:00
blitzmann
d59c897921 Fix image list in preferences dialog 2018-02-19 01:20:57 -05:00
Ryan Holmes
cb89d13d9f Merge pull request #1409 from pyfa-org/bug/1403
Remove some defunct items from market service
2018-02-19 00:16:42 -05:00
blitzmann
a1aa78adc0 Remove some defunct items from market service 2018-02-18 23:28:17 -05:00
blitzmann
4bbbd33917 Return 0 instead of -1 when there is no charge on a weapon. It was changed from None to -1 during the py3 conversion (as None can no longer be compared against non-None types). -1 was throwing the capSim off by quite a bit. See #1405 2018-02-18 22:55:31 -05:00
blitzmann
42ccc53166 bit of clean up for reload setting 2018-02-18 20:35:46 -05:00
blitzmann
35ad21da38 Add pattern for commit hashes to update dialog 2018-02-17 16:27:12 -05:00
blitzmann
72efef818f Fix version stuff 2018-02-17 13:59:19 -05:00
blitzmann
5571bae8b2 Fix situation in which event propagation was not working properly for structures 2018-02-17 12:47:07 -05:00
blitzmann
8b2cfe44f2 Merge remote-tracking branch 'origin/master' into test-3
# Conflicts:
#	config.py
#	eos/saveddata/fighter.py
2018-02-17 12:31:58 -05:00
Ryan Holmes
5ea7215ec0 Merge pull request #1400 from pyfa-org/release/v1.35.1
Release/v1.35.1
2018-02-17 12:28:48 -05:00
blitzmann
e2ac90a040 Bump release 2018-02-17 12:27:12 -05:00
blitzmann
6ab84240a2 Add missing effect for scram script for standup warp disruptor. Update database to make sure everything is updated. 2018-02-17 12:22:35 -05:00
blitzmann
12a526fa9e Fix for some standup fighter errors 2018-02-17 11:59:51 -05:00
blitzmann
82e3db1ffb Centralize version string getting. Still trying to work out how we should handle automatic version increments so we don't have to modify files all the time. Remove version file from repo (should only be a thing when building binaries) 2018-02-17 11:10:42 -05:00
blitzmann
e779bb84e2 Fix for #1383. Due to the changed mechanics of None in py3, getModifiedItemAttr was defaulted to 0 instead of None. This adds an explicit default of None when trying to find the allowed drone group attribute 2018-02-17 10:53:29 -05:00
BlueShanks
bd0fcbef3a Fixed style issues which were throwing errors
The code was failing an automatic test because of style issues, which are hopefully fixed now
2018-02-17 18:26:00 +10:00
blitzmann
0456cb2f96 Merge remote-tracking branch 'origin/master' into test-3 2018-02-16 22:26:10 -05:00
blitzmann
cafd92f169 add a todo 2018-02-16 22:26:02 -05:00
blitzmann
05f08970c9 fix character editor not spawning on OSX 2018-02-16 20:40:51 -05:00
Ryan Holmes
f66485c48a Merge pull request #1396 from pyfa-org/bug/citadels
Bug/citadels
2018-02-16 17:42:50 -05:00
Ryan Holmes
2153c05183 Merge branch 'master' into bug/citadels 2018-02-16 17:42:03 -05:00
blitzmann
f66c36e42b disable tests preventing branch from passing tox 2018-02-16 17:32:45 -05:00
DarkPhoenix
8771de9c1f Fix retribution rof effect 2018-02-16 23:03:51 +03:00
blitzmann
fa3cf90421 add / update effects for citadels 2018-02-16 00:44:26 -05:00
blitzmann
636ee1de23 Get new Standup fighters working 2018-02-15 22:26:42 -05:00
blitzmann
b36bf8fb21 Fix issue restricting structure modules from fitting onto a structure 2018-02-15 21:03:25 -05:00
blitzmann
55ad52919e Add missing Ishkur effect (drone tracking) 2018-02-15 20:09:50 -05:00
blitzmann
0648feaa7b Handle a couple of group renamings 2018-02-15 20:07:57 -05:00
blitzmann
e16ae88ed9 Fix the item diff script not looking at all items needed 2018-02-15 20:07:06 -05:00
BlueShanks
c5c673e360 moved a line back to where it was
results in a net smaller diff
2018-02-16 00:46:51 +10:00
BlueShanks
5cd21da7b1 Character Editor: accept skill plans in Roman numerals too 2018-02-16 00:19:56 +10:00
blitzmann
da0f89ef91 Merge commit 'refs/tags/v1.35.0^{}' into test-3 2018-02-14 22:25:45 -05:00
blitzmann
efc3f1ba7d Don't display console for windows application 2018-02-14 22:23:42 -05:00
Ryan Holmes
8d7f0b56f1 Merge pull request #1382 from pyfa-org/release/v1.35.0
Release/v1.35.0
2018-02-14 22:19:46 -05:00
blitzmann
89b6e8f8c3 fix tox stuff 2018-02-14 22:15:48 -05:00
blitzmann
c6e715aa5c Merge branch 'master' into test-3 2018-02-14 22:07:33 -05:00
blitzmann
0e93136157 Merge branch 'release/v1.35.0' 2018-02-14 22:07:20 -05:00
blitzmann
89c84aac96 update effect headers, add some icons, update DB to final 1248987 2018-02-14 22:05:55 -05:00
blitzmann
649ba9f3e4 Merge branch 'master' into singularity 2018-02-14 21:31:54 -05:00
blitzmann
2d38fd4773 Update to tq 2018-02-14 01:30:24 -05:00
blitzmann
23f0f48c80 Use a special dev database for py3 branch 2018-02-14 01:16:49 -05:00
Ryan Holmes
6254fa3e23 Merge pull request #1380 from pyfa-org/bug/1377
Add stacking penalties to dromi fighters
2018-02-12 23:35:40 -05:00
blitzmann
8686c02b1f Add stacking penalties to dromi fighters 2018-02-12 23:33:16 -05:00
blitzmann
fe1c4cc4d4 Make a callback for token refresh, not sure how I'm gonna handle this one yet 2018-02-12 21:43:23 -05:00
blitzmann
ed649dd4c7 Merge branch 'test-3' into esi 2018-02-11 23:23:30 -05:00
blitzmann
33618f12f7 Fix issue when error happens before wx is even initialized traceback is never set 2018-02-11 23:22:37 -05:00
blitzmann
33eccaa374 Merge branch 'test-3' into esi
# Conflicts:
#	requirements.txt
2018-02-11 23:17:50 -05:00
blitzmann
5f0ce58c29 Merge branch 'master' into test-3
# Conflicts:
#	gui/builtinShipBrowser/fitItem.py
#	service/port.py
2018-02-11 21:29:17 -05:00
blitzmann
c329f5eeb8 Bump up the wxPython requirement to 4.0.1 2018-02-11 21:22:35 -05:00
blitzmann
320a0230f4 fix version data file in mac spec file 2018-02-11 12:32:34 -05:00
blitzmann
d94d49f0a9 Add misc column to booster panel, and show booster duration 2018-02-10 20:45:26 -05:00
Ryan Holmes
9bfc5b35b6 Merge pull request #1378 from pyfa-org/bug/1377
Fix for #1377 - group up support fighters and modify the bonus based …
2018-02-10 14:14:57 -05:00
blitzmann
0f30ea554d Fix for #1377 - group up support fighters and modify the bonus based on amount active 2018-02-10 14:14:31 -05:00
blitzmann
50dd74dbe8 Add packaging requirement, and use it's PEP 440 version parsing for version comparisons. 2018-02-10 00:59:25 -05:00
blitzmann
9c355d8f96 update requirements 2018-02-09 18:53:14 -05:00
blitzmann
7b0f672f04 Get encrypted refresh tokens working 2018-02-09 18:25:53 -05:00
blitzmann
33bf5234d0 Goodbye eveapi! You have served us well all these years!
Start stripping XML API stuff and implement ESI skill fetching.
2018-02-09 00:42:59 -05:00
blitzmann
cb392e7e5f Rename a few things 2018-02-08 01:52:38 -05:00
blitzmann
dfba033190 Implement posting fit to EVE server 2018-02-08 01:50:52 -05:00
blitzmann
5fbe623ae6 get fit deletion working. Need to be aware that we are still using cached fit listing... 2018-02-08 01:38:24 -05:00
blitzmann
e025bff99b Get ESI fitting import working completely. Use a file cache for EsiApp to prevent long startup times (possibly cache for about a week or so, and start in background if it needs to be gotten again?) 2018-02-08 01:24:40 -05:00
blitzmann
e77dddc15b More work on getting fittings form a character via ESI. It's starting to be come a pain working with this client with having to background it until it initializes. Thinking about rolling my own, considering we only need a few calls and not a whole package. 2018-02-07 02:07:42 -05:00
blitzmann
eea8019593 Get fitting browser to show up with proper characters (still not functional). Start testing ways to store the esipy app on the service (it can take a few seconds to initialize due to network calls) 2018-02-07 01:21:22 -05:00
blitzmann
c7360c8cc3 Get logging into EVE working and SSO characters saving, along with client hashes being stored alongside characters. 2018-02-07 00:44:37 -05:00
Ryan Holmes
f81179db4b Merge pull request #1374 from pyfa-org/bug/1355
Fix for #1355 - we were not properly deleting the fit from the list b…
2018-02-06 00:37:56 -05:00
blitzmann
2d7eed4aac Fix for #1355 - we were not properly deleting the fit from the list being passed into the Import event (which the history functionality piggy backs on). This also fixes the same bug with the import list. 2018-02-06 00:36:57 -05:00
blitzmann
96828a5611 Add assualt damage control effect 2018-02-05 23:12:58 -05:00
blitzmann
8a0f8ae609 Add module renames from singularity 2018-02-05 22:52:24 -05:00
Ryan Holmes
ac8f805fcb Merge pull request #1373 from pyfa-org/bug/1372
Add stacking penalty to Fighter's MWD ability
2018-02-05 22:46:37 -05:00
blitzmann
9f3c2ca7a8 Add stacking penalty to Fighter's MWD ability 2018-02-05 22:34:25 -05:00
blitzmann
2376148380 Start ripping CREST stuff out, add new SSOCharacter stuff in. Long process ahead. 2018-02-02 02:05:49 -05:00
blitzmann
2e8d7d3610 add markdown2 to requirements.txt 2018-02-01 23:09:08 -05:00
blitzmann
3179016aed Enhance the update modal to show a web view with html-rendered markdown of release ntoes 2018-02-01 21:58:29 -05:00
Ryan Holmes
514db91d7a Merge pull request #1367 from burnsypet/issue-1360
Remove energy warfare resistance on capNeed calc
2018-01-31 23:50:44 -05:00
Ryan Holmes
269d3f326d Update ISSUE_TEMPLATE.md 2018-01-31 23:10:27 -05:00
Ryan Holmes
b04fcb0d15 Merge pull request #1366 from burnsypet/issue-1362
Include service modules in EFT export
2018-01-31 22:59:44 -05:00
blitzmann
a29b3da8a6 Update DB and effects 2018-01-30 00:05:11 -05:00
blitzmann
18a5e35e80 Merge commit 'refs/tags/v1.34.0^{}' into singularity
# Conflicts:
#	eve.db
#	gui/builtinViewColumns/misc.py
2018-01-29 23:34:24 -05:00
burnsypet
3072dbb3ff Remove energy warfare resistance on capNeed calc
When calculating the capactitor need of an energy nosferatu the
amount was being modified incorrectly by the energy warfare
resistance of the ship. Change to only apply energy warfare
resitance modifier if this is a projected effect.
2018-01-26 14:48:35 +00:00
burnsypet
b103f0df7e Include service modules in EFT export
Change to service/port.py to include Slot.SERVICE in export
Also fixes a crash when attempting to export citadel with service
modules to CREST
2018-01-26 13:53:07 +00:00
blitzmann
9e8166c13d Add ESI service skeleton, and my customer ESI Proxy class 2018-01-11 20:54:33 -05:00
blitzmann
9f7e4e0dc0 Fix issue with market search (None / int comparison) 2018-01-10 21:39:50 -05:00
blitzmann
29d175c7b3 Fix for error that happens when switching to/from firepower/mining 2018-01-10 00:51:21 -05:00
Ryan Holmes
0c971a127c Fix loggerhead drone bonus (#1348) (#1358) 2018-01-02 01:43:55 -05:00
blitzmann
40ce7b7c0b Merge branch 'master' into test-3
# Conflicts:
#	.gitignore
#	eos/saveddata/character.py
#	service/network.py
#	service/price.py
2017-12-10 22:36:15 -05:00
Ryan Holmes
a8060a5e15 Merge pull request #1347 from pyfa-org/release/v1.34.0_3
Release/v1.34.0 3
2017-12-10 18:17:21 -05:00
blitzmann
cc063d1934 Bump release 2017-12-10 18:07:45 -05:00
blitzmann
531721ef5e Merge branch 'master' into development 2017-12-10 16:25:20 -05:00
blitzmann
2936b88c3d code cleanup 2017-11-27 21:05:06 -05:00
blitzmann
2365112292 Some file cleanup 2017-11-26 18:36:20 -05:00
blitzmann
1daef5354d remove old wx test file 2017-11-26 18:31:48 -05:00
blitzmann
6f19d45c6d fix mac spec 2017-11-26 18:29:03 -05:00
blitzmann
ac7908c62c rearrange spec files 2017-11-26 18:15:33 -05:00
blitzmann
c000b19986 Finish pulling all the cruft out of pyfa.py relating to logging and error handling. All that is now done in separate areas.
Also finally did some major reworking on the error dialog. Now it doesn't spawn a new wxApp and wxFrame for each and every error - attaches to MainFrame and sticks around, having exceptions append to it rather than spawn a new one. In the case that an error happens before MainFrame is available, it spins up a new wxApp. Yay cleanup!
2017-11-26 03:57:00 -05:00
blitzmann
1da127c898 Working commit to better handle errors 2017-11-26 01:54:36 -05:00
blitzmann
fcdf55632f working commit to try to clean up pyfa.py and re-implement version checking 2017-11-26 01:08:02 -05:00
blitzmann
dd3bc66896 Remove old py<2.6 OrderedDict compat module 2017-11-25 22:40:23 -05:00
blitzmann
da67cdba9b Get a mailmap working for properish tracking of authors 2017-11-25 20:34:03 -05:00
blitzmann
8850da6cdb OS X bundling puts it all into one file, which is extracted. We need to make sure the script knows of the actual path 2017-11-25 20:11:05 -05:00
blitzmann
7d46d7e22d fix crash dealing with CREST fitting window's cache timer 2017-11-25 17:31:19 -05:00
blitzmann
b3157303cd Reenable error dialog and remove versioning info - want to look into a more uniform way of doing this if possible, and the requirements are all changing. 2017-11-25 13:49:48 -05:00
blitzmann
65e17119af Deprecation fix 2017-11-25 13:12:26 -05:00
blitzmann
f7b509f9a9 code styling 2017-11-25 04:04:13 -05:00
blitzmann
dea775058d * Try other price sources if user's preferred fails (#1342)
* Handle cached prices better when eve-marketdata returns 0 for lack of price data (#1334)
2017-11-25 02:50:46 -05:00
blitzmann
3c405f51d8 Remove platform-specific CREST checks (add for mac-deprecated client) 2017-11-24 17:27:44 -05:00
blitzmann
337f0a9c8a Fix stretchspacers 2017-11-24 17:23:04 -05:00
blitzmann
53936a3e66 Fix additional panel note toggling correctly 2017-11-24 12:44:00 -05:00
blitzmann
30a6e29b39 Fix slight sizing issue with toggle panel header arrow 2017-11-24 12:30:46 -05:00
blitzmann
f3dc3bc654 Fix tabs not disabling. It was primarily an issue with event propagation not being handled correctly, as well as some missing helper code in chrome_tabs 2017-11-24 12:22:21 -05:00
blitzmann
0a935cf149 fix gtk warnings 2017-11-24 02:02:09 -05:00
blitzmann
5697da7ec2 fix upgrade 2017-11-24 01:23:04 -05:00
blitzmann
a7086b78cb Fix an issue with with Cap Power Relay using an effect without an expecting source attribute. Used to work, but with changes to getModifiedItemAttr need to default these to None 2017-11-24 00:55:23 -05:00
blitzmann
e032c9c5b1 fix item stats dialog 2017-11-23 22:48:37 -05:00
blitzmann
46b0aded03 fixes 2017-11-23 22:43:41 -05:00
blitzmann
d23398ce29 fix for boosters 2017-11-23 20:51:03 -05:00
blitzmann
5e0a5da6d5 more post-merge work 2017-11-23 12:51:43 -05:00
blitzmann
6e112b9ed5 Fix issues with merge 2017-11-23 11:38:08 -05:00
blitzmann
b30b3fcbf1 Merge branch 'master' into test-3
Conflicts:
	eos/gamedata.py
	eos/saveddata/booster.py
	eos/saveddata/character.py
	gui/builtinAdditionPanes/commandView.py
	gui/builtinContextMenus/commandFits.py
	gui/builtinMarketBrowser/itemView.py
	gui/builtinMarketBrowser/marketTree.py
	gui/builtinPreferenceViews/pyfaGeneralPreferences.py
	gui/builtinShipBrowser/categoryItem.py
	gui/builtinShipBrowser/fitItem.py
	gui/builtinShipBrowser/navigationPanel.py
	gui/builtinShipBrowser/raceSelector.py
	gui/builtinShipBrowser/shipItem.py
	gui/builtinStatsViews/priceViewFull.py
	gui/builtinViews/fittingView.py
	gui/characterEditor.py
	gui/characterSelection.py
	gui/chromeTabs.py
	gui/crestFittings.py
	gui/itemStats.py
	gui/mainFrame.py
	scripts/itemDiff.py
	service/price.py
2017-11-23 11:19:05 -05:00
Ryan Holmes
455fea75c0 Merge pull request #1341 from pyfa-org/bug/1335
Bug/1335
2017-11-22 23:22:53 -05:00
blitzmann
bd181559ed Don't show Side Effects menu if there are no side effects (eg: Synths) 2017-11-22 23:19:03 -05:00
blitzmann
967128cb69 Added missing effect for shield booster penalty on crash 2017-11-22 23:16:28 -05:00
blitzmann
5fa43138b3 Merge branch 'master' into development
Conflicts:
	config.py
2017-11-22 23:06:36 -05:00
blitzmann
f0baba10df Update effects 2017-11-22 23:04:32 -05:00
blitzmann
7058018aed Fix alpha clones 2017-11-22 21:51:40 -05:00
blitzmann
d45d7204d2 Merge branch 'release/v1.33.2' into development
Conflicts:
	config.py
2017-11-22 21:51:19 -05:00
Ryan Holmes
b596447095 Fix issue with deleting a fit while having certain other fits open (#1339) (#1340)
Also, bump dev version
2017-11-22 21:44:15 -05:00
blitzmann
25df05a15d Clean up alpha clones for December 2017 release - also runs a few sanity checks to make sure that CCP doesn't forget to include a skill in one of the races 2017-11-22 21:42:25 -05:00
blitzmann
4a33365195 Add some debug and fix indentation issue causing fit deletion to crash open fittings views 2017-11-22 01:45:31 -05:00
blitzmann
5d5646df79 Fix BlankPage having binding issue 2017-11-22 01:45:06 -05:00
blitzmann
405a965046 Fix issue with loading fighters 2017-11-22 01:44:48 -05:00
blitzmann
4138088d4a Do not create a new fitting view every time we switch fits. 2017-11-21 23:46:50 -05:00
blitzmann
de44e6f932 Get rid of some annoying messages 2017-11-21 23:46:33 -05:00
blitzmann
d4df989427 Remove handlers from unbind (see https://github.com/wxWidgets/Phoenix/issues/624) 2017-11-21 23:04:51 -05:00
blitzmann
6c8b143936 Tentative .spec file for linux 2017-11-21 00:32:45 -05:00
blitzmann
0f94557699 Use wx.AutoBufferedPaintDC instead of wx.BufferedPaintDC (helps with drawing on linux) 2017-11-21 00:05:52 -05:00
blitzmann
a52b9e58e9 Testing some stuff out 2017-11-18 19:01:05 -05:00
blitzmann
0d8904d59f Fix None comparison operation 2017-11-16 01:35:26 -05:00
blitzmann
d956cb7861 use a different image to denote changed skills 2017-11-16 01:31:28 -05:00
blitzmann
e848cec815 Fix dirty skill indicator (* instead of blue text). Need to get a different icon working for those. Remove debugging prints() 2017-11-16 01:20:38 -05:00
blitzmann
ce8f1d385d Better fix for broken Entity Editor Validation 2017-11-15 21:43:36 -05:00
blitzmann
90e338b969 Fix for broken Entity Editor Validation 2017-11-14 00:07:12 -05:00
blitzmann
1978f5cb92 Test validator stuff 2017-11-13 22:45:12 -05:00
blitzmann
979bc494f0 deprecation 2017-11-13 22:29:58 -05:00
blitzmann
cc9b6ea04b More deprecation fixes 2017-11-13 00:18:24 -05:00
blitzmann
8cbb327659 Fix bug that caused race image to not appear in fitting tab 2017-11-12 23:58:30 -05:00
Ryan Holmes
2f6e306f8e Merge pull request #1336 from pyfa-org/release/v1.33.2
Release/v1.33.2
2017-11-12 16:59:03 -05:00
blitzmann
065747f425 bump release 2017-11-12 16:54:28 -05:00
blitzmann
c4f41fb5fa Update to 1209099 and rename old komodo skill 2017-11-12 16:52:56 -05:00
Ryan Holmes
e4f3ed05cc Merge pull request #1328 from burnsypet/wcs-display
Display warp core strength on warp speed tooltip
2017-11-12 15:38:25 -05:00
Ryan Holmes
0e84d6c557 Merge branch 'development' into wcs-display 2017-11-12 15:34:17 -05:00
blitzmann
c384848870 Merge branch 'master' into development
Conflicts:
	config.py
2017-11-12 15:33:59 -05:00
blitzmann
1fc9b2941d Add spac file for mac 2017-11-12 13:43:19 -05:00
blitzmann
e9be07f281 Rename pyfa.spec to pyfa-win.spec 2017-11-12 13:17:16 -05:00
blitzmann
df7dc30e7e Write out git version information to a file, use in about box, remove all the other stuff until I can format it correctly 2017-11-12 13:13:38 -05:00
blitzmann
d0235f6d93 Fix market browser meta filtering 2017-11-12 12:00:24 -05:00
blitzmann
de646cf252 Have a noticeable message show up (currently prints for everything, should restrict to only beta builds) 2017-11-12 02:30:15 -05:00
blitzmann
21838f2d9a Fix issue with pyinstaller not bundling required DLLs when building on Windows 10 / Python >= 3.5 2017-11-12 02:15:15 -05:00
blitzmann
266398b1de Get some things working for pyinstaller 2017-11-12 00:14:45 -05:00
blitzmann
0cc646bab9 Fix gauge resetting to 0 each time (should figure out how to utilize the existing set range and value, but for now this works) 2017-11-05 02:29:58 -05:00
blitzmann
cebca64e5e Fix CREST stuff 2017-11-05 01:43:39 -05:00
blitzmann
bd0de82a8e remove repo version of FloatSpin, go with wx bundled version 2017-11-05 01:10:22 -05:00
blitzmann
0f5ae8d9b6 Fix delete fix (renamed MiddleDown to MiddleIsDown) 2017-11-05 01:03:14 -05:00
blitzmann
5ae7805bb1 Fix ammo picker 2017-11-05 01:54:19 -04:00
blitzmann
6a382c4445 More tweaks to getModifiedItemAttr and fix deprecation warning 2017-11-05 01:51:19 -04:00
blitzmann
3b0c8b6117 Fix Racks having a CPU and Power value of 0 2017-11-04 18:32:26 -04:00
blitzmann
0e1e4cad6d Fix a few more deprecation warnings 2017-11-04 18:24:18 -04:00
blitzmann
e0b92198b0 Fix deprecation warnings 2017-11-04 18:20:54 -04:00
blitzmann
ce3b94696a Make sure getModifiedItemAttr always returns an int, unless otherwise wanting None
In py2, you could compare None to an int and it would always be less than. Unfortunately in py3, this is no longer the case. Returning getModifiedItemAttr as 0 allows us to not do a huge refactor.
2017-11-04 18:20:00 -04:00
oaao
cacf286176 [fix] eos - remove Komodo thermalDamage double-dipping 2017-11-02 04:41:57 -04:00
burnsypet
a02bbe3964 Removed traces 2017-11-01 23:31:17 +00:00
burnsypet
866d410695 Added logic for WDFG MWD scrambling 2017-11-01 23:27:34 +00:00
burnsypet
ea6f31c021 Added disruption effect for WDFG 2017-11-01 22:55:05 +00:00
burnsypet
d522fff511 Add projected warp strength to scrams
Changes to effects:
Added warp strength projected effects to all kinds of warp disruption
modules except for WDFG (this will need some more thinking). Fixed
a bug where warp disruptors appeared to reduce the warp strength of
the ship they were fitted to

Changes to targetingMiscView*.py:
Replaced abs() with multiplication by -1 where appropriate
2017-10-30 21:05:46 +00:00
Ryan Holmes
ca27cd3250 bump stable release (#1329) 2017-10-29 18:54:46 -04:00
burnsypet
20a1618e41 Display warp core strength as warp speed tooltip
Changes to antiwarpscramblingpassive.py:
Fixed a typo of "warmScrambleStatus" to "warpScrambleStatus"

Changes to targetingMiscViewMinimal.py:
Extended existing tooltip to include warp core strength. Warp core
strength is none for ships that do not have a hull bonus (venture etc.)
or do not have any warp core stabs fitted so logic is added to
default value to 0.

Changes to targetingMiscViewFull.py:
As above.
2017-10-29 20:40:39 +00:00
Alex
2830729cb4 Merge pull request #1 from pyfa-org/master
Updating fork with bugfixes from master
2017-10-29 20:21:34 +00:00
Ryan Holmes
c0e15f61c6 Merge pull request #1322 from burnsypet/issue-1315
Stop applying neut resistance twice
2017-10-29 15:27:27 -04:00
blitzmann
4355f35eef Revert "Stop applying neut resistance twice" and instead remove the resistance application from addDrain()
This reverts commit 7b32fe08ac.
2017-10-29 15:07:05 -04:00
Ryan Holmes
029e61edaf Merge branch 'master' into issue-1315 2017-10-29 12:36:29 -04:00
Ryan Holmes
b18f82505b Merge pull request #1327 from pyfa-org/bug1316
Bug1316
2017-10-29 12:25:00 -04:00
blitzmann
f8a65de47f tox fix 2017-10-29 12:23:45 -04:00
blitzmann
e5a0ef1877 Re-work menu spawning for Command and Projected views to be a bit more straightforward and allow spawning up context menu when right clicking the DummyEntry (#1316) 2017-10-29 12:22:15 -04:00
Ryan Holmes
8647fe460c Merge pull request #1326 from pyfa-org/133bugfixes
133bugfixes
2017-10-28 22:44:27 -04:00
blitzmann
a4950e9015 Remove the rifter test as it's not properly mocked out and recent balancing passes have since made it useless 2017-10-28 22:36:00 -04:00
blitzmann
82d50cfa0d Fix effect that used to only be for skill, but is now for a booster (#1324) 2017-10-28 21:04:51 -04:00
blitzmann
efea46006a Better include all missiles in the MISC column (#1325) 2017-10-28 20:37:29 -04:00
blitzmann
d9800dcf19 Fix some effects for #1320 2017-10-28 19:45:09 -04:00
blitzmann
266b3ce985 Set Victor and Virtuso to not published, and fix bug which allowed user fits to return in search even if ship isn't published (#1310) 2017-10-28 19:25:19 -04:00
blitzmann
3b61a07c55 Fix for #1321 - make sure we have attribute on ship 2017-10-28 19:25:15 -04:00
blitzmann
5dc092ace5 bump dev 2017-10-28 19:25:10 -04:00
burnsypet
7b32fe08ac Stop applying neut resistance twice
Energy neut/nos resistance was being applied twice when a nos or
neut is projected onto a fit. I have removed the redundant resistance
application in energyneutralizerfalloff.py and also in
energynosferatufalloff.py as they are already being applied once in
eos.saveddata.fit.addDrain.
2017-10-26 17:53:16 +01:00
Ryan Holmes
fd6e318ae3 Release/v1.33.0 (#1319)
* update database file to SISI 1202899

* Effect and group renaming

* Add civilian modules (#1308)

* Add new effects

* update effect headers

* update database to tq - lifeblood (1203953)

* Update renders

* Update icons

* bump version

* fix tox errors

* change up tox config to ignore E722

* more tox ignores

* Try disabling tests for now. Rifter stats changed, causing breakage. This is why we need properly mocked data, not crap straight from the database.

* Try this

* more testing

* Fuck it, disable branch protection until I can evaluate the test failures and what needs to be done to get them back on the path
2017-10-25 23:33:05 -04:00
blitzmann
504c395ea2 Add civilian modules (#1308) 2017-10-22 16:18:35 -04:00
blitzmann
9ed210d5b5 Effect and group renaming 2017-10-22 16:03:21 -04:00
blitzmann
c7f0f6215a update database file to SISI 1202899 2017-10-22 15:57:17 -04:00
Ryan Holmes
34c692c972 Use unicode string to prevent non-ASCII ship names from causing error (#1317) 2017-10-21 22:04:40 -04:00
blitzmann
56f34873a6 bleh 2017-10-08 22:51:06 -04:00
Ryan Holmes
b4dfcf53fb Merge pull request #1303 from burnsypet/issue-1289
Change how skillsMap is generated
2017-10-08 21:42:40 -04:00
Ryan Holmes
3c26676b66 Merge branch 'master' into issue-1289 2017-10-08 21:30:53 -04:00
Ryan Holmes
3fb7411b9d Issue/1305 (#1311)
* Bump dev version

* fix issue in itemDiff

* Do not apply Prop Jamming to Grapplers (#1305)
2017-10-08 21:13:38 -04:00
burnsypet
cac8e528a3 Change how skillsMap is generated
Changes to characterSelection.py:
grantMissingSkills now uses _buildSkillsTooltipCondensed to
generate a list of skills to update
_buildSkillsTooltipCondensed now outputs level and ID rather than
just level so that it can be used by grantMissingSkills
Anything else using _buildSkillsTooltipCondensed like exportSkills
and fitChanged have been amended to extract just the level from
the skills map rather than level and ID
2017-09-26 18:22:24 +01:00
blitzmann
2afc8b1abe Get rack headers bold again (courtesy of @RobinD42 - https://github.com/wxWidgets/Phoenix/issues/525) 2017-09-25 01:58:31 -04:00
blitzmann
06e82a04b4 fix issue in itemDiff 2017-09-25 01:15:14 -04:00
blitzmann
782df18501 Bump dev version 2017-09-24 18:23:01 -04:00
blitzmann
a87d659e5d Merge remote-tracking branch 'origin/master' into development 2017-09-24 18:20:53 -04:00
blitzmann
cd35c9319c Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2017-09-24 18:20:26 -04:00
Ryan Holmes
dfe3d5c82a Update forum references (#1301) 2017-09-24 18:00:21 -04:00
blitzmann
ccd8cdd099 Update forum references 2017-09-24 17:54:19 -04:00
Ryan Holmes
72062e6213 Release/1.32.0 (#1300)
* update database

* update effect headers

* Bump version
2017-09-24 16:43:51 -04:00
Ryan Holmes
10836acab2 Bug/1275 (#1299)
* Add stacking penalties to the max targeting range bonus of the Info Command Burst : Sensor Optimization

* Move Information Burst: Sensor Optimization: Targeting Range effect to proper position

* Fix tox issue
2017-09-24 13:38:52 -04:00
Ryan Holmes
08ab8fbc5b Make sure efxBmp is created (#1265) (#1298) 2017-09-24 13:29:57 -04:00
Ryan Holmes
da5aaf2f78 Feature/evemarketdata (#1297)
* Add preliminary support for eve market data

* Break out market sources into their own classes and register them onto the price service. Create preference option to select which source user wants. Default to eve central

* fix tox stuff
2017-09-23 19:39:38 -04:00
Ryan Holmes
4484b68a3a Fix for #1260 - need to unbind event handling from frame when closed (#1296) 2017-09-23 19:15:03 -04:00
Ryan Holmes
81fce93186 Merge pull request #1294 from pyfa-org/bug/1263
Bug/1263
2017-09-23 13:18:01 -04:00
Ryan Holmes
d58987e427 Merge branch 'master' into bug/1263 2017-09-23 12:56:29 -04:00
Ryan Holmes
05a5ebff00 Merge pull request #1293 from pyfa-org/bug/1278
Bug/1278
2017-09-23 12:56:13 -04:00
blitzmann
2f28afc7ae Merge branch 'bug/1278' of https://github.com/pyfa-org/Pyfa into bug/1278 2017-09-23 12:49:05 -04:00
blitzmann
0134c3b9a1 Fix formatting 2017-09-23 12:33:51 -04:00
Ryan Holmes
9f433fd072 Merge branch 'master' into bug/1278 2017-09-23 03:11:04 -04:00
blitzmann
7729bd9210 Opps commented wrong thing 2017-09-22 02:35:01 -04:00
blitzmann
ce5803dd9c Disable an odd bit of code from a long time ago that fitting max group fitting restrictions to be bypassed (#1278) 2017-09-22 02:33:46 -04:00
blitzmann
821ede8579 Do the same thing for damage patterns as we did for character for global setting 2017-09-22 02:08:53 -04:00
blitzmann
592f9a2298 Trigger a recalc on fit switching if the characters are not the same and the global character flag is set. 2017-09-22 02:01:27 -04:00
blitzmann
c30c07b91c fix tox stuff 2017-09-21 21:21:14 -04:00
Ryan Holmes
73d9dd60e6 Don't return None as a price, always return a float (#1291) (#1292) 2017-09-21 21:13:05 -04:00
blitzmann
dbdbe155f3 Merge branch 'feature/evemarketdata' into development 2017-09-21 21:12:42 -04:00
blitzmann
7d41260863 Break out market sources into their own classes and register them onto the price service. Create preference option to select which source user wants. Default to eve central 2017-09-21 20:50:37 -04:00
blitzmann
d53ff0f502 Add preliminary support for eve market data 2017-09-21 00:10:33 -04:00
Ryan Holmes
f37f4573bf Add missing effect (#1290) 2017-09-20 00:11:32 -04:00
Ryan Holmes
ee392e07c4 Fixes (#1288)
* Provide correct text formatting index

* Fix remove item context menu in projected pane
2017-09-19 19:20:10 -04:00
Ryan Holmes
59b09a255a Fix override importing (and possibly some other bugs revolving around this?) (#1285) 2017-09-18 23:28:39 -04:00
Ryan Holmes
3e73c2eb34 Fix setting implant set for character implants (#1284) 2017-09-18 20:36:41 -04:00
Ryan Holmes
3625b4395a Merge pull request #1272 from burnsypet/issue-1264
Issue #1264 Don't attempt PopupMenu if getMenu returned False
2017-09-18 20:12:34 -04:00
Ryan Holmes
1444a24e70 Merge branch 'master' into issue-1264 2017-09-18 20:04:09 -04:00
Ryan Holmes
73dfa25ef0 Merge pull request #1282 from burnsypet/issue-1280
Convert booster attribute to value before applying
2017-09-18 19:25:32 -04:00
burnsypet
a01284ff1c Convert booster attribute to value before applying
Changes to boostermissilevelocitypenalty.py:
Get booster attribute value using booster.getModifiedItemAttr()
before attempting to apply it to avoid type error
2017-09-14 21:53:53 +01:00
burnsypet
8cc81cebdd Don't attempt PopupMenu if getMenu returned False
Change to characterEditor.py:
Added logic to prevent a crash when attempting to execute
self.PopupMenu(menu) when menu was False. This would occur in the
situation where there were no saved implant sets.
2017-08-19 18:47:58 +01:00
Ryan Holmes
c33aeb7275 Merge pull request #1270 from pyfa-org/release/v1.31.0
Release/v1.31.0
2017-08-16 20:57:04 -04:00
blitzmann
c0237905b6 Ignore F401 warning (# noqa: E402, F401 isn't being honored ion Travis??) 2017-08-16 20:50:18 -04:00
blitzmann
eda6d738a4 fix some whitespace stuff, update database, effect headers, and release version 2017-08-16 20:39:26 -04:00
blitzmann
eef3b420a9 Merge branch 'burnsypet-issue-1241' into development 2017-08-16 20:36:38 -04:00
burnsypet
caef752a74 Bind contextHandler to children of contentPanel
Changes to statsPane.py:
Added new method applyBinding which loops through all the children
of the contentPanel passed to it and binds contextHandler to each of them

Changes to miningyieldViewFull.py:
Call to new method applyBinding
2017-08-16 22:54:32 +01:00
blitzmann
e13bd7af52 Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2017-08-15 21:52:16 -04:00
Ryan Holmes
c263575788 Merge pull request #1262 from burnsypet/issue-1261
Issue #1261 show variations menu for cargo items
2017-08-15 21:51:50 -04:00
Ryan Holmes
5bd80d3d06 Merge pull request #1267 from w9jds/input-fix
Amounts window crashes pyfa if you paste with characters
2017-08-15 21:47:22 -04:00
blitzmann
47cbc71e8a Implement simple skill import/export functionality, and some cleanup top pass tox 2017-08-14 23:28:50 -04:00
blitzmann
fdba8d147f Merge remote-tracking branch 'petosorus/master' into development 2017-08-14 22:22:47 -04:00
Jeremy Shore
4720b611b0 Support Decimals 2017-08-14 15:48:18 -05:00
blitzmann
1f43410780 Merge branch 'qol/file-reorg' into development 2017-08-13 21:20:20 -04:00
blitzmann
ead595e666 Allow burst projector to be projected 2017-08-13 21:19:55 -04:00
Jeremy Shore
89cf40423b Fixed issue crashing pyfa when pasting from calculator with commas 2017-08-13 01:54:59 -05:00
burnsypet
95d6944298 Merge branch 'issue-1261' of https://github.com/burnsypet/Pyfa into issue-1261
Conflicts:
	gui/builtinContextMenus/metaSwap.py
2017-07-30 21:35:59 +01:00
burnsypet
a3c19d1d1c Issue #1261 show variations menu for cargo items
Added logic to condition statement in metaSwap.py to accomodate
cargoItem context. Will replace existing cargo item with selected
item and retain the original stack amount.
2017-07-30 21:34:21 +01:00
burnsypet
88185cb886 Issue #1261 show variations menu for cargo items
Added logic to condition statement in metaSwap.py to accomodate
cargoItem context. Will replace existing cargo item with selected
item and retain the original stack amount.
2017-07-30 21:18:47 +01:00
blitzmann
7962aa7b1b Reorganize file structure of item stats dialog box 2017-07-23 17:55:18 -04:00
Ryan Holmes
220ce23e8f Merge pull request #1254 from pyfa-org/bug-1246
Bug 1246 fix
2017-07-15 21:57:54 -04:00
blitzmann
66752b2cbf Fix cargo bonus for Covert subsytems (#1246) 2017-07-15 21:51:32 -04:00
blitzmann
f59a65f314 bump dev 2017-07-15 21:49:58 -04:00
blitzmann
725034ebc5 Merge remote-tracking branch 'origin/master' into development 2017-07-11 23:00:50 -04:00
Ryan Holmes
0210020658 Merge pull request #1245 from pyfa-org/release/1.30.0
Release/1.30.0
2017-07-11 19:45:44 -04:00
blitzmann
22dc6512c0 Final updates and bump version :D 2017-07-11 19:39:13 -04:00
blitzmann
709b4524e6 Bump version :D 2017-07-11 19:26:02 -04:00
blitzmann
bc462ede3e Fix some back event reference due to sleepiness last night ;_; 2017-07-11 19:23:29 -04:00
blitzmann
277bd14453 See #1234 - temporarily add conditional to ensure we run the skill level checking code only when a character exists to prevent error. This may cause some issues with the alpha characters since that may not get checked anymore. 2017-07-11 19:23:08 -04:00
blitzmann
59fed2c516 Update to TQ 1164320 2017-07-11 19:09:32 -04:00
blitzmann
d19486ce15 cleanup 2017-07-11 02:30:26 -04:00
blitzmann
b55fcfaf04 cleanup 2017-07-11 02:06:09 -04:00
blitzmann
60e5085724 ohgodwhathaveidone.jpg 2017-07-11 01:50:54 -04:00
blitzmann
5adde95807 Remove print statement 2017-07-11 01:42:45 -04:00
blitzmann
3da0b8bc29 Effect header update 2017-07-11 01:31:02 -04:00
blitzmann
0104e8954a Remove the -dev suffix for the user database 2017-07-11 01:17:30 -04:00
blitzmann
78e065feff Apparently, my IDE settings changed from spaces to tabs. Changing this back :3 2017-07-11 01:13:25 -04:00
blitzmann
30fe7930a9 Remove log spam 2017-07-11 01:10:55 -04:00
blitzmann
453054f6c7 Remove command fitting from the command fits context menu upon deletion (#1244) 2017-07-11 01:10:39 -04:00
blitzmann
231f9a91c2 Do not assume number of columns for damagePatterns, see #1238 2017-07-10 22:46:30 -04:00
blitzmann
c553790eaf move the "generating effect" spam - doesn't need to happen every time the handler is called 2017-07-10 01:48:10 -04:00
blitzmann
f2e8506ea7 Merge remote-tracking branch 'origin/singularity' into development 2017-07-10 01:39:32 -04:00
Ryan Holmes
76b22dfe17 Merge pull request #1243 from wendazhou/singularity-fix-loki-effects
Fix loki effects
2017-07-10 01:39:16 -04:00
blitzmann
1202c335d9 Fix implant set clipboard import (#1237) 2017-07-10 00:28:22 -04:00
blitzmann
f70d671f1d Fix implant set copy (#1236) 2017-07-10 00:21:52 -04:00
blitzmann
1305a1f2b6 Do not get variations by "group" unless the item is part of a set of hard-coded categories. #1232 2017-07-10 00:11:54 -04:00
blitzmann
f5108c34db Do not kill the entire XML import if one fitting fails (#1231) 2017-07-09 19:08:46 -04:00
Ebag333
d553c60b65 Fix errors caused by importing a few "skinned" ships. Patch by ebag. See #1231 2017-07-09 19:08:06 -04:00
blitzmann
be84cf1db7 formatting 2017-07-09 18:59:07 -04:00
blitzmann
854d7cb09c Rename "system effects" to "wormhole effects" (#1229) 2017-07-09 18:35:44 -04:00
blitzmann
b70f401a91 Merge branch 'qol/file-reorg' into development 2017-07-09 18:27:18 -04:00
blitzmann
496b28226d Merge branch 'feature/booster-side-effects' into development 2017-07-09 18:26:38 -04:00
blitzmann
fec7c8fd0b Merge branch 'singularity' into development 2017-07-09 18:26:28 -04:00
blitzmann
f8e5e15051 Fixed bug with meta swap context menu for subsystems 2017-07-09 15:08:59 -04:00
blitzmann
78b273455d Fix up some effects 2017-07-09 14:44:57 -04:00
blitzmann
de35692666 Fix a few things with affected by tab (indentation issue, overwriting modifier incorrectly) 2017-07-09 13:18:28 -04:00
blitzmann
49b2e42d8c Fix subsystem count, requires post processing of data from CCP when building the database... this may be fixed by the time it releases, but maybe not, and I don't want to forget about it 2017-07-09 12:17:07 -04:00
blitzmann
307ccd10e8 Implement migration for t3c configurations 2017-07-09 00:34:12 -04:00
blitzmann
1225f2074a update to 1163182 2017-07-08 21:59:28 -04:00
Wenda Zhou
afee4469f0 fix loki effects to apply correctly 2017-07-07 00:26:38 -04:00
blitzmann
3b716e6e5e fix py2app setup file 2017-07-07 00:22:58 -04:00
blitzmann
961b389b40 test 2017-07-06 23:41:55 -04:00
blitzmann
e9c691575f Fix RR effect 2017-07-05 23:48:44 -04:00
blitzmann
27236feec3 Add new effects 2017-07-03 22:24:27 -04:00
Ryan Holmes
2e598a7ef7 update sisi database 2017-07-03 14:59:28 -04:00
Ryan Holmes
0527a506ac fix broken events preventing additions panels to not work 2017-07-03 01:46:46 -04:00
Ryan Holmes
1082d8a173 fix fix fix 2017-07-02 23:45:28 -04:00
Ryan Holmes
7ae41b71b2 Fix some deprecated things and a bug or two 2017-07-02 23:26:44 -04:00
Ryan Holmes
de5a734919 About dialog (looks like shit x_x) 2017-07-02 16:42:22 -04:00
Ryan Holmes
987c55ed8f Get preferences dialog up and running 2017-07-02 16:32:39 -04:00
Ryan Holmes
57783fe80f More work on character editor 2017-07-02 15:28:42 -04:00
Ryan Holmes
f24c2ddd22 Get skill list in character editor showing. Mostly doesn't work still 2017-07-02 14:12:00 -04:00
blitzmann
58a242f753 update effect headers 2017-06-27 21:03:16 -04:00
blitzmann
5c2cf6dd15 Add last bit of t3 effects from sisi data 2017-06-27 21:02:27 -04:00
blitzmann
287f3bc510 Fix some broken effects (due to effect renames) 2017-06-25 02:54:14 -04:00
blitzmann
caaa6bcd0c update config.py to reflect sisi version 2017-06-25 01:33:18 -04:00
blitzmann
b01c961251 change path to database in case these sisi releases screw with data 2017-06-25 01:27:29 -04:00
blitzmann
826c73c903 Merge branch 'strat_cruisers' into singularity 2017-06-25 01:26:55 -04:00
blitzmann
b6a28ae15f Merge branch 'master' into development
Conflicts:
	config.py
2017-06-25 01:23:08 -04:00
blitzmann
ad0d55faed update effect headers 2017-06-25 01:21:37 -04:00
blitzmann
910ae6315d More work on subsystems 2017-06-25 01:19:48 -04:00
blitzmann
25b4d3a45b More work on strat cruiser updates 2017-06-25 00:33:36 -04:00
blitzmann
f355cb3a72 Update effect headers 2017-06-25 00:18:06 -04:00
blitzmann
ff58648f94 start picking at strat cruiser update 2017-06-21 22:19:37 -04:00
Ryan Holmes
f16e14e0b4 Fix gauges again, convert remaining IconFromBitmap > Icon 2017-06-14 15:05:12 -04:00
Ryan Holmes
729c46ab00 Revert "Remove EVT_ERASE_BACKGROUND events - pretty sure these were there for older versions of wx where the background wasn't erased properly"
This does help prevent flickering on resizing. Need to research more before removing them

This reverts commit 8c5c7fba29.
2017-06-14 03:57:57 -04:00
Ryan Holmes
3b546de070 More deprecated fixes, and re-enable a working stats view 2017-06-14 03:51:40 -04:00
Ryan Holmes
ba64f75f88 Add some missing features to the gauge (and the background erase event, which apparently is needed to prevent flickering. Still need to access if this is something I need to be concerned about in other areas) 2017-06-14 03:44:38 -04:00
Ryan Holmes
4b8f2ce9e7 Deprecation stuff 2017-06-14 01:07:18 -04:00
Ryan Holmes
8c5c7fba29 Remove EVT_ERASE_BACKGROUND events - pretty sure these were there for older versions of wx where the background wasn't erased properly 2017-06-14 01:02:27 -04:00
Ryan Holmes
bec26d5d05 Fix unable to close window 2017-06-14 00:53:22 -04:00
Ryan Holmes
8f369daf1e InsertStringItem > InsertItem 2017-06-14 00:46:38 -04:00
Ryan Holmes
43cbdc1e57 Fix issue with crashing (set weight not working as intended?) 2017-06-14 00:46:13 -04:00
Ryan Holmes
cf4d0706ae Fix column headers, and disable event posting which was causing crash 2017-06-14 00:09:30 -04:00
Ryan Holmes
2857eff884 Fix a few None comparison operations... python 3 has changed this. I'm sure there's going to be a lot of these issues popping up.
Oh, and now we get a hard crash when opening a fit. Yey!
2017-06-13 23:57:27 -04:00
Ryan Holmes
050f1b4add Fixed some missing chrome tab stuff, as well as more conversion issues 2017-06-13 15:18:40 -04:00
Ryan Holmes
2bbcd96ce3 Even more fixes 2017-06-13 15:01:30 -04:00
Ryan Holmes
1cbd8ee901 Fix some deprecated stuff 2017-06-12 21:31:37 -04:00
Ryan Holmes
7e86cb0f84 OMG I HAVE A SHIP BROWSER NOW :3 (replace old instances of GetSuitableColor with GetSuitable) 2017-06-12 21:25:07 -04:00
Ryan Holmes
0e7dccccfe Remove stat panels for now. I HAVE A FRAME SPAWNING OMG 2017-06-12 21:16:21 -04:00
Ryan Holmes
9d75dea31a "Fix" more spacers 2017-06-12 21:14:45 -04:00
Ryan Holmes
610f501608 "Color Correction" 2017-06-12 21:11:10 -04:00
Ryan Holmes
361f7fc5bb misc fixes 2017-06-12 21:09:50 -04:00
Ryan Holmes
951b35a345 PyDeadObjectError fixes and PFNotebook -> ChromeNotebook renaming 2017-06-12 20:50:05 -04:00
Ryan Holmes
6c317d56ee touch up the gauge code 2017-06-12 20:45:58 -04:00
Ryan Holmes
2acb3e759e Touch up toggle panel 2017-06-12 20:42:03 -04:00
Ryan Holmes
9712ec4fbf Fix up some stuff, migrate to cleaned up chrome tabs 2017-06-12 20:38:00 -04:00
Ryan Holmes
ae0da59ed2 Clean up draw and color utils 2017-06-12 18:14:29 -04:00
Ryan Holmes
8e4db5a8c3 Do some renaming of some files 2017-06-12 18:08:07 -04:00
Ryan Holmes
7f392006d1 comment out most of the fluff in pyfa.py. Need to come back to this and get it all working 2017-06-12 16:37:15 -04:00
Ryan Holmes
828b18d0fd py2to3 automatic conversion. Woot! 2017-06-12 16:12:45 -04:00
Ryan Holmes
ad535ccc78 Merge branch 'qol/additionPanes' into qol/file-reorg 2017-06-12 01:17:22 -04:00
Ryan Holmes
9dee761f6d Move addition pane views into their own directory 2017-06-12 01:17:00 -04:00
Ryan Holmes
f5531b458b Fix up focus for ship browser, allowing space or enter to work to open up new stage 2017-06-12 00:28:06 -04:00
Ryan Holmes
a7c89f7b40 break out market browser to individual class files 2017-06-11 17:54:36 -04:00
Ryan Holmes
048ae0205c Breakout shipBrowser into individual class files 2017-06-11 17:32:43 -04:00
Ryan Holmes
e6a0784466 space to select fit when it's focus'd 2017-06-11 15:43:01 -04:00
blitzmann
53d15425f3 tab / tab+shift to change focus of ship browser items 2017-06-09 01:27:28 -04:00
Ryan Holmes
a79257271e bump to stable 1.29.4 (#1228) 2017-06-08 22:22:30 -04:00
Ryan Holmes
94256876e4 Add tooltip for alpha clones to explain functionality (#1227)
See #1219
2017-06-08 22:13:46 -04:00
Ryan Holmes
d319b74d7a Fix exception when double clicking CREST fit browser hull (#1226) 2017-06-08 21:58:20 -04:00
petosorus
acb7c0878e Basic skill reqs export 2017-06-07 11:17:13 +02:00
blitzmann
47fcbefe8b Finish off user-selectable booster side effects - effects are applied correctly now and each has their own display name. Implements #642 2017-06-05 00:18:36 -04:00
blitzmann
c2cb5d763f Implement selectable booster side effects and persist them to the database, very much based on the fighter ability code. Still need to name them and enable the effects.
This also removes the old boosterActiveSideEffect table definition (migration script to drop table still needs to be written)
2017-06-04 23:33:11 -04:00
Ryan Holmes
208148b670 Fix issue with fit deletion (#1211)
* bump dev

* Fix issue with deleted fit not being removed from database cache (#1207). Also, include some error handling around the our commit stuff
2017-06-02 00:30:58 -04:00
blitzmann
cf02c74272 bump dev 2017-06-01 00:33:46 -04:00
blitzmann
f77cd0b834 Merge branch 'master' into development 2017-06-01 00:32:06 -04:00
Ryan Holmes
461f5219e5 bump release (#1204) 2017-05-31 23:51:46 -04:00
Ryan Holmes
373ead8da6 Add structure painter / web to dps graph (#1203) (#1202) 2017-05-31 23:14:17 -04:00
Ryan Holmes
3371086d54 Fix for #1193 - compounded bonuses during recursive command / projected fittings (#1197)
* Teak calculated logic

* test

* clear() on every calculation if it's not already calculated

* tox fix
2017-05-31 00:01:59 -04:00
Ryan Holmes
45c3533501 Make some extra logging statements and stuff to troubleshoot fit deletion bugs (#1199) 2017-05-30 22:57:52 -04:00
Ryan Holmes
4286f2ea5a Add stacking penalties to armor and shield resist command links (#1198) 2017-05-30 22:44:01 -04:00
Ryan Holmes
344546a583 Merge pull request #1196 from jasconius/mactest
updated drag and drop behavior to not trigger a suspected wx bug on Mac
2017-05-30 22:26:59 -04:00
Michael Ryan
46f61ecfa3 address travis errors 2017-05-30 21:07:02 -05:00
Ryan Holmes
2ec9c5addb Merge pull request #1194 from petosorus/pricing-pane-1158
Pricing pane 1158
2017-05-30 21:42:05 -04:00
Michael Ryan
d09f21fe15 updated drag and drop behavior to not trigger a suspected wx bug on Mac 2017-05-30 20:18:32 -05:00
petosorus
33410f0618 Formatting 2017-05-30 15:51:48 +02:00
petosorus
2c98baade8 Price options labels + total computing in minimal 2017-05-29 15:24:21 +02:00
petosorus
380f90d065 Price options in context menu 2017-05-24 17:30:55 +02:00
petosorus
1781c6dcf0 total computation + settings 2017-05-24 16:27:32 +02:00
Ryan Holmes
cff3d0ee95 Don't process removeModule is ctrl / cmd key is active (#1190) 2017-05-22 01:50:13 -04:00
Ryan Holmes
d1fc2dd6ec Fix issue with calculateSustainableTank not considering remote ancil modules (from https://forums.eveonline.com/default.aspx?g=posts&m=6948134#post6948134) (#1189) 2017-05-22 00:55:35 -04:00
Ryan Holmes
218712835e Merge pull request #1188 from pyfa-org/bug/evemon-char
EVEMon import fix
2017-05-22 00:41:12 -04:00
Ebag333
5a60cff9a1 Fixes EVEMon import. Security status was added, but wasn't handled in the EVEMon import. Also, default secstatus to 0 if it's somehow missing. 2017-05-22 00:29:29 -04:00
Ryan Holmes
18554e3186 Fix a bunch of item swapping mechanisms (see #1186) (#1187) 2017-05-21 20:31:12 -04:00
Ryan Holmes
2e2303c9aa Update some migrations to consider new schema (#1185)
* Update some migrations to consider new schema

* tox
2017-05-20 02:44:26 -04:00
blitzmann
fbf455c9fe Fix for fighter prices (#1178) 2017-05-18 22:28:09 -04:00
blitzmann
00dcda6fad Check if projected / command thing actually exist before attempting to remove it 2017-05-18 22:22:02 -04:00
blitzmann
3be7538daa Bump dev 2017-05-18 22:22:02 -04:00
Ryan Holmes
9e0638c54c Merge pull request #1175 from pyfa-org/bumprelease
Bumprelease
2017-05-16 22:12:29 -04:00
blitzmann
a5ff46fbd1 Bump stable 2017-05-16 21:34:09 -04:00
Ebag333
6900938208 Set all strings to be unicode when referencing fit.name. This won't catch all conversion errors, but it should catch most. 2017-05-16 21:33:45 -04:00
blitzmann
4887817142 Revert "Set all strings to be unicode when referencing fit.name. This won't catch all conversion errors, but it should catch most. (#1168)"
This reverts commit da33a372cb. Was squashed by mistake, commit author was lost
2017-05-16 21:33:28 -04:00
Ryan Holmes
0d721b55a7 Fix for when factor reload when module doesn't have a cycle time (#1171) (#1173) 2017-05-16 00:09:51 -04:00
Ryan Holmes
65f71b6f6b Fix exception with character implants, and don't show implant set menu if there aren't any (#1172) 2017-05-15 22:59:47 -04:00
Ryan Holmes
89b508d0f6 Merge pull request #1170 from pyfa-org/bug/char_fixes
Various character fixes
2017-05-14 23:05:18 -04:00
Ryan Holmes
6344f7a975 Merge branch 'master' into bug/char_fixes 2017-05-14 22:56:34 -04:00
blitzmann
11eea37aa7 Remove duplication of Character.ro property 2017-05-14 22:50:18 -04:00
blitzmann
bff44c46f8 Fix character list sorting (https://forums.eveonline.com/default.aspx?g=posts&m=6940327#post6940327) 2017-05-14 22:44:02 -04:00
blitzmann
7a0ea759ef Fix issue with character copy, as well as instantiating character with duplicate skills (since Skill has a backref to charactrer, it's automatically added to the characters skill list. No more need for the append()) 2017-05-14 22:24:05 -04:00
blitzmann
f9419977c0 Instantiate skills with a character (may help to solve https://forums.eveonline.com/default.aspx?g=posts&m=6939299#post6939299) 2017-05-14 20:55:48 -04:00
Ryan Holmes
da33a372cb Set all strings to be unicode when referencing fit.name. This won't catch all conversion errors, but it should catch most. (#1168) 2017-05-14 20:52:06 -04:00
blitzmann
0db141d0a6 Fix exception when reverting character skills 2017-05-14 02:26:32 -04:00
blitzmann
79445225de fix issue with market shortcuts if not active items are present 2017-05-14 02:21:23 -04:00
Ryan Holmes
a0f5e4cbb3 Merge pull request #1166 from pyfa-org/bug/t3d-mod-delete
Bug/t3d mod delete
2017-05-14 01:59:38 -04:00
blitzmann
3b23c9eacd flake8 2017-05-14 01:41:15 -04:00
blitzmann
d4ce1ef3db Fix issue with Delete key event on t3d mode causing exception (#1160). Additionally, work around the fact that every module that is removed also recalculates the fit, allowing for a faster response time when deleting multiple modules at a time. This is somewhat ugly as the removeModule function was originally based on the assumption of removing only one module. Should clean it up at some point. 2017-05-14 01:37:49 -04:00
Ryan Holmes
b4f063b07a Merge pull request #1165 from pyfa-org/bug/fit-delete-stuff2
Bug/fit delete stuff2
2017-05-14 00:42:26 -04:00
blitzmann
ffe840e245 Fix for #1161. Can't reproduce, but I'm unsure what the root cause is (probably something firing in the wrong order). 9be4ae may also alleviate the root cause. 2017-05-13 23:28:51 -04:00
blitzmann
2e3c3e92f1 Fix for a possible bug (see comments in #1147). 2017-05-13 23:28:50 -04:00
blitzmann
5e20d6973f Fix situation in which deleting a fit that was both a command and projected fit for the same target threw an error 2017-05-13 23:28:49 -04:00
blitzmann
c68739d78c Move the FitRemoved event before the stage selected events. Otherwise, if the stage is selected first and the FitItem (self) is deleted before the FitRemoved is done, we get an error about how self is not valid anymore 2017-05-13 23:28:49 -04:00
blitzmann
5392aaa27e refresh command fits on boosted fits when the booster is deleted 2017-05-13 23:28:48 -04:00
Ryan Holmes
fee82d294b Bump dev and include fix for #1162 (#1163)
* Add some logging to try to figure out what happens with #1149

* Add some logging to try to figure out what happens with #1149, along with some other fixes

* bump dev

* Add remote hull repairers in the calculateSustainableTank() mappings
2017-05-13 22:36:03 -04:00
Ryan Holmes
9f5e14fe2d Bugfixes and bump point release (#1159)
* Add some logging to try to figure out what happens with #1149, along with some other fixes

* Bump point release
2017-05-11 20:53:37 -04:00
Ryan Holmes
b39ec4f9b3 Do not commit price objects to database from within thread (#1154)
* Remove database commit in price worker, essentially bringing it back to the previous functionality (pass thread list of price objects, it modifies, calls back for main thread to commit). There's probably a better way to handle this for the future creating a scoped session or something, but for now this works

* E303 too many blank lines (2)
2017-05-11 01:15:07 -04:00
Ryan Holmes
25bfb4ddb8 Fox for issue #1152 - unicode characters in entity names (#1153) 2017-05-10 22:36:10 -04:00
Ryan Holmes
de9b167242 Bump version and include fix for #1147 (#1150)
* bump dev

* Fix two issues with deleting fits (#1147)
2017-05-10 18:48:33 -04:00
Ryan Holmes
18d44979e4 Merge pull request #1143 from pyfa-org/release-1.29.0
Release 1.29.0
2017-05-09 21:05:42 -04:00
blitzmann
1eddad859a Bump for 1.29.0 release for realz
This reverts commit fc9408d062.
2017-05-09 20:59:35 -04:00
blitzmann
e2de1565bf Forgot to add notes to the import fit list. Caused break. Very bad. 2017-05-09 20:59:11 -04:00
blitzmann
fc9408d062 Revert "bump for 1.29.0 release"
This reverts commit 892ee13542.
2017-05-09 20:56:09 -04:00
Ryan Holmes
cb98618e5e Merge pull request #1142 from pyfa-org/release-1.29.0
Release 1.29.0
2017-05-09 20:54:41 -04:00
blitzmann
892ee13542 bump for 1.29.0 release 2017-05-09 20:49:05 -04:00
blitzmann
2595c59c73 Fix issue in which character editor did not display skill level update when changed from skill search results 2017-05-09 19:57:59 -04:00
blitzmann
93c26aa02f Merge branch 'jeffy-g-fix_unread_description' into release-1.29.0 2017-05-09 18:58:15 -04:00
blitzmann
a6a153b703 Update database, add missing renders, fix bug with not being able to add citadel modules, and fix bug associated with engineering complex properties (debug info, don't care about it) 2017-05-09 18:52:32 -04:00
blitzmann
38e6e7d5ed Add missing Dagon effect 2017-05-08 22:58:25 -04:00
blitzmann
4d8c9e0522 Fix floats in skill tree, and fix typo - apparently I can't spell dependents x_x 2017-05-08 22:49:37 -04:00
blitzmann
e75e2b7605 Bad isinstance() for skill search... I feel like I've fixed this 3 times now??? 2017-05-08 22:40:12 -04:00
blitzmann
0e81c985a3 Fix bad index for fit notes which causes exception on recent fits 2017-05-08 22:38:18 -04:00
blitzmann
21a071ea40 Add "remove" context menu to command fits 2017-05-08 22:34:03 -04:00
blitzmann
4f1e7697ed Fix issue in which "Open Fit" was showing on the command view, not the command fit, potentially causing an error 2017-05-08 22:29:50 -04:00
blitzmann
ccfd414cb3 Disable stopwatch in test (was failing due to import error) and fix bad requests version setting 2017-05-08 22:25:05 -04:00
blitzmann
3de63c5ca5 flake8 fixes 2017-05-08 21:32:13 -04:00
blitzmann
42e64a6223 Fix jsonToSql script and issue with character sec status setter 2017-05-08 21:24:29 -04:00
blitzmann
53f589284b Implement hard constraints for All 5/0 characters with respect to skills and sec status 2017-05-08 19:47:55 -04:00
blitzmann
aecbf8f86e Fix issue with drones causing exception during remote RR calcs 2017-05-08 19:41:34 -04:00
blitzmann
dd09b3d951 Add fitting notes to the ship browser tooltips 2017-05-08 19:20:30 -04:00
blitzmann
f022c2474c Restrict fit notes export to 400 character for CREST and XML export 2017-05-08 19:02:30 -04:00
blitzmann
249956689a text tweaks 2017-05-08 18:26:44 -04:00
blitzmann
6b22bd189a Merge remote-tracking branch 'jeffy/fix_unread_description' into dev, see #1099
Conflicts:
	eos/config.py
	gui/notesView.py
	service/settings.py
2017-05-08 00:44:29 -04:00
blitzmann
524bb43113 Merge branch 'fix_unread_description' of git://github.com/jeffy-g/Pyfa-dev into jeffy-g-fix_unread_description 2017-05-08 00:09:09 -04:00
blitzmann
83a7a854bb Merge branch 'feature/recent' into dev
Conflicts:
	eos/db/saveddata/character.py
	eos/db/saveddata/fit.py

Implements #983 but utilizing sqlalchemy events to update the fit modified date whenever something is added/changed.
2017-05-07 20:48:41 -04:00
blitzmann
0507a55731 Get resists working with more things, and fix bug in which we were still looking at an effect info (which doesn't exist anymore) 2017-05-07 19:59:25 -04:00
blitzmann
f1eb3f68d1 Change func.now() to datetime.datetime.now().
Apparently these are calculated differently (sqlite function is in utc, datetime is in local), and I couldn't figure out how to retrieve the tiome back into local. Since this is a single user application without a concern for time drift on the server, this should work just as well.
2017-05-07 11:35:26 -04:00
blitzmann
1604ea1f2c Fix many bugs related to GUI not receiving a correct timestamp, as well as extending feature out to all other fit entities. 2017-05-07 02:02:54 -04:00
blitzmann
4a9662c0f7 Merge branch 'feature/skill-filter' into dev
Conflicts:
	gui/characterEditor.py

This implements a long-requested feature to be able to search skills in the character editor
2017-05-06 13:25:20 -04:00
blitzmann
47a683c44c Merge branch 'feature/strictSkills' into dev
Conflicts:
	service/character.py

Implements strict skill requirement handling
2017-05-06 13:13:50 -04:00
blitzmann
d888982657 Merge branch 'bug/market-fit-none' into dev 2017-05-06 13:11:26 -04:00
blitzmann
184c46dbce Merge branch 'bug/unicode-skill-export' into dev 2017-05-06 13:11:07 -04:00
blitzmann
b2ae6913d7 Merge branch 'qol/self-projection' into dev 2017-05-06 13:10:48 -04:00
blitzmann
703d6dbc85 Merge branch 'feature/grant-needed-skills' into dev 2017-05-06 13:09:30 -04:00
blitzmann
2e6066e848 Merge branch 'feature/tabbed-fits' into dev 2017-05-06 13:08:52 -04:00
blitzmann
f751eff1cf Fix some styling issues on linux 2017-05-06 12:57:20 -04:00
blitzmann
d342e66db4 Merge branch 'feature/sec-status-change' into dev
Add ability to change characters sec status
2017-05-06 12:23:40 -04:00
blitzmann
1222567a4f Merge branch 'feature/allow-restrictions' into dev.
Allows user to turn off most fitting restrictions (#1117)
2017-05-06 12:11:00 -04:00
blitzmann
1f7858f853 Merge branch 'bug/resist-effects' (also includes current work on sisi branch).
This fixes the ewar resists (and possibly implements remote repair impedance, not tested)
2017-05-06 12:04:10 -04:00
blitzmann
283cb1e50c Add hard requirement for requests (for everything except mac-deprecated) 2017-05-04 21:48:30 -04:00
blitzmann
c2880c0175 Move queue and wait variables to __init__.
Turns out threading.start() returns before the thread actually starts, so there were situations in which we would start the thread and immediately try to use it before run() happened.
2017-05-04 19:27:54 -04:00
blitzmann
3d0a4b84d4 Add hard minimum requirement for logbook 0.10.0, remove requirements.txt loop as it isn't applicable for 95% of users, and Linux users are complaining about seeing console output all the time on dev 2017-05-03 20:53:10 -04:00
blitzmann
622efb624d Refactor how remote resistance works. We now check the resistance ID directly from the effect, and fall back to the remoteResistanceID attribute. See #1139 2017-05-02 22:19:58 -04:00
blitzmann
50965244c0 Merge branch 'bug/1139' into bug/resist-effects 2017-05-02 20:41:54 -04:00
blitzmann
9e6aca2496 Merge branch 'qol/effect-class' into bug/resist-effects 2017-05-02 20:38:20 -04:00
blitzmann
1cf844d415 item.attributes would not contain attributes that were added during runtime. Instead, get the attribute info and search the modified attributes for the resist attribtue. 2017-04-30 01:39:03 -04:00
blitzmann
f57e7cf1ec Implement FloatSpin as well as changing sec status via character editor 2017-04-26 22:14:30 -04:00
Ryan Holmes
bedd6efff2 Fix for #1137 - industrial command skill was applying to incorrect attribute (#1138) 2017-04-26 20:25:35 -04:00
blitzmann
9bffc6afd6 Fix issue in which exception happened because of a bad type check 2017-04-26 19:59:57 -04:00
blitzmann
77b5e8afdc Merge branch 'development' into feature/strictSkills
Conflicts:
	eos/gamedata.py
2017-04-26 19:42:29 -04:00
blitzmann
f9b7376cc7 Move sql alchemy events into their own file for now so that mac-deprecated doesn't get pissy. 2017-04-26 19:34:47 -04:00
blitzmann
34723d7bb1 Merge branch 'development' into feature/recent 2017-04-26 18:51:46 -04:00
blitzmann
32f417ce5a Created first iteration of "Recent Fits" view, in which a nav button is interacted with to show a list of the 100 most recently modified fits. Ship Broswer is littered with ToggleRecentShips() to reset the icon when not in "recent" mode. This should probably be fixed at some point.
Removed the FIT_CHANGED binding from FitItem - this was causing very odd issues when the object was destroyed (navigating to another "stage") such as the Fit Changed event for that fit no longer firing (or at least seemingly so)

To fix this, simply look at the active fit during FitItem.Refresh()

Also creates a new query to get a list of items from the DB, although it's not used (was gonna use it, decided against it, but didn't want to delete the code - could prove handy later)
2017-04-26 18:51:39 -04:00
blitzmann
5657438e3c Change up effect classes for better efficiency 2017-04-24 19:04:07 -04:00
blitzmann
f7349316b4 Revert "Change to using inspect() instead of the current shitty way"
This reverts commit 711537dcf4.

Turns out inspect() was introduced in 0.8, and mac-deprecated has 0.6.4 (without an easy way to jack it up). Stuck with this ugly, but functional code for now.
2017-04-24 00:34:04 -04:00
blitzmann
c0f74cd0a3 Fix old issue with trying to open previous fits that don't exist. 2017-04-23 23:40:51 -04:00
blitzmann
bb73065b43 Update FitItem datetime when fit changes 2017-04-22 22:46:23 -04:00
blitzmann
ae99a179d9 Update FitItem to use modified datetime of fit (fallback to created and old timestamp). Remove activation of FitItem timer (no idea what this is trying to do???) 2017-04-22 19:30:50 -04:00
blitzmann
b4930d15b7 Update Fit.modified whenever modules change, allowing proper "recent" timestamps 2017-04-22 18:58:30 -04:00
blitzmann
86e6250a63 Add strict skills to preference pane 2017-04-22 14:49:13 -04:00
blitzmann
c9a04e886a Add eos setting for strict skills, and update info in skill tree without doing a repopulation 2017-04-22 14:02:40 -04:00
blitzmann
b21c850598 move skill mapping to item class 2017-04-22 03:12:33 -04:00
blitzmann
58abdcfa22 Add dependants tab for skills 2017-04-22 03:09:18 -04:00
blitzmann
d0a4fa1c9d Get strict skills working. Todo: add engine setting 2017-04-22 02:43:06 -04:00
blitzmann
e94b4a1c18 Fix old issue with trying to open previous fits that don't exist. 2017-04-21 23:43:40 -04:00
blitzmann
2a679efc14 Remove print message for except clause when iterating through item properties. This is dev stuff, not too worried about handling it. Was failing on getting a property that doesn't make sense for a module. 2017-04-21 23:38:46 -04:00
Ebag333
4652b91e98 Always show refresh button on compare window (annoying that it hides sometimes when it shouldn't). Move compare window prices to the new price model. 2017-04-21 00:55:06 -04:00
Ebag333
0079f76f67 Change price column to use new method 2017-04-21 00:54:13 -04:00
blitzmann
711537dcf4 Change to using inspect() instead of the current shitty way 2017-04-21 00:45:36 -04:00
blitzmann
e971b7927e Fix issue in which prices are removed all the time (forgot to add the check for deleted to the condition >.<) 2017-04-21 00:40:45 -04:00
Ryan Holmes
3afa829173 Merge pull request #1136 from blitzmann/bug/rr-fuel-1135
Remote Ancil Bug
2017-04-21 00:02:11 -04:00
blitzmann
cd30d74393 Rename fueled to modifier 2017-04-20 23:54:52 -04:00
Ebag333
25a945f9e6 Catch bug where remote reppers have the fueled multiplier applied when they have no charges. 2017-04-20 23:54:36 -04:00
Ryan Holmes
504d582b59 Merge pull request #1134 from blitzmann/bug/drones
Drone bugs
2017-04-19 21:43:39 -04:00
blitzmann
3d8a80aeaa Include drones in RR stats 2017-04-19 21:36:49 -04:00
blitzmann
9ac609528b Fix issue in which drones hp/s does not consider number of drones 2017-04-19 21:04:48 -04:00
blitzmann
988861af1f Add option to ignore fitting restrictions on a per-fit basis 2017-04-18 23:57:34 -04:00
blitzmann
66a8669c64 Implement CONCORD ship sec status bonus. 2017-04-18 01:21:08 -04:00
blitzmann
99b0322289 Merge branch 'singularity' into sisi-dev 2017-04-18 00:03:58 -04:00
blitzmann
b0e7c02a6a Add migration script for character sec status 2017-04-18 00:01:25 -04:00
blitzmann
f0fc5643e9 Return and save sec status for character when updating skills 2017-04-18 00:01:25 -04:00
blitzmann
8c83ac120f Implement asynchronous api skill fetching 2017-04-18 00:01:24 -04:00
blitzmann
53cab4b1ab Merge branch 'master' into development
Conflicts:
	requirements.txt
2017-04-17 21:41:44 -04:00
blitzmann
6d176c0010 Merge branch 'master' into singularity 2017-04-17 21:41:02 -04:00
blitzmann
1aaa93c1fd Set sqlalchemy version to 1.0.5 in requirements... newer version causing issues in builds? 2017-04-17 21:35:22 -04:00
blitzmann
9d1c77f5b7 Damn you effects... 2017-04-17 21:19:51 -04:00
Ryan Holmes
3b351603a3 Merge pull request #1130 from blitzmann/feature/drone-affecting-skills
Add affecting skills context menu to drones and fighters
2017-04-17 19:52:19 -04:00
Ryan Holmes
f563b2666d Merge pull request #1129 from blitzmann/bug/fighters-1128
Fix for #1128
2017-04-17 19:46:51 -04:00
blitzmann
cede46d4a4 Remove PyYAML from list of requirements to run pyfa. 2017-04-17 19:40:47 -04:00
blitzmann
90d854fd24 Add change affecting skills menu to drones and fighters 2017-04-17 19:25:35 -04:00
blitzmann
9c406a0a44 Fix for #1128 - these modifiers are in their own pen-group 2017-04-16 23:53:19 -04:00
blitzmann
81160e9e72 Fix effects (don't need level for ship bonuses x_x) 2017-04-16 22:50:19 -04:00
blitzmann
7bfd19dca4 Update effect headers 2017-04-16 22:24:32 -04:00
blitzmann
8ff244d509 Add new effects to support new hulls 2017-04-16 22:11:28 -04:00
blitzmann
e2061a25c2 Update effects for logi 2017-04-16 21:06:28 -04:00
blitzmann
272201c0fc Update for renamed attribute 2017-04-16 20:34:58 -04:00
blitzmann
54930d7d50 Rename effects. 2017-04-16 20:20:57 -04:00
blitzmann
5ddac97719 Update EVE db from sisi 2017-04-16 19:04:51 -04:00
blitzmann
973432b997 Merge remote-tracking branch 'origin/master' into singularity 2017-04-16 19:02:17 -04:00
blitzmann
1ee679903c Bring dev up to date with master
Conflicts:
	service/fit.py
2017-04-16 11:42:41 -04:00
Ryan Holmes
89614f7948 Merge pull request #1127 from blitzmann/master
Appveyor tweaks
2017-04-16 11:39:16 -04:00
blitzmann
dec5970bd6 Update appveyor to use cx_freeze until pyInstaller is reviewed. 2017-04-16 11:31:08 -04:00
Ebag333
a374fb4a12 Appveyor (#1101)
Appveyor setup
2017-04-16 11:31:01 -04:00
blitzmann
5d066f1401 Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2017-04-16 11:12:42 -04:00
blitzmann
e8749d379a Update appveyor to use cx_freeze until pyInstaller is reviewed. 2017-04-16 11:12:15 -04:00
blitzmann
b02506d6cd fixes issue in which fit was recalced on fit switch when characters were different, regardless of calculation state. 2017-04-15 22:33:45 -04:00
blitzmann
cca61b8ac1 Fix issue with selecting item with an empty view 2017-04-14 21:45:41 -04:00
Ryan Holmes
962c45b807 Merge pull request #1124 from StinGer-ShoGuN/PR_01
Default HTML export to pyfa save path, and allow override of database file path
2017-04-14 00:31:59 -04:00
blitzmann
9646cee324 De-jankify self projections. We now check to see if the fit we're about to project is self and, if so, simply run the projections on ourselves. At this point, all bonuses should be applied to our fit. 2017-04-13 23:41:02 -04:00
blitzmann
04242ef52c Fix issue with handling item names that include unicode 2017-04-13 23:39:42 -04:00
blitzmann
da9816d1bd Implement character skill searching 2017-04-13 23:39:00 -04:00
blitzmann
283aba4f85 Add grant missing skills feature 2017-04-13 23:26:08 -04:00
blitzmann
080590a292 Add "Currently Open Fits" context menu for projected and command views 2017-04-13 23:23:48 -04:00
blitzmann
a7ec10525e Apparently this happens on command fits as well... temp fix until I can look into why this happens 2017-04-13 23:23:47 -04:00
blitzmann
e28bf545e9 Fix some bugs with notes view - exception happening due to lack of fit, and possibility of notes saving under the wrong fit 2017-04-12 23:22:57 -04:00
Ryan Holmes
5aeb3a38c8 Fit Calculation Code Cleanup (#1103)
* Remove dirtyStorage, legacy of old fleet boosting system

* Remove withBooster flag from the recalc() function.

This was a legacy parameter dealing with the old fleet boost code, the purpose of which has changed with the addition of command boosts. We no longer have to call recalc with this particular parameter (indeed, it was forced to False in `recalc`). These were never cleaned up. We still have the withBoosters parameter for the `calculateModifiedAttributes` function, however that will be renamed and has a different meaning than it used to (used in the recursion of command fits)

* Add some comments

* Consolidate the tangled mess of conditional flags meant to determine if a fit is local/projected/command. This should make the logic flow a bit clearer.

Also rewrite a blurb about returning on a calculated fit - need to look into this a little bit more.

* fix up test to no longer pass `withBooster`
2017-04-12 19:50:16 -04:00
StinGer ShoGun
c00372900f Save HTML export to .pyfa user's directory by default.
This commit is part of attempts to ease system package creation and
maintenance (specifically Gentoo ebuilds).
2017-04-12 16:13:56 +02:00
StinGer ShoGun
7f50503aec Allow game database file to be loaded from a different directory.
This will allow system-wide installation of Pyfa in Python site-packages
directory, where eve.db has nothing to do.

This commit is part of attempts to ease system package creation and
maintenance (specifically Gentoo ebuilds).
2017-04-12 16:07:21 +02:00
blitzmann
87a600349c Temporarily fix issue with removing a self projected fit 2017-04-11 23:58:05 -04:00
Ryan Holmes
114246bf1e Do not recalc fits on tab switch (#1105)
* Do not recalc fits if they are already calculated. Fits that are projected onto other fits recursively set their victims to `calculated=False` so that the victim will re calculate when it loads again.

* Reset boosted fits when calculating a fit that is boosting others. Also, remove semicolon due to habit :x

* Develop a `__resetDependantCalc()` which will reset any fits that are immediately affected by the current fits calculation.
2017-04-11 23:40:40 -04:00
Ryan Holmes
ebda1349cf Add a small delay on key down for market search (#1123)
* Add a small delay on key down for market search

* prevent a double search if user does something like hit enter in the middle of a timer
2017-04-11 23:30:38 -04:00
Ryan Holmes
45a8aaf387 Merge pull request #1111 from Ebag333/fit_tests
Tests for eos\saveddata\fit.
2017-04-11 00:42:54 -04:00
Ryan Holmes
514933e0e4 Merge pull request #1120 from blitzmann/feature/delete-things
"Delete all" buttons for Prices, Target Resists, Damage Profiles
2017-04-10 22:03:20 -04:00
blitzmann
6f914386ec Remove unused function 2017-04-10 21:58:56 -04:00
blitzmann
efaede0929 Use queries to bulk-delete target resists and damage profiles 2017-04-10 21:49:35 -04:00
Ebag333
73821cbe49 Formatting 2017-04-10 21:41:56 -04:00
Ebag333
e245891cb4 Add delete buttons 2017-04-10 21:40:59 -04:00
blitzmann
50e604f412 convert print to debug statement >.< 2017-04-10 21:32:26 -04:00
blitzmann
4e74555b5d Opps, forgot to change this back from testing. 2017-04-10 21:26:03 -04:00
blitzmann
894c86ebc3 Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2017-04-10 21:09:40 -04:00
Ryan Holmes
47ea12f4ba Merge pull request #1048 from Ebag333/ErrorDialog_and_miscfixes
Error Dialog improvements and Pyfa.py refactoring
2017-04-10 21:09:11 -04:00
blitzmann
ce01c66b3e Better manage price object juggling in Item.price property. The previous way was creating new price objects when an object already existed in the database which could lead to Integrity issues. 2017-04-10 20:48:58 -04:00
blitzmann
1260900668 Merge branch 'pricing_v2' into development 2017-04-10 20:46:57 -04:00
jeffy-g
a86ff19c98 Merge branch 'fix_unread_description' of https://github.com/jeffy-g/Pyfa-dev into fix_unread_description 2017-04-10 14:31:29 +09:00
jeffy-g
c07bcf6a29 Determine the necessary changes to use db with test code,
I made necessary edits

.travis.yml
  necessary to depend on wx mod indirectly when running test code

eos\config.py
  copy from development branch, This change was necessary when using data base in test code.

service\settings.py
  copy from development branch.
  and modified SettingsProvider.getSettings and Settings.save.
  After that, we made the same as master branch except for necessary code.
  This change was necessary when using data base in test code.

and other improvement.
2017-04-10 14:23:50 +09:00
Ryan Holmes
82f6d26a88 Merge pull request #1109 from Ebag333/eos_fit_cleanup
Some quick cleanup of logging and shtuff
2017-04-09 23:25:11 -04:00
Ebag333
d1e8f5cf5c Placeholder test (#1113)
* Placeholder test

* pep8
2017-04-09 22:44:28 -04:00
Ryan Holmes
82edaf05d3 Merge pull request #1116 from pyfa-org/eos_cleanup
Eos cleanup
2017-04-09 22:43:29 -04:00
blitzmann
fadc514592 Add back the booster side effect stuff 2017-04-09 22:38:31 -04:00
jeffy-g
fc7ca56f8b searching for a way to open db with minimal changes required 2017-04-10 09:33:54 +09:00
jeffy-g
d629061506 Merge branch 'master' into fix_unread_description 2017-04-10 03:20:35 +09:00
jeffy-g
4a964ab6be apply recent improvements 2017-04-10 03:05:44 +09:00
jeffy-g
53957c24df Reflect changes when writing test code 2017-04-08 22:31:25 +09:00
Ryan Holmes
addff1118c Extend "Open Fit In Context Menu" option for command fits. (#1104) 2017-04-05 19:26:12 -04:00
Ebag333
6a1d106fea Appveyor (#1101)
Appveyor setup
2017-04-05 16:18:03 -07:00
Ryan Holmes
07f88cc4d1 Add Create and Modify fields for most database tables (#1073)
* Add created/modified fields to relevant tables.

* Add migration for created and modified fields

* Seriously tox?
2017-04-05 18:54:57 -04:00
Ryan Holmes
5f35553438 Restrict cap modules to only cap ships (#1097)
* Restrict capital modules to capital hulls

* tweak comment

* Make a isCapitalSize property for modules
2017-04-05 18:54:16 -04:00
Ebag333
802e2afcc0 General cleanup of Eos. Reformats a bunch of files and cleans up unused code or code that's been commented out 2017-04-05 15:47:19 -07:00
Ebag333
ee09b41e08 Use rlock instead of lock 2017-04-05 14:56:22 -07:00
Ebag333
994bd72409 Rework pricing. 2017-04-05 14:40:27 -07:00
Ebag333
01eaba6697 First pass 2017-04-05 11:44:36 -07:00
jeffy-g
d4d69522f5 edit source 2017-04-06 03:37:40 +09:00
jeffy-g
dd88d64d67 im trying PyCharm now! 2017-04-05 21:48:37 +09:00
jeffy-g
0ecaa4d36c edit missied format... 2017-04-05 21:26:45 +09:00
jeffy-g
e9e8ef964c refactoring some code and added docstring
added stopwatch.py(modify from utils.timer.py) for test
2017-04-05 21:18:30 +09:00
Ebag333
c2360528ee Don't flush to DB 2017-04-05 01:09:00 -07:00
Ebag333
3221fba02c Copy/pasta error 2017-04-05 00:52:35 -07:00
Ebag333
c1b74f481a Tox 2017-04-05 00:44:02 -07:00
Ebag333
e2c0dc7e92 Tests for eos\saveddata\fit. 2017-04-05 00:42:19 -07:00
Ebag333
df510c40f4 Some quick cleanup of logging and shtuff 2017-04-05 00:17:13 -07:00
Ebag333
48db3c8ce4 Add some key logging for database information. 2017-04-04 15:01:05 -07:00
Ryan Holmes
9d029b46b1 Respect command fit state (#1100)
* Respect command fit state in calculations

* Utilize `getCommandInfo` instead (we do it this way for projections. Consistency, fuck yeah!)
2017-04-02 23:20:31 -05:00
Ebag333
d2af4f7d9c Locale Tests (#1079)
* Locale tests redo

* Add helper

* Remove line break if found.

* Fix imports

* Remove copy that snuck in

* Install language packs

* Change language pack install

* fix china language pack

* Fix tests that I accidentially broke

* Add debug print

* Don't try and parse Travis cache dirs

* Fix counting
2017-04-02 15:53:14 -07:00
Ryan Holmes
3dd539b4f0 Improve some efficiencies with the variations context menu: Do not recalc twice when switching items. (#1095) 2017-04-02 16:46:25 -05:00
Ebag333
1daafd15e6 Tests (#1086)
* First step in more tests

(cherry picked from commit b9af117)

* Formatting

(cherry picked from commit 5f037e6)

* Booster test fixes

* Switch to wx3.0

* try coda
* Test output

* Tweak travis

* try reduced virtualenv

* Tweak travis

* Reduce test to a single one.

* Formatting
2017-04-02 10:26:11 -07:00
jeffy-g
8fd424814a edit... 2017-04-03 02:00:10 +09:00
jeffy-g
4d8c3eadbc pep8 2017-04-03 01:50:26 +09:00
Ryan Holmes
92722d491f Remove functionality related to auto HTML export (#1088) 2017-04-02 11:46:17 -05:00
jeffy-g
c560d17bdd Improved processing status notification for import and export 2017-04-03 01:34:07 +09:00
Ebag333
55dff65142 Tox things 2017-04-02 01:03:14 -07:00
Ebag333
cdec6fad99 Clean up requirements file. Add detection and warning for possibly missing requirement. Change back to using the modal. 2017-04-02 00:57:11 -07:00
Ryan Holmes
216dac068d Fix for #1090 - using variations on implants is not recalcing fit correctly. (#1094) 2017-04-02 01:04:34 -05:00
Ryan Holmes
f9ec79c8eb Merge pull request #1093 from pyfa-org/master
Bring dev up to date with master
2017-04-01 23:14:26 -05:00
Ryan Holmes
112ab91e34 Fix for #1091 (#1092) 2017-04-01 23:09:32 -05:00
Ryan Holmes
59b0ac127f Merge pull request #1071 from blitzmann/issue-686
Switch units in recharge pane based on effective HP toggle (requested by #686)
2017-04-01 22:31:38 -05:00
Ryan Holmes
e03b3227d4 Fix for #1081 (#1085)
* Break project application code out of main item iteration, and apply it after command boosts have been applied to the fit. Fix for #1081

* Make tox happy
2017-04-01 22:23:50 -05:00
Ryan Holmes
f08a66924c Re-introduce Command Fit State (#1074)
Reintroduce command view state

Squashes `blitzmann/command-fit-state`:

* Reintroduces command view state, allowing users to toggle command fits on and off.
* Remove type() function call and use __class__ instead
2017-04-01 22:04:44 -05:00
Ebag333
535b75225b dump module list and versions 2017-03-28 18:49:10 -07:00
Ebag333
b99c44667e Remove unused import 2017-03-27 21:11:07 -07:00
Ebag333
c6d50b7d6e Merge branch 'development' into ErrorDialog_and_miscfixes 2017-03-27 21:00:51 -07:00
Ebag333
03f12bfca1 Finish implementing wx 2.8 selector. Add a bunch of error catching. General cleanup.
(cherry picked from commit b0ec69e)
2017-03-27 20:52:45 -07:00
Ebag333
78a8c105f4 First pass at re-implementing wx 2.8 preference 2017-03-27 16:57:55 -07:00
Ryan Holmes
878d9d7148 Merge pull request #1072 from blitzmann/fix-string-variables
Fix an exception caused by too few variables for string formatting
2017-03-27 00:04:42 -04:00
blitzman
cb77987129 Fix an exception caused by too few variables for string formatting 2017-03-26 23:51:05 -04:00
blitzman
37ec3d41d9 Switch the units of recharge rates based on EHP / HP 2017-03-26 16:19:14 -04:00
Ryan Holmes
6ececbb81a Merge pull request #1063 from blitzmann/feature/commandmenu
Command Fit Menu
2017-03-26 14:56:50 -04:00
Ryan Holmes
a67c28a4c9 Merge branch 'development' into feature/commandmenu 2017-03-26 14:43:12 -04:00
Ryan Holmes
c3a0176c88 Merge pull request #1021 from Ebag333/MorePreferences
Add more functionality to preferences window.
2017-03-26 14:42:49 -04:00
blitzman
e7de57fc7a tox fixes 2017-03-26 14:39:45 -04:00
blitzman
d928df9c69 Move useStaticAdaptiveArmorHardener to the EOSSettings. Not moving force reload for now 2017-03-26 14:28:13 -04:00
blitzman
b18bb200a9 Merge branch 'development' into MorePreferences 2017-03-26 13:52:59 -04:00
Ryan Holmes
225011f2c1 Merge pull request #1070 from blitzmann/fixforsettings
Fix settings provider
2017-03-26 13:47:41 -04:00
blitzman
024edc500f Fix settings provider 2017-03-26 13:35:46 -04:00
Ryan Holmes
42d59d21a6 Merge pull request #1042 from Ebag333/HandleBadHandleres
Effect Handlers Import - Less Spam
2017-03-26 12:38:47 -04:00
Ryan Holmes
4795571629 Merge branch 'development' into HandleBadHandleres 2017-03-26 12:33:58 -04:00
Ryan Holmes
df587892a3 Merge branch 'development' into feature/commandmenu 2017-03-26 12:27:52 -04:00
Ryan Holmes
57a1f71fdd Merge branch 'development' into ErrorDialog_and_miscfixes 2017-03-26 12:22:08 -04:00
Ryan Holmes
1ffcdc92f2 Merge pull request #1031 from Ebag333/tooltip_capacitor_neut_resistance
Tooltip for capacitor neut resistance
2017-03-26 12:16:41 -04:00
Ryan Holmes
bd043c2358 Fix for #1061 (#1068)
Squash commit that does the following:

* Enable Council Diplo Shuttle
* Disables a test that was preventing Travis from returning success (need to look into this more later)
2017-03-26 12:15:07 -04:00
blitzman
fbd0a6ddda Create a custom pre-check exception that we can check for when doing our unhandled exception handling. 2017-03-25 22:34:35 -04:00
blitzman
e7aceb6a8b Bringing branch up to date with dev
Merge branch 'development' into ErrorDialog_and_miscfixes

Conflicts:
	eos/saveddata/fit.py
	pyfa.py
2017-03-25 22:30:18 -04:00
blitzman
fd745c5f62 Tox fix. 2017-03-25 01:02:20 -04:00
Ryan Holmes
41628ca17f Merge pull request #1065 from Ebag333/pytests
pytests
2017-03-25 00:41:02 -04:00
Ebag333
21fbbf154d Try fake wx module 2017-03-24 18:00:51 -07:00
Ebag333
66c4aefc1e Add comment 2017-03-24 17:27:17 -07:00
Ebag333
5d5c95fb2c Example tests for services! General cleanup.
(cherry picked from commit 9f41bb4)
2017-03-24 11:15:39 -07:00
Ebag333
13305d9ee1 Use correct formula. \o/
(cherry picked from commit b20b6c1)
2017-03-24 11:15:37 -07:00
Ebag333
4a9638767d use math
(cherry picked from commit 4b75f57)
2017-03-24 11:15:34 -07:00
Ebag333
55cd0d5000 Clean up test structure a bit
(cherry picked from commit 320e05b)
2017-03-24 11:15:32 -07:00
Ebag333
1da15cfde3 Add right number of levels to remove.
(cherry picked from commit 1d0a682)
2017-03-24 11:15:30 -07:00
Ebag333
9df0ee9a1c Comment out print
(cherry picked from commit df48cda)
2017-03-24 11:15:28 -07:00
Ebag333
8baeafbdc2 Rename a few tests to follow standards. Move fits into a helper so they can be reused. Add two new Eos tests.
(cherry picked from commit f87ac4d)
2017-03-24 11:15:25 -07:00
Ebag333
aacddb251d pep8 stuff
(cherry picked from commit e87b6c3)
2017-03-24 11:15:23 -07:00
Ebag333
1240e0f768 attempt terrible hack make run in memory
(cherry picked from commit 357275c)
2017-03-24 11:15:20 -07:00
Ebag333
cdbd2979d2 Back to what works on Windows
(cherry picked from commit 3401b87)
2017-03-24 11:15:05 -07:00
Ebag333
da493d07c0 recreate DB connection
(cherry picked from commit 5593e28)
2017-03-24 11:15:02 -07:00
Ebag333
bccb1d2805 update config
(cherry picked from commit b18aecf)
2017-03-24 11:15:00 -07:00
Ebag333
d84787b041 add test
(cherry picked from commit b1b5cb1)
2017-03-24 11:14:57 -07:00
Ebag333
f1d6252d8b Add pyfa path to python paths
(cherry picked from commit dd51c38)
2017-03-24 11:14:53 -07:00
Ebag333
38a7a50d1c move helpers functions out
(cherry picked from commit 2047d3f)
2017-03-24 11:14:50 -07:00
Ebag333
3ca181fce4 Add comment
(cherry picked from commit dbbe3aa)
2017-03-24 11:14:48 -07:00
Ebag333
9eeb01b746 Add debug output
(cherry picked from commit f8d7012)
2017-03-24 11:14:45 -07:00
Ebag333
9ef9a0f1fb disable import tests
(cherry picked from commit 58ac331)
2017-03-24 11:14:43 -07:00
Ebag333
599b5318fc Add local path
(cherry picked from commit c9c340d)
2017-03-24 11:14:41 -07:00
Ebag333
75df133071 Add hack to add in root path to python paths
(cherry picked from commit 1068c41)
2017-03-24 11:14:38 -07:00
Ebag333
403b39659c Fix tox things.
(cherry picked from commit 60298c8)
2017-03-24 11:14:34 -07:00
Ebag333
8d357ee282 Test more Rifter things!
(cherry picked from commit b92f584)
2017-03-24 11:14:32 -07:00
Ebag333
96ad687944 Baby's first (real) Eos test.
(cherry picked from commit df51f9f)
2017-03-24 11:14:29 -07:00
blitzman
79040adf1a tox fixes 2017-03-23 01:13:41 -04:00
blitzman
cbcc81d42e Actually apply the command fit, and remove print statement 2017-03-23 00:38:24 -04:00
blitzman
732386b83a Get command fit menu up and running. Had to revert to a non-cached version of the menu, as the instance has root menu, which we need in order to properly bind. Don't think caching the menu would have really given a large performance gain anyway. 2017-03-23 00:38:24 -04:00
blitzman
4065022866 Initial work on caching command fits unless needing to update. FitChanged event can now carry an action and typeID, only used in the CommandFit context menu (for now, can use this elsewhere). If the module being added or removed, we update the cached list. 2017-03-23 00:38:23 -04:00
blitzman
6c1d949cef Proof of concept for gathering fits based on modules that are fit 2017-03-23 00:38:23 -04:00
blitzman
c4293bba6b bump dev 2017-03-23 00:36:20 -04:00
blitzman
0a1008f64f Merge branch 'master' into development 2017-03-23 00:35:28 -04:00
Ebag333
a5cb2a9f00 Add logbook version warning 2017-03-22 18:52:04 -07:00
blitzman
4a6c0db4fa Bump to stable point release 2017-03-20 21:05:09 -04:00
blitzman
f31ec9a154 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2017-03-19 16:29:27 -04:00
blitzman
b4ad4becd3 Fix for #1060 2017-03-19 16:27:41 -04:00
Ryan Holmes
554807968a Update requirements.txt 2017-03-19 00:23:17 -04:00
Ryan Holmes
5cecb24654 Update README.md 2017-03-19 00:22:50 -04:00
blitzman
5911538e29 Do a version check for logbook 2017-03-19 00:22:17 -04:00
Ebag333
0ccd812398 Add logging OS version. Deprioritize some messages to debug, so devs can run at info level with less spam (and much less impact on recalc times). 2017-03-18 13:27:07 -07:00
Ebag333
9c693cd7ed Python now properly requires 2.7 and not 2.6 or 2.7. Removed duplicate output to log, now that we handle exceptions. 2017-03-18 13:11:40 -07:00
Ebag333
fbcd8396db Few little tweaks 2017-03-18 12:55:53 -07:00
Ebag333
b1be2eee06 Add unhandled exception handler. Now catches problems and will try and output to the pyfalog, falling back to outputting to the console. 2017-03-18 12:37:23 -07:00
Ryan Holmes
bca26721ff Merge pull request #1057 from Ebag333/Moar_Logging!
Fit service logging
2017-03-17 21:41:13 -04:00
Ebag333
301e874cd4 Add a ton of logging to the fitting service 2017-03-17 16:05:09 -07:00
blitzman
2ff66970ad remove __all__ from contect menus 2017-03-16 19:05:07 -04:00
Ryan Holmes
58142664cc Merge pull request #1051 from Ebag333/Fix_PR943
Fix bad merge of #943
2017-03-16 18:58:09 -04:00
Ryan Holmes
73f6a68b9d Merge pull request #1047 from Ebag333/Hotfix_Implant_ContextMenu
Hotfix - Implant ContextMenu
2017-03-16 18:54:04 -04:00
Ryan Holmes
b88f4bc77f Merge pull request #1050 from Ebag333/Hotfix_Matplotlib
Hotfix - Matplotlib import
2017-03-16 18:52:48 -04:00
Ebag333
e3c2220a1c Fix matplotlib importing 2017-03-16 14:09:10 -07:00
Ebag333
26238e731d Fix matplotlib importing 2017-03-16 10:22:40 -07:00
Ebag333
717db2f906 Further pyfa.py refactoring 2017-03-16 09:40:17 -07:00
Ebag333
1c59a27902 Fix typo and missing setting
(cherry picked from commit c122047)
2017-03-16 08:40:18 -07:00
Ebag333
6ce52a1da9 PEP8 cleanup
(cherry picked from commit 63f2f85)
2017-03-16 08:40:14 -07:00
Ebag333
f2a0e42810 Rework error dialog to have better layout and more information 2017-03-16 02:13:02 -07:00
Ebag333
63f2f85c25 PEP8 cleanup 2017-03-16 02:12:26 -07:00
blitzman
80375d1f5b Merge branch 'master' into development 2017-03-15 20:19:22 -04:00
blitzman
20ac2ad847 bump dev 2017-03-15 20:19:05 -04:00
blitzman
3b5fc7e13c Bump stable 2017-03-15 20:10:08 -04:00
blitzman
73a12aedeb Fix for #1041 2017-03-15 20:05:38 -04:00
blitzman
2ce6592048 Merge branch 'development' 2017-03-15 20:01:01 -04:00
Ebag333
a588aec978 Simple change to not try and reimport handlers if they have failed previously. 2017-03-15 15:53:40 -07:00
blitzman
8b124f3194 Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2017-03-15 00:03:01 -04:00
blitzman
588ac62b6f fix for #1039 2017-03-15 00:02:48 -04:00
Ryan Holmes
63001d83b9 Merge pull request #1037 from Ebag333/Fix_Outgoing_Minimal_View
Fix outgoingMinimal view
2017-03-15 00:00:43 -04:00
blitzman
1112415f93 update eve database 2017-03-14 19:40:44 -04:00
blitzman
4633a1c136 some clean up 2017-03-14 19:22:18 -04:00
Ebag333
8991e1dbad Fix the view. Not sure why it broke (it was working at one point). 2017-03-13 20:09:37 -07:00
blitzman
d5f6f7b37c Disable "minimal" selection for remote reps pane (doesn't work) 2017-03-13 21:49:31 -04:00
blitzman
4ffec21cd3 Add real icons for the new pref pages 2017-03-13 21:46:56 -04:00
Ebag333
9d34c2a2e6 Add TODO 2017-03-13 11:52:18 -07:00
Ebag333
4f12caa05f Remove test variable 2017-03-13 11:30:07 -07:00
Ebag333
649ba71c0f Make sure overrides are enabled before we return override values 2017-03-13 11:15:14 -07:00
Ebag333
af5a9b31bc Fix another hidden import (move to top) 2017-03-13 11:09:12 -07:00
Ebag333
b72304203c Add default option to getOriginal. This eliminates some double lookups and simplifies the code. 2017-03-13 10:56:33 -07:00
Ebag333
f70d250995 Cleanup code. Use slightly faster comparison (is instead of isinstance). Rename OVERRIDES variable to eliminate confusion. 2017-03-13 10:11:15 -07:00
blitzman
a4d07a4611 Revert "Merge pull request #1008 from Ebag333/local_tests"
This reverts commit 91b1b1dfc2, reversing
changes made to 53937d1723.
2017-03-11 20:02:10 -05:00
Ryan Holmes
91b1b1dfc2 Merge pull request #1008 from Ebag333/local_tests
Locale Testing
2017-03-11 19:34:53 -05:00
Ryan Holmes
53937d1723 Merge pull request #1023 from Ebag333/EosLoggingCleanup
Quick Eos cleanup and logging fix
2017-03-11 19:33:58 -05:00
Ebag333
46626e9a63 Kill another double lookup 2017-03-09 15:31:19 -08:00
Ebag333
b5626c13b1 Refactor __calculateValue 2017-03-09 15:16:52 -08:00
Ebag333
84de420002 Remove comment 2017-03-09 12:27:45 -08:00
Ebag333
99f939026f Refactor some logic in modifiedAttributeDict 2017-03-09 12:14:23 -08:00
Ryan Holmes
ad973dd51a Merge pull request #1034 from Ebag333/SpellingIsHurd
Spelling Is Hurd
2017-03-09 10:40:59 -05:00
Ebag333
9da485da55 Cleaning up tox errors that crept in by the pep8 gremlins. 2017-03-08 21:02:57 -08:00
Ebag333
da922601cd You say Potatoe, I say tomahtie 2017-03-08 20:59:53 -08:00
Ebag333
8322307ae0 Add tooltip for neut resist. Add handling missing attributes in getting modified value (return default, not exception). Tox fixes to clean up a little. 2017-03-07 09:45:34 -08:00
Ryan Holmes
58977810f9 Merge pull request #1030 from Will-W/new_tab
Add option to open fit in new tab
2017-03-06 21:14:51 -05:00
Will Wykeham
05facc6961 Remove semicolon caused by too much C programming 2017-03-06 14:03:27 +00:00
Will Wykeham
f8db54136e Add option to open fit in new tab
Works from context menu and on middle click - like a browser
2017-03-06 13:52:56 +00:00
Ryan Holmes
ce972ceddd Merge pull request #1029 from bjjerry/development
Fix for first low slot drag and drop
2017-03-06 00:09:23 -05:00
JJ Berry
9ad61c1e23 Need to enter if block in case of modPosition 0 as it refers to the first low slot 2017-03-05 18:54:17 -08:00
blitzman
1c4128b9a1 Change probe size cap to 1.08 (previous testing done apparently showed 1.1 - 1.12, however most people refer to 1.08 as the cap. 2017-03-05 17:01:00 -05:00
blitzman
2c4a2f7dd9 Fix probe size not updating #1026 2017-03-05 16:38:00 -05:00
blitzman
9befaf7c91 Test implementation of eos settings 2017-03-05 02:01:10 -05:00
Ryan Holmes
ab34b31219 Merge pull request #1022 from Ebag333/MoreLogging
Add additional logging to services
2017-03-01 00:44:43 -05:00
Ebag333
b9b56f5e73 kill another hidden import. 2017-02-28 19:23:01 -08:00
Ebag333
d28312f13b Slightly correction to the effective reload time for cycle time. 2017-02-28 18:57:12 -08:00
Ebag333
9134464a39 Fixes case that would generate a exception on the first fit calc (would trigger logging dumps for users). Also clean up a bunch of unnecessary try/exceptions, and some logging improvements 2017-02-28 11:28:41 -08:00
Ebag333
ff5d40dcd3 Add additional logging to services 2017-02-28 10:32:03 -08:00
Ebag333
9a284bc740 Add preference to disable ship browser tooltip popup. 2017-02-27 14:33:18 -08:00
Ebag333
d67573f83a Add more functionality to preferences window. 2017-02-27 12:05:38 -08:00
Ryan Holmes
c97a388fc4 Merge pull request #1018 from Ebag333/Merge_New_Pane
Changes required to implement the remote reps pane
2017-02-26 23:48:27 -05:00
Ebag333
370b58d500 Changes required to implement the remote reps pane 2017-02-26 12:42:39 -08:00
Ryan Holmes
dbffdedc92 Merge pull request #996 from Ebag333/PreferencesPaneV2
Preferences Pane V4
2017-02-26 15:14:05 -05:00
Ebag333
712b1811b3 Tox fixes 2017-02-26 11:30:23 -08:00
Ebag333
f2fa598ed7 Merge branch 'PreferencesPaneV2' of https://github.com/Ebag333/Pyfa into PreferencesPaneV2 2017-02-26 11:29:52 -08:00
blitzman
5283c50f84 Merge branch 'master' into development
Conflicts:
	config.py
	gui/utils/exportHtml.py
2017-02-26 14:28:46 -05:00
Ebag333
ee7dbd5208 Tox fixes 2017-02-26 11:28:18 -08:00
blitzman
821298b6d0 tox 2017-02-26 14:26:32 -05:00
Ebag333
dc6cde86c9 Merge branch 'development' into PreferencesPaneV2 2017-02-26 11:22:10 -08:00
blitzman
1826122381 Clean up some syntax (use isinstance) and tox stuff 2017-02-26 14:17:46 -05:00
Ebag333
fbf35edae2 Fix capitalization and set up some logging to help catch errors. 2017-02-26 11:09:56 -08:00
Ryan Holmes
70934e05e1 Merge pull request #943 from Ebag333/More_Variations
Add variations for: drones, fighters, boosters, and implants
2017-02-26 13:33:13 -05:00
blitzman
b235dddbe0 Clean up to the sorting of implants and bosoters 2017-02-26 13:31:56 -05:00
blitzman
fc45cef834 Change order of RR pane 2017-02-26 12:56:31 -05:00
Ebag333
a43de00153 Tox fixes 2017-02-26 09:55:32 -08:00
Ebag333
949144ab25 Embiggen the preference pane window. Change text, and clean up some unused imports. 2017-02-26 09:54:58 -08:00
Ebag333
68e75025be Finish migrate from #868. Lots of tox/formatting/inspection fixes to the files touched. 2017-02-26 09:54:58 -08:00
Ebag333
77e5bebf13 Migrate files from #868 2017-02-26 09:54:57 -08:00
Ebag333
2a72d10bfc Commit file so we can migrate over from old PR 2017-02-26 09:54:57 -08:00
Ebag333
5aa5732606 Initial rollup of #868 2017-02-26 09:54:57 -08:00
Ryan Holmes
3209459e6d Merge pull request #995 from Ebag333/Remote_Repair_Pane_v2
Remote Repair Pane v2
2017-02-26 12:51:13 -05:00
blitzman
0bc0cb7f82 wx tweaks 2017-02-26 12:27:14 -05:00
Ebag333
4e9d2a5e18 Rename file so pytest doesn't think it's a test. 2017-02-26 08:55:29 -08:00
Ebag333
915df1c731 Merge branch 'development' into PreferencesPaneV2 2017-02-26 08:53:56 -08:00
Ebag333
7eb193cbbb Delete test, the method being tested no longer exists. 2017-02-26 08:52:27 -08:00
Ebag333
b63c5fa1ff Tox fixes 2017-02-26 08:50:13 -08:00
Ebag333
e4d0f2dc6f Fix case where property gets reran multiple times. 2017-02-26 08:46:23 -08:00
blitzmann
767cb46d40 Merge branch 'development' into More_Variations
Conflicts:
	gui/builtinContextMenus/metaSwap.py
2017-02-26 02:24:38 -05:00
blitzmann
c430a2d798 Merge branch 'development' into Remote_Repair_Pane_v2
Conflicts:
	eos/mathUtils.py
	service/crest.py
2017-02-26 01:40:53 -05:00
blitzman
1c273210e9 tox fixes 2017-02-26 00:44:37 -05:00
Ryan Holmes
db4e5e05a4 Merge pull request #1012 from Ebag333/PropertiesPane
Add Properties Pane
2017-02-26 00:17:38 -05:00
Ryan Holmes
c6483c4b98 Merge pull request #986 from Ebag333/LogBook_v2
Logbook V2
2017-02-25 23:59:30 -05:00
blitzman
94c098cce3 Fix path and graphFrame issue. I could have sworn these were already fixed during the previous merge... 2017-02-25 19:06:39 -05:00
blitzman
6eddfd2694 Merge branch 'development' into LogBook_v2
Conflicts:
	gui/bitmapLoader.py
2017-02-25 19:03:56 -05:00
blitzman
cb15a3a1d6 Merge branch 'master' into development 2017-02-25 19:02:15 -05:00
blitzman
cd516f80bb bump dev 2017-02-25 19:01:57 -05:00
blitzman
1d9b85c043 Merge branch 'master' into development 2017-02-25 19:01:28 -05:00
blitzman
1ae5f64696 Here we go again! 2017-02-25 18:50:20 -05:00
blitzman
bf24e5f518 Fix for #1014 2017-02-25 18:47:03 -05:00
blitzman
7115cd178c Merge branch 'development' into LogBook_v2
Conflicts:
	config.py
	eos/saveddata/fit.py
	gui/bitmapLoader.py
	gui/graphFrame.py
	gui/utils/exportHtml.py
	pyfa.py
	service/crest.py
	service/price.py
	service/server.py
2017-02-25 18:21:07 -05:00
blitzman
6da806c9c5 Merge branch 'master' into development 2017-02-25 17:49:26 -05:00
blitzman
4895d76bea bump dev 2017-02-25 17:49:06 -05:00
blitzman
f527f9533e Bump stable for real 2017-02-25 17:38:14 -05:00
blitzman
5adfcbf343 Add links in the error dialog 2017-02-25 17:37:38 -05:00
blitzman
c0e0612e02 Merge branch 'errortest' 2017-02-25 17:12:19 -05:00
blitzman
4ba4a753cb Implement and error message if config fails 2017-02-25 17:12:09 -05:00
blitzman
3cbd154c8a Fix for #1013 2017-02-25 16:44:31 -05:00
blitzman
6ab936ef09 lol jk 2017-02-25 14:41:40 -05:00
Ebag333
3383153b66 Little cleanup 2017-02-25 11:23:07 -08:00
Ebag333
04b412dd5b Test walking subdirectories, and using new unicode path 2017-02-25 11:20:40 -08:00
Ebag333
ac20030612 Simple wx file dialog test 2017-02-25 10:52:52 -08:00
blitzman
083c5d1722 Bump stable 2017-02-25 13:23:21 -05:00
Ebag333
baec24ef14 get rid of unused method 2017-02-24 21:28:23 -08:00
Ebag333
df7f0b20f5 Tox cleanup 2017-02-24 21:25:13 -08:00
Ebag333
e5e3133869 Catch exceptions if we get them from a property. Exceptions are bad, but not showing the window is worse. 2017-02-24 21:18:38 -08:00
Ebag333
ca6ef546e5 Add debug pane for item stats 2017-02-24 18:09:22 -08:00
Ebag333
c24798ad2f Clean up last reference and finish nuking floatfloor. One less method! (ouch my test!) 2017-02-24 17:07:05 -08:00
Ebag333
3411eca1e7 Fix a couple pep8 issues, and clean up other folks pep8 misses. :) 2017-02-24 16:34:32 -08:00
Ebag333
43073069c7 Fix merge conflict. 2017-02-24 16:25:31 -08:00
Ebag333
db330ad035 Merge remote-tracking branch 'origin/Remote_Repair_Pane_v2' into Remote_Repair_Pane_v2
# Conflicts:
#	eos/saveddata/fit.py
2017-02-24 16:15:39 -08:00
Ebag333
b3c7273681 implement a suggestion or six from @blitzmann. Fix a bunch of low level bugs (unlikely to have been noticed since we don't really expose those stats). Add some properties instead of referencing the attribute directly. 2017-02-24 16:10:54 -08:00
blitzman
3892ac5996 Change functionality of remote rep calculations to be more efficient.
* Implement a property per attribute
* Use None as our cleared value (signifies that it really hasn't been calculated, not just that the calc was 0)
2017-02-24 18:33:42 -05:00
Ryan Holmes
249841c0db Update pyfa.spec 2017-02-24 16:55:22 -05:00
Ryan Holmes
8900674b72 Merge pull request #978 from Ebag333/OneClickBuilds
One Click Builds
2017-02-24 16:52:58 -05:00
Ebag333
5ca882d3ea implement a suggestion from @blitzmann 2017-02-24 13:06:02 -08:00
Ebag333
516ff6f8e6 Fix .gitignore so it stops ignoring pyfa.spec. RUDE! 2017-02-24 12:14:39 -08:00
Ryan Holmes
dc9c481b80 Merge remote-tracking branch 'blitzmann/unicodetests' 2017-02-24 09:54:50 -05:00
Ebag333
5c55290944 rename some tests 2017-02-24 04:04:43 -08:00
Ebag333
86a145f01c some cleanup 2017-02-24 03:47:21 -08:00
Ebag333
78597a8554 Add hebrew and chinese 2017-02-24 03:34:16 -08:00
Ebag333
0288ba6012 Initial submission for locale testing 2017-02-24 03:27:29 -08:00
blitzman
bada45ec69 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2017-02-24 00:11:30 -05:00
blitzman
ee407913c3 Fix for #1005 2017-02-24 00:11:24 -05:00
blitzman
6e643d7579 Encode the SSL paths for frozen environments (to fix #548) 2017-02-23 23:53:57 -05:00
Ryan Holmes
b8c771f747 Merge pull request #1006 from Ebag333/Pyfa_tests
Tests for Pyfa
2017-02-21 11:04:50 -05:00
Ebag333
a07e1d8f3a Test actual correct value, not the wrong value that was being generated by old hacky method. 2017-02-21 07:43:04 -08:00
Ebag333
565a78610e Fix floorfloat, and pep8 fixes for tests 2017-02-21 07:38:32 -08:00
Ebag333
cdbf4cf5ec Initial pass at tests 2017-02-20 16:35:53 -08:00
Ryan Holmes
ec5c7e5d0e Update README.md 2017-02-20 00:43:58 -05:00
blitzman
b583589849 Remove unicode path fixes for now to better test original problems 2017-02-19 01:01:12 -05:00
blitzman
c3144088ca Fix CREST login (#998). Also flesh out a two-step process:
Step 1: get a page that lets the user know we're processing request. Do whatever we need to do with the hash (in the case of implicit mode), and then refresh to step 2
Step 2: process response, and return error / success message.
2017-02-18 21:59:18 -05:00
Ryan Holmes
7df3fe266e Merge pull request #1002 from Ebag333/matplotlib_import_fix
Matplotlib Import Fix
2017-02-18 18:17:17 -05:00
blitzman
b351befa97 Fix for #1000 2017-02-18 18:14:21 -05:00
blitzman
3925386109 bump dev 2017-02-18 18:14:03 -05:00
Ebag333
cdf392e3e5 Change matplotlib to be imported at the top and not use the import hack. Slows down the startup times slightly, but much simpler. 2017-02-18 10:15:06 -08:00
blitzman
e51ca85e26 Bump stable 2017-02-16 23:16:02 -05:00
blitzman
4ba11d832a Tox fixes, because it's a thing we do now 2017-02-16 23:12:25 -05:00
blitzman
66d78fed2c Add indication in character name of alpha status 2017-02-16 23:09:27 -05:00
Ebag333
e8101f9410 Embiggen the preference pane window. Change text, and clean up some unused imports. 2017-02-16 10:45:28 -08:00
Ebag333
56f1e9ed3a Finish migrate from #868. Lots of tox/formatting/inspection fixes to the files touched. 2017-02-16 09:59:56 -08:00
Ebag333
fff67906d6 Migrate files from #868 2017-02-16 08:20:09 -08:00
Ebag333
343331c667 Commit file so we can migrate over from old PR 2017-02-16 08:16:08 -08:00
Ebag333
201d596c80 Initial rollup of #868 2017-02-16 07:38:43 -08:00
blitzman
6f733394f7 Fix ICS / Mining Boost skill bonus (#892) 2017-02-16 00:26:11 -05:00
blitzman
b164b86eda Fix context menu order 2017-02-16 00:18:09 -05:00
Ebag333
eb97a1c11c Add tooltip and also a minimal version of the view (for future state). 2017-02-15 19:11:32 -08:00
Ebag333
13996d7770 Stupid change list making me miss files. 2017-02-15 18:50:35 -08:00
Ebag333
6e04707457 Commit *ALL* the files. 2017-02-15 18:25:11 -08:00
Ebag333
25b17a221c Update to current version 2017-02-15 18:23:14 -08:00
blitzman
de50bbb16f Update effect files 2017-02-15 21:14:40 -05:00
blitzman
e835cb7f8c update database 2017-02-15 21:12:05 -05:00
blitzman
7fea0c9431 Add migration script for #728 2017-02-15 21:01:58 -05:00
blitzman
bcd045ae4e tweak 2017-02-15 21:01:36 -05:00
blitzman
3f46db55b6 Merge remote-tracking branch 'ebag/ActiveDroneStacking' 2017-02-15 21:01:28 -05:00
Ebag333
93e7b4f5cf Cherry pick d033e4a8d919664d3ae210098291e38df71d3256 2017-02-15 17:23:53 -08:00
Ebag333
a865028420 Remove litter. 2017-02-15 15:42:46 -08:00
Ebag333
489637ec67 Handle this at a lower level. 2017-02-15 09:20:22 -08:00
Ebag333
71ca7d153e Check if we have active drones when merging, if we do make them all active to avoid getting weird scenarios (like deactivating stacks, or only activating parts of stacks). Fixes #728 2017-02-15 08:59:54 -08:00
blitzman
0a37834fd8 Disable the global module ammo picker for now 2017-02-14 23:20:23 -05:00
blitzman
0cc279b351 pass the damn tox 2017-02-14 23:06:33 -05:00
blitzman
06baa10cdc Fix for #991 2017-02-14 20:33:27 -05:00
blitzman
c406102995 remove redundant inits 2017-02-14 20:30:34 -05:00
blitzman
0dc3eda99f Merge branch 'development' of https://github.com/pyfa-org/Pyfa into development 2017-02-13 23:27:40 -05:00
blitzman
2dca9fc3f3 Fix stuff in system pricing feature 2017-02-13 22:27:03 -05:00
blitzman
97cdd751b8 Fix up the CREST server thread to make it a bit more robust, as well as fixing issue in which thread may never die 2017-02-13 21:56:12 -05:00
Ebag333
159472f82c Tox fixes, and convert all logging string replacement to a standard style. 2017-02-13 13:38:21 -08:00
Ebag333
be9eaa0859 Fix timer, make logging less annoying when at Info or higher level. Only show command bonus logspam if there is any. 2017-02-13 13:25:42 -08:00
Ebag333
35e330f574 Improve handling for exceptions, output more information so we can find and fix problems. 2017-02-12 13:09:26 -08:00
Ebag333
e7a5cb4b1d Don't show both messages if we don't have the zip files 2017-02-12 12:21:57 -08:00
blitzman
c9c29da803 Avoid fit recalc when setting state has no effect 2017-02-11 23:55:19 -05:00
blitzman
2527fe2e1e Fix the fix for the crash in OS X 2017-02-11 22:20:32 -05:00
blitzman
a4de0f2b5b Fix crash in OS X 2017-02-11 22:10:53 -05:00
blitzman
401d0d58d5 Merge branch 'development' 2017-02-11 21:42:48 -05:00
Ebag333
441b3f1646 Handle print() messages when not frozen and in debug. We only want to exclude handling stacktraces, so the IDE gets clickable line numbers. 2017-02-11 11:59:49 -08:00
Ebag333
3b185e1bcb Roll up all changes from #962 as the base has been massively changed by code cleanups. Rename our logging to a universal pyfalog to avoid shadowing either Logging or Logbook loggers 2017-02-11 11:51:53 -08:00
Ryan Holmes
beed414429 Merge pull request #984 from Ebag333/FixToxIssues
Tox fixes, and catching a few things lost in the merge.
2017-02-11 13:01:33 -05:00
Ryan Holmes
99b2fdefcc Merge pull request #985 from Ebag333/Travis_Icon
Add Travis Icon
2017-02-11 12:59:21 -05:00
Ebag333
9ec6a829c2 Revert the revert of the revert.....or something. 2017-02-11 09:47:23 -08:00
Ebag333
913f70b24d Fix copy/pasta 2017-02-11 09:41:26 -08:00
Ebag333
5a4d68684e Add Travis Icon 2017-02-11 09:38:10 -08:00
Ebag333
096842de44 Tox fixes, and catching a few things lost in the merge. 2017-02-11 09:23:23 -08:00
blitzman
81e5b33bc9 Few tweaks for price system selection 2017-02-11 11:36:53 -05:00
blitzman
5c91f29efb Merge branch 'price-system-selection' of git://github.com/petosorus/Pyfa into petosorus-price-system-selection
Conflicts:
	gui/builtinPreferenceViews/pyfaGeneralPreferences.py
	gui/builtinStatsViews/priceViewFull.py
	service/fit.py
	service/price.py
2017-02-11 11:36:35 -05:00
blitzman
bfcb73f344 Fixes for #952 2017-02-11 11:12:10 -05:00
blitzman
a2ca5eb8a4 fix oops 2017-02-11 11:01:39 -05:00
blitzman
f34e564ccd Merge branch 'MatPlotLib' of https://github.com/Ebag333/Pyfa into Ebag333-MatPlotLib
Conflicts:
	gui/graphFrame.py
2017-02-11 10:53:24 -05:00
blitzman
0cba428c81 Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2017-02-11 10:48:11 -05:00
blitzman
423a433e16 Merge branch 'SorryNotSorryBlitzmann' into development 2017-02-11 10:47:22 -05:00
blitzman
bdee8f662c Merge remote-tracking branch 'ebag/SorryNotSorryBlitzmann' into SorryNotSorryBlitzmann 2017-02-11 10:46:59 -05:00
blitzman
62bb550afd Add shortcut indication for fitting search tooltip 2017-02-11 10:15:01 -05:00
Ebag333
3562577521 Tox fix, and catch an extra shadowing 2017-02-10 12:06:23 -08:00
Ebag333
8c7682c6d4 Little more OCD on cleaning up imports. 2017-02-10 12:02:23 -08:00
Ebag333
2b45a16872 Refactor most of the shadowing from outer scopes. This is a super simple change, just changing the variable used inside (mostly) lambdas. 2017-02-10 11:50:04 -08:00
Ebag333
73cc17ce72 Clean up some more import statements 2017-02-10 11:29:52 -08:00
Ebag333
07a2020303 Don't try and import an old version and then fail back to the 2.7 version. Just do the 2.7 version. :) 2017-02-10 11:22:06 -08:00
Ebag333
0fc45ead6e Catch missing import 2017-02-10 11:16:51 -08:00
Ebag333
6b37e2c973 More clean handling of possibly missing attributes. Thanks @blitzmann! 2017-02-10 10:09:11 -08:00
Ebag333
cdabd83afe Remove old init 2017-02-10 07:19:33 -08:00
Ebag333
f610f525ba Use getattr directly, insead of doing a check then setting it (yay for defaults) 2017-02-10 06:44:40 -08:00
Ebag333
514f927a56 Revert removing call. This class likely needs to be callable. 2017-02-10 05:50:32 -08:00
Ebag333
3c641606da Revert until we actually get a Linux developer. 2017-02-10 05:41:06 -08:00
blitzman
af44d878d1 tweak 2017-02-10 00:57:53 -05:00
blitzman
72ebafe925 Remove redundant init 2017-02-10 00:37:45 -05:00
blitzman
134365c764 Reverts commit de87c9, and instead uses the mod variable to access the method needed.
Conflicts:
	service/fit.py
2017-02-10 00:29:40 -05:00
petosorus
b6871c72ca Merge remote-tracking branch 'origin/price-system-selection' into price-system-selection
# Conflicts:
#	gui/builtinStatsViews/priceViewFull.py
2017-02-09 23:33:14 +01:00
petosorus
aaece725aa Saving price system preference 2017-02-09 23:26:31 +01:00
Ryan Holmes
ef6da6a96b Merge pull request #981 from Ebag333/FixCommandBurstType
Fix command burst typo for target painters
2017-02-09 17:22:10 -05:00
Ebag333
df9daf9b4b Fix typo 2017-02-09 14:08:55 -08:00
Ebag333
228425fdb9 Cast to int so we can compare 2017-02-09 14:07:37 -08:00
Ebag333
9775d1064e Move import code down into class init 2017-02-09 13:27:54 -08:00
Ebag333
1a9591d411 pyCharm inspection and code style 2017-02-09 10:56:26 -08:00
Ebag333
64070a0798 Revert commit 7865219164 This causes too much grief as we are getting a lot of default values from the database. These *SHOULD* be defined, but will have to be done later. 2017-02-09 09:36:16 -08:00
petosorus
bfa772609a Transfer of the price dropbox in the preferences pane.
Moving of the modules list compiling from priceview to price service.
2017-02-09 18:27:26 +01:00
petosorus
d15acf89ba refresh modules price view 2017-02-09 18:27:26 +01:00
petosorus
d25673b8fe Price listing price panel 2017-02-09 18:27:26 +01:00
Ebag333
dd9924a7a7 Fix issues where we assume something can exist when it may not. 2017-02-09 07:22:09 -08:00
Ebag333
0f00b7237a Another classic class conversion 2017-02-09 01:02:55 -08:00
Ebag333
579a13da44 Tox fixes 2017-02-09 00:59:22 -08:00
Ebag333
7865219164 Add a ton of default values 2017-02-09 00:56:33 -08:00
Ebag333
f2c84692a9 Clean up a bunch of unused variables 2017-02-09 00:22:14 -08:00
Ebag333
f61aeb8285 Fix bug where the toggle button the compare pane didn't do anything. (Need to check toggleView because you can hit both first and second if otherwise.) 2017-02-09 00:18:19 -08:00
Ebag333
11d7f9d029 Make modules static if they do not use self. 2017-02-09 00:04:41 -08:00
Ebag333
72633825cf Formatting and layout changes 2017-02-08 23:32:51 -08:00
Ebag333
9a137bb158 Convert old style classes to new 2017-02-08 23:06:39 -08:00
Ebag333
32944f4c9c More import fixes 2017-02-08 22:47:02 -08:00
Ebag333
23c6f2add5 We have two of the exact same backported file. Get rid of one. Also, handle the except if we can't import so we don't get stacktraces. (Currently the three functions affected are not used.) 2017-02-08 22:42:19 -08:00
Ebag333
e535f050c1 Disable inspection of writing to some wx properties. These do seem to get written, so it is likely pyCharm doesn't understand wx 2017-02-08 22:32:12 -08:00
Ebag333
7a2feb9152 Fix a bunch of calls to functions that pass the wrong type of parameter, the wrong number, etc. 2017-02-08 22:20:56 -08:00
Ebag333
3b91ec8c06 Move check for module state being valid out of effectHandlerHelpers and into service\fit. We can't have it there because of cyclical imports. Plus we're already checking the module state here, so makes lots of sense to merge them. 2017-02-08 21:24:24 -08:00
Ebag333
636474610b More of: Disable import inspections for wxPython, because it's not installed traditionally and we can't include it in requirements.txt 2017-02-08 20:16:58 -08:00
Ebag333
6e524de320 Disable import inspections for wxPython, because it's not installed traditionally and we can't include it in requirements.txt 2017-02-08 20:15:24 -08:00
Ebag333
3e916e42f2 pyCharm inspection fixes. Mostly variable refernce issues 2017-02-08 17:55:20 -08:00
Ebag333
de87c992d7 Remove calling es_Module from effectHandlerHelpers, this causes a circular import. Instead pass in from fit. 2017-02-08 16:50:41 -08:00
Ebag333
e5fb90f017 Fix commit message. LOTS of fixes for flake8. 2017-02-08 14:22:56 -08:00
Ebag333
a3501b925d update reqs
(cherry picked from commit 25c6b47)
2017-02-08 13:19:03 -08:00
Ebag333
e47b0f3c44 Add individual builds
(cherry picked from commit 0c30dba)
2017-02-08 13:18:59 -08:00
Ebag333
518f7c9e03 build improvements
(cherry picked from commit 4500bc1)
2017-02-08 13:18:51 -08:00
Ebag333
91d57ded8a Add cert
(cherry picked from commit b12cbaf)
2017-02-08 13:18:48 -08:00
Ebag333
86fd1be8b2 requirements for build
(cherry picked from commit 6992a15)
2017-02-08 13:18:34 -08:00
Ebag333
e18deb5eeb Roll up #967 and #974
Takes the import fixes and cleanup out of those and rolls it into this
one
2017-02-08 13:12:54 -08:00
Ebag333
a8fd7cf2e9 Matplotlib 2.0 support 2017-02-08 12:50:42 -08:00
Ryan Holmes
25182de365 Merge branch 'master' into development
Conflicts:
	gui/builtinViewColumns/baseName.py
2017-02-08 13:58:37 -05:00
Ryan Holmes
c90efb8d0a Fix emAmount > {type}Amount, some formatting tweaks 2017-02-08 09:41:59 -05:00
Ebag333
7a521c655f Wrap dlg.Destroy() in a Try/Except
Conflicts:
	gui/mainFrame.py
2017-02-08 00:15:02 -05:00
blitzman
8a9d2a032e Revert the try... except, see #960 2017-02-08 00:00:16 -05:00
Ryan Holmes
b1b3ff2637 Merge pull request #960 from Ebag333/Fueled_Booster_Misc_Column_Improvements
Add extra info for misc column for fueled boosters (cap, shield, and armor)
2017-02-07 23:59:07 -05:00
Ryan Holmes
752f9e77f5 Merge pull request #971 from Ebag333/ToxFixes2
Some additional Tox tweaks
2017-02-07 23:28:42 -05:00
blitzman
e52db0b2f5 Merge branch 'AncientDatabaseRepair' of https://github.com/Ebag333/Pyfa
Conflicts:
	service/prefetch.py
2017-02-07 23:26:06 -05:00
blitzman
ce9069af4a Fix projected fit view not showing projected fit count 2017-02-07 20:11:02 -05:00
blitzman
31d74730c5 Add matplotlib version to about window 2017-02-07 19:44:59 -05:00
blitzman
84867c6e67 fix oops 2017-02-07 19:22:31 -05:00
blitzman
f7d7b3fe5e Merge branch 'EosImportCleanup' of https://github.com/Ebag333/Pyfa into development
Conflicts:
	eos/db/gamedata/metaData.py
	eos/db/gamedata/queries.py
	eos/db/saveddata/queries.py
	eos/saveddata/fleet.py
	eos/types.py
	eve.db
	gui/builtinContextMenus/amount.py
	gui/builtinViewColumns/ammo.py
	gui/builtinViewColumns/ammoIcon.py
	gui/builtinViewColumns/capacitorUse.py
	service/port.py
2017-02-07 19:22:26 -05:00
blitzman
356c0c8be1 Merge branch 'master' into singularity 2017-02-07 19:08:30 -05:00
blitzman
f957c42e26 Merge branch 'development' 2017-02-07 19:08:10 -05:00
blitzman
ca311e5dec Line endings again 2017-02-07 19:07:22 -05:00
blitzman
3ccd4ad2ca Revert "Convert remaining files to CRLF"
This reverts commit a8ab876053.
2017-02-07 19:05:45 -05:00
blitzman
867fb30286 Merge remote-tracking branch 'origin/development' 2017-02-07 19:00:10 -05:00
Ryan Holmes
a8ab876053 Convert remaining files to CRLF 2017-02-07 11:01:40 -05:00
Ryan Holmes
dfc5627031 Remove circular import mainFrame <> mainMenuBar 2017-02-07 09:37:20 -05:00
blitzman
542542f48d import changes to graphframe 2017-02-07 00:33:15 -05:00
blitzman
5fda29e651 Merge branch 'master' of https://github.com/pyfa-org/Pyfa into development 2017-02-07 00:32:52 -05:00
blitzman
c25a07c95b Stuff 2017-02-07 00:32:45 -05:00
Ebag333
aafc850dbd Adhere to standards 2017-02-05 20:09:00 -08:00
Ryan Holmes
41ae8de99b Merge pull request #970 from Ebag333/ToxFixes
Tox fixes
2017-02-05 22:24:55 -05:00
Ebag333
808f070df4 Redisable dynamic import test until eos.types is gone 2017-02-05 16:28:16 -08:00
Ebag333
e4cd66be5c Add root to python paths 2017-02-05 16:21:07 -08:00
Ebag333
a638e991af Disable test 2017-02-05 16:05:56 -08:00
Ebag333
d67dbaa0ae .gitattributes fixing line endings 2017-02-05 15:39:23 -08:00
Ebag333
be66ff1eec Tox fixes 2017-02-05 15:39:07 -08:00
Ryan Holmes
603a8acdfc Update ISSUE_TEMPLATE.md 2017-02-05 17:57:18 -05:00
blitzman
86393d728f I can't get these files out of "modified". Just commit them to get them out of the way. 2017-02-05 17:56:36 -05:00
blitzman
e564e051a3 tweaks to issue template 2017-02-05 17:55:54 -05:00
blitzman
2ade7dc632 Add issue template 2017-02-05 17:45:35 -05:00
blitzman
a938845aa2 Remove weird file... I have no idea what this is... 2017-02-05 17:16:23 -05:00
blitzman
ba2205867e Test line endings with pyfa.py (see #964) 2017-02-05 17:12:45 -05:00
blitzman
d7ec04f995 test change to .gitattributes to specifically tell pyfa.py to save with LF line endings 2017-02-05 17:08:11 -05:00
blitzman
91baabd1b3 update database 2017-02-05 17:00:10 -05:00
blitzman
c3fdabd3a2 Merge branch 'development' 2017-02-05 16:52:27 -05:00
blitzman
3d8c76209d update database from master 2017-01-29 19:52:56 -05:00
blitzman
c2038a6cf2 Change from UPDATE to DELETE for null damage pattern and target resist names 2017-01-29 19:04:57 -05:00
blitzman
082ac233ad Merge branch 'MissingDamageTargetProfileNames' of https://github.com/Ebag333/Pyfa into development
Conflicts:
	service/prefetch.py
2017-01-29 15:04:56 -05:00
blitzman
5d46fe7e4d Merge branch 'master' into development
Conflicts:
	gui/builtinContextMenus/amount.py
	gui/builtinStatsViews/priceViewFull.py
	service/fit.py
	service/prefetch.py
2017-01-29 15:02:22 -05:00
Ebag333
32611e07c8 Fix syntax. Catch scenarios where none can be passed. 2017-01-29 10:12:16 -08:00
Ebag333
dd3316a1c2 Gets the multiplier bonus from the item rather than hard coding it to 3 2017-01-29 00:28:20 -08:00
Ebag333
1ebd54b282 Wrap getting attribute data in a try/except
Useful for when we try to get an sub-attribute on an object where the
attribute doesn't exist. Now returns the default value.
2017-01-29 00:27:45 -08:00
Ebag333
e524197a4d Revert "wrap getting attribute in at try/except"
This reverts commit f111c49cc6.
2017-01-29 00:25:55 -08:00
Ebag333
f111c49cc6 wrap getting attribute in at try/except
Catches if there's an attribute error.  Useful when we try and get an
attribute when the object doesn't even have it.
2017-01-29 00:25:42 -08:00
Ebag333
c567ee2c08 Clean up logic and generally make purdier 2017-01-29 00:16:32 -08:00
Ebag333
1a0ac7bb35 Allow default values to be passed in for modified attributes 2017-01-29 00:16:15 -08:00
Ebag333
34c69cf10f Some pep8 stuff 2017-01-28 21:56:03 -08:00
Ebag333
88125634d2 Add extra info for misc column for fueled boosters 2017-01-28 21:47:58 -08:00
blitzman
6049c9837c Remove prefetch thread (unneeded and consumes resources?) 2017-01-28 23:35:42 -05:00
blitzman
a76eef01de name all ze threads 2017-01-28 17:46:59 -05:00
blitzman
b3eb4f35cd Max out cargo amount to sys.maxint (#958) 2017-01-28 13:31:03 -05:00
blitzman
6b6dacf94c Fix traceback when trying to cancel an amount dialog with nothing in the field 2017-01-28 13:30:14 -05:00
blitzman
f010f2fef2 Don't loop through all amounts of cargo and drones just to get the price. (#958) 2017-01-28 13:15:25 -05:00
blitzman
a952f80ea4 min version for sqlalchemy 2017-01-28 01:29:08 -05:00
blitzman
6d34ae2960 fix 2017-01-27 23:35:19 -05:00
blitzman
d17ff000c7 Add migration for alpha clone character update 2017-01-27 23:12:08 -05:00
blitzman
6b3d3ecd93 More import fixes for osx deprecated 2017-01-27 22:25:22 -05:00
blitzman
32dc28f48d Move CREST import inside a conditional 2017-01-27 22:17:07 -05:00
blitzman
a210724312 Fix conversion imports for osx deprecated... :( 2017-01-27 22:06:52 -05:00
blitzman
1d69ed7584 Merge branch 'test_import' into development
Conflicts:
	gui/builtinContextMenus/amount.py
	gui/characterEditor.py
	gui/itemStats.py
2017-01-27 20:39:54 -05:00
blitzman
43e864e47b Fix issue in which -s flag was not being honored 2017-01-27 20:36:19 -05:00
blitzman
fb538027f7 Fix issues with paths and linux / os x 2017-01-27 20:30:11 -05:00
blitzman
cbf7f7d320 Merge branch 'master' into development 2017-01-27 19:39:10 -05:00
Ebag333
200023234c Give modules the special snowflake experience
Modules can legitimately have a null item value.  So don't catch null or
'', only 0's (which would be an invalid item ID).
2017-01-27 14:49:30 -08:00
Ebag333
fc99d6f0a6 catch duplicate selected ammo 2017-01-27 13:46:20 -08:00
Ebag333
e6b4ecdaf7 Additional cleanup for orphaned records 2017-01-27 13:37:51 -08:00
blitzmann
4111d670a7 Fix possible issue with floats coming through (see #729) 2017-01-26 23:52:18 -05:00
blitzmann
397084a9ff Disable rename and delete button for restricted character on character editor spawn (fix for #930) 2017-01-26 21:33:13 -05:00
blitzmann
968d633d46 Merge branch 'feature/alphaclones' into development 2017-01-26 19:53:27 -05:00
blitzmann
96c3363edc Merge branch 'master' into feature/alphaclones
Conflicts:
	eve.db
2017-01-26 19:39:13 -05:00
Ebag333
a853ed9960 Remove test variable 2017-01-25 18:17:05 -08:00
Ebag333
323a7060ec Fix import 2017-01-25 17:53:04 -08:00
Ebag333
d0fa2510e5 Merge branch 'test_import' of https://github.com/Ebag333/Pyfa into test_import 2017-01-25 17:40:00 -08:00
Ebag333
8d57f641f7 Remove comments about conversion 2017-01-25 17:39:54 -08:00
blitzman
055957567f Fix fit import 2017-01-25 20:28:57 -05:00
blitzman
5aff3f007e Fix crest export 2017-01-25 20:22:07 -05:00
blitzman
c34d86ba80 Fix XML exports 2017-01-25 20:12:30 -05:00
Ebag333
2038f36254 Remove calls to null pattern name cleanup 2017-01-25 13:52:00 -08:00
Ebag333
b1fc07a4cf Abstract out the SQL Query Execution
gives more granular error handling
2017-01-25 13:28:34 -08:00
Ebag333
a366420d65 Catch scenario where names are missing 2017-01-25 09:58:26 -08:00
Ebag333
8095b4852b Clean up another broken reference. Fix broken XML export. 2017-01-24 21:34:24 -08:00
Ebag333
cc3274f245 Add comment to note special snowflakes needs 2017-01-24 18:21:09 -08:00
Ebag333
fbde9ce7bf Fix passing the fit into exportXML 2017-01-24 18:13:57 -08:00
Ebag333
130fc189ad Merge branch 'test_import' of https://github.com/Ebag333/Pyfa into test_import 2017-01-24 17:37:42 -08:00
Ebag333
a50e4fcc46 Fix issue caused by file path and import fix merges 2017-01-24 17:37:37 -08:00
Ebag333
ae96ff244e Fix crest exports 2017-01-24 17:09:48 -08:00
blitzman
1b0cdeedce Fix lack of instance 2017-01-24 19:57:16 -05:00
Ebag333
992820ac42 Redirect to correct module
Function was moved from service.Fit to service.Port
2017-01-24 16:48:28 -08:00
blitzman
c0ecc6a329 tweaks to fix merge issues 2017-01-23 21:07:20 -05:00
blitzman
85131e6166 oh god this isn't gonna work
Merge branch 'ebag_importchanges' into test_import

Conflicts:
	config.py
	eos/db/saveddata/queries.py
	eos/effects/chargebonuswarfarecharge.py
	eos/effects/elitebonuscommandshipinformationhiddencs3.py
	eos/effects/elitebonuslogisticremotearmorrepairoptimalfalloff1.py
	eos/effects/energydestabilizationnew.py
	eos/effects/iceharvestingdroneoperationdurationbonus.py
	eos/effects/miningforemanstrengthbonus.py
	eos/effects/modulebonuswarfarelinkarmor.py
	eos/effects/modulebonuswarfarelinkinfo.py
	eos/effects/modulebonuswarfarelinkmining.py
	eos/effects/modulebonuswarfarelinkshield.py
	eos/effects/modulebonuswarfarelinkskirmish.py
	eos/effects/moduletitaneffectgenerator.py
	eos/effects/remotehullrepair.py
	eos/effects/rolebonusremotearmorrepairoptimalfalloff.py
	eos/effects/shipbonusforceauxiliarya4warfarelinksbonus.py
	eos/effects/shipmodesmallmissiledamagepostdiv.py
	eos/effects/structureenergyneutralizerfalloff.py
	eos/effects/structuremoduleeffectstasiswebifier.py
	eos/effects/structurerigmaxtargets.py
	eos/effects/subsystembonusamarrdefensiveinformationwarfarehidden.py
	eos/effects/subsystembonuscaldaridefensiveinformationwarfarehidden.py
	eos/effects/subsystembonusgallentedefensiveinformationwarfarehidden.py
	eos/effects/techtwocommandburstbonus.py
	eos/saveddata/fighter.py
	eos/saveddata/fit.py
	eos/saveddata/module.py
	eve.db
	gui/bitmapLoader.py
	gui/builtinContextMenus/itemStats.py
	gui/builtinStatsViews/miningyieldViewFull.py
	gui/builtinViewColumns/misc.py
	gui/builtinViews/__init__.py
	gui/builtinViews/fittingView.py
	gui/contextMenu.py
	gui/graphFrame.py
	gui/itemStats.py
	gui/mainFrame.py
	gui/marketBrowser.py
	service/__init__.py
	service/character.py
	service/fit.py
	service/port.py
	service/prefetch.py
	service/pycrest/eve.py
	service/settings.py
2017-01-23 21:06:12 -05:00
blitzman
330983d9dd Merge branch 'master' into development
Conflicts:
	eve.db
2017-01-22 21:10:06 -05:00
Ryan Holmes
1bb7c4e825 Merge pull request #945 from Ebag333/Patch_1111328
Update database to 1111328
2017-01-17 20:39:32 -05:00
Ryan Holmes
450e1427a1 Merge pull request #948 from Ebag333/MiningYield
Revert back to /s for mining. Adds /hour to tooltips.
2017-01-17 20:21:15 -05:00
blitzman
5614cec19d Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2017-01-17 20:18:21 -05:00
blitzman
3f24a4b2c5 Fix for #946 - citadel rig not increasing max targets 2017-01-17 20:18:12 -05:00
Ebag333
4e9e5735dc Revert "Add check for remote resistance"
This reverts commit 269565e959.
2017-01-17 10:03:14 -08:00
Ebag333
b1a6189c55 Revert back to /s for mining. Adds /hour to tooltips. 2017-01-17 09:29:22 -08:00
Ebag333
836504ee01 Expand gitattributes to cover a few more scenarios 2017-01-17 08:53:01 -08:00
Ebag333
269565e959 Add check for remote resistance 2017-01-17 00:28:44 -08:00
Ryan Holmes
e45027a66c Merge pull request #910 from Ebag333/UnicodePaths_v2
Unicode Paths 2: The Reckoning
2017-01-14 02:44:24 -05:00
Ebag333
2d3310d8e0 Update database to 1111328 2017-01-13 15:10:36 -08:00
Ebag333
ade47bed8b Add filtering for implants and boosters 2017-01-12 12:30:25 -08:00
Ebag333
ea12ec9cd1 Now can add 1000 ammo stacks or 5 drone stacks through context menu 2017-01-12 08:45:16 -08:00
Ebag333
3774e3bca0 add variations for drones, fighters, boosters, and implants 2017-01-12 01:24:26 -08:00
Ryan Holmes
77066f0389 Fix Rabisu effects (#941) 2017-01-11 15:06:50 -05:00
blitzman
5e0567ef4d Merge branch 'master' of https://github.com/pyfa-org/Pyfa 2017-01-10 22:51:38 -05:00
blitzman
b49de4b0fa Update to 1108313 2017-01-10 22:51:27 -05:00
blitzman
372495a83a Remove vestigial appendage 2017-01-10 22:45:41 -05:00
blitzman
468a4644d6 Merge branch 'development'
Conflicts:
	eos/db/saveddata/queries.py
2017-01-10 22:42:01 -05:00
Ebag333
3c31391ec9 Burn types with fire 2017-01-09 22:36:19 -08:00
Ryan Holmes
29d0f102fd Move AT14 ships to the Limited Edition group (#935) 2017-01-05 11:38:47 -05:00
blitzman
ebc7173c50 Fix issues with unexpected module positions (see #932) 2017-01-04 23:48:37 -05:00
blitzman
43f1ac78a6 Keep subsystem module in the same position when swapping them out (see #932) 2017-01-04 23:17:56 -05:00
petosorus
9df54238d9 refresh modules price view 2017-01-05 00:18:20 +01:00
petosorus
fcd934319d Price listing price panel 2017-01-05 00:18:20 +01:00
petosorus
48ccc7ff06 System list 2017-01-05 00:18:17 +01:00
petosorus
edc48f0017 beginnings of price system choice 2017-01-05 00:17:56 +01:00
Ryan Holmes
d489fdd700 Merge pull request #913 from resinneublem/remember-user-filters-take2
Remembers user's meta filtering choices
2017-01-04 00:10:48 -05:00
blitzman
d6b1e4465e Merge branch 'test/cat-has-fits' 2017-01-03 01:32:50 -05:00
blitzman
5cbffcf3ac Handle counting number of fits per ship category more efficiently (see #819) 2017-01-03 01:32:12 -05:00
blitzman
c91723516e Do not calculate projected fits for command fits (see #931) 2017-01-02 23:54:06 -05:00
Ryan Holmes
a68f45d15a Merge pull request #927 from Ebag333/BurstProjectors
ECM Burst Projectors effect
2017-01-02 19:58:10 -05:00
Ryan Holmes
152a708ee8 Merge pull request #920 from Ebag333/Database_Cleanup
Database Validation and Cleanup
2017-01-02 19:25:26 -05:00
blitzman
a0ec13d2ed More tweaks 2017-01-02 18:45:08 -05:00
Ebag333
3313b7421f Move query logic into own function in queries. Tighten up flow in DB repair. Catch null values. 2017-01-02 13:41:39 -08:00
blitzman
a76ee6b2fc more tweaks 2017-01-02 12:07:15 -05:00
Ebag333
0056b704d4 Add other projector effects. Only allow it to affect the specific attribute it's modifying. 2017-01-02 03:18:54 -08:00
Ebag333
c1ead5fe27 change method for retreiving count 2017-01-02 00:29:44 -08:00
blitzman
85a89339a7 Cleaned up database corruption stuff 2017-01-02 00:58:54 -05:00
Ryan Holmes
55f82c48bc Merge pull request #929 from Ebag333/Character_Import_Sanitization
Add some sanity checks and validation of imported character data
2017-01-02 00:38:48 -05:00
Ebag333
f4761e099b Don't let people rename built in chars 2017-01-01 13:17:39 -08:00
Ebag333
be3696deba Add some sanity checks and validation of incoming data 2017-01-01 12:47:28 -08:00
Ebag333
cd41e9e9be Change to use skill rather than group, and modify correct attribute 2017-01-01 03:08:38 -08:00
Resin Neublem
d6db30b7fc We weren't setting user selection in all branches
I heavily refactored the button click handler to make it a little easier to understand
2016-12-28 19:54:37 -05:00
Ryan Holmes
fd066c2150 Merge branch 'Ebag333-EFTBoosterImports' into development 2016-12-28 17:46:33 -05:00
Ebag333
f9ba95b3de Check the ness to see if it's an implant, booster, or something else.
Log it if it's something else and don't try and import it. This prevents
a bad line from failing the entire import, and (hopefully) we know about
it.
2016-12-27 12:32:52 -08:00
Ebag333
7ee4d1d588 Try loading item as a booster if implant fails. 2016-12-26 23:29:22 -08:00
Ebag333
cef5842344 Database validation and cleanup 2016-12-26 21:54:52 -08:00
Resin Neublem
a7b6647135 Remembers user's meta filtering choices
There is a lot of logic that overwrites the user's choices of meta
filtering on every search.

That's a little too clever. Especially if the user is looking for
different variations of a certain meta.

If a user wants to include the other meta buttons they can re-add them
after filtering.

Extra care has to be taken with Windows. If a button is Enabled=False AND
SetValue=True, then it looks like it's Enabled=True, but clicking it
doesn't do anything. So we handle that logic in it's own class

closes: https://github.com/pyfa-org/Pyfa/issues/818
2016-12-19 22:39:56 -05:00
Ebag333
bef17e53c6 Recreating wheels 2016-12-19 00:11:55 -08:00
Ebag333
d4b6099d6e Handle unicode, utf8, and windows-1252
(cherry picked from commit 0d4f24a)
2016-12-18 14:11:55 -08:00
blitzman
ff60538e21 Revert "Merge branch 'Ebag333-UnicodePaths' into development"
This reverts commit 8a6ef788b3, reversing
changes made to cf91ae7627.
2016-12-18 15:56:06 -05:00
Ryan Holmes
50c6133046 Revert "Remembers user's meta filtering choices" 2016-12-18 10:09:55 -05:00
Ryan Holmes
b7d7b80544 Merge pull request #829 from resinneublem/remember-user-filters
Remembers user's meta filtering choices
2016-12-18 10:07:15 -05:00
blitzman
2b9342692d working commit 2016-12-18 09:45:26 -05:00
blitzman
a24e247f1b Merge branch 'master' into development
Conflicts:
	eos/effects/usemissiles.py
	eos/saveddata/fit.py
2016-12-18 09:24:39 -05:00
blitzman
3396056dae bump dev 2016-12-18 09:19:47 -05:00
Ebag333
af7272cd10 fix dual reference back to same object 2016-12-15 17:08:59 -08:00
Ebag333
d7c71f5d47 fix some, missed import references. 2016-12-15 16:17:10 -08:00
Ebag333
c858fc2859 Remove an inline import. Fix a reference that is missing. 2016-12-15 15:39:19 -08:00
Ebag333
f76f44e9f3 Fix port references, imports, and add some logging 2016-12-15 15:20:29 -08:00
Ebag333
4fb07cc1d0 Bunch of pep8 and inspection cleanup 2016-12-15 12:43:19 -08:00
Ebag333
658a87cbc0 Single line change to fix most (all??) of the problems 2016-12-15 12:10:03 -08:00
Ebag333
956fa7a8b7 Fixing some issues due to import cleanup 2016-12-14 13:06:13 -08:00
blitzman
0ebb992354 more clean up
(cherry picked from commit f198ff1)
2016-12-14 12:44:42 -08:00
blitzman
37f8253836 oops
(cherry picked from commit 0a28fb6)
2016-12-14 12:26:22 -08:00
blitzman
200ff5a1a4 Fix titan command effects
(cherry picked from commit 7875c2a)
2016-12-14 12:26:08 -08:00
blitzman
0d44cbf74a clean up path stuff
(cherry picked from commit d3e360b)
2016-12-14 12:24:35 -08:00
Stefan Dresselhaus
bb216aa6ed wrong index in tuple.
Array looks normally so:

(RunTime, Value, etc., etc.)
("normal", -10, ..., ...)

I guess "RunTime" got added and this is an artifact as it is rarely
called.

Fixes Orca-Mining-Boost onto itself and other ships.

(cherry picked from commit 0ba88d0)
2016-12-14 12:22:41 -08:00
Stefan Dresselhaus
eccf405ba8 fixed parameters in call when adding neuts to structures.
(cherry picked from commit 4f77dff)
2016-12-14 12:22:28 -08:00
blitzman
9df87f61cd bump dev
(cherry picked from commit 2b3e646)
2016-12-14 12:22:17 -08:00
blitzman
4186e19c65 bump stable
(cherry picked from commit e0e7478)
2016-12-14 12:22:10 -08:00
blitzman
57edc32a4b Clean up new tactical mode stats stuff
(cherry picked from commit c9bc234)
2016-12-14 12:21:00 -08:00
blitzman
9cfa0748ac fix for #871
(cherry picked from commit 70af2b0)
2016-12-14 12:20:42 -08:00
blitzman
df859a2132 Fix for #883
(cherry picked from commit 753b5c5)
2016-12-14 12:19:54 -08:00
blitzman
52257d60ac fix a couple command effects
(cherry picked from commit 9bb86b4)
2016-12-14 12:18:46 -08:00
blitzman
96ddb0bbff Fixed a few issues with command bursts
(cherry picked from commit 9071960)
2016-12-14 12:18:41 -08:00
Ebag333
b529a28715 Implement fittingMode
(cherry picked from commit 5eb2fef)
2016-12-14 12:18:34 -08:00
Ebag333
ea3a374ced Add logging, because why not
(cherry picked from commit 9403a1f)
2016-12-14 12:17:55 -08:00
Ebag333
2eacadf08f Don't use try for fittingView, and don't show remove item for modes.
(cherry picked from commit fd224d6)
2016-12-14 12:17:13 -08:00
Ebag333
1a127bb1a6 Add ability to look at tactical mode item info.
(cherry picked from commit f5776a0)
2016-12-14 12:16:51 -08:00
Ebag333
edfa130939 Fix tooltip order
(cherry picked from commit 61d1878)
2016-12-14 12:15:09 -08:00
blitzman
7fbd89392a Revert "Remove effect files that are not used by any item"
This reverts commit b29fa2467a.

(cherry picked from commit 4a95156)
2016-12-14 12:14:39 -08:00
Indiction
9f4b31979c Adding Fighter Support CREST
(cherry picked from commit ab5f348)
2016-12-14 12:14:11 -08:00
blitzman
9ecfc475e3 Bump dev, fix for #874
(cherry picked from commit b375d3c)
2016-12-14 12:13:55 -08:00
blitzman
84dc93ac54 bump release
(cherry picked from commit f160aed)
2016-12-14 12:13:02 -08:00
Ebag333
7532bcda08 Clean up some stuff left over from cherry picks 2016-12-14 10:42:04 -08:00
Ebag333
08b5abc7ad Handle unicode, utf8, and windows-1252
(cherry picked from commit 0d4f24a)
2016-12-14 10:38:56 -08:00
Indiction
38bf143704 Fighters for export and import functions
(cherry picked from commit 04c30e7)
2016-12-14 10:24:45 -08:00
Ebag333
a440ed3b37 Drop unicode
(cherry picked from commit 7fe7056)
2016-12-14 10:20:57 -08:00
Ebag333
39b7d9fdeb Change to shorthand unicode
(cherry picked from commit ab32a3a)
2016-12-14 10:20:53 -08:00
Ebag333
dfa728a486 Handle Lockbreaker, Void, and Focused Void Bombs
(cherry picked from commit ea3e5e2)
2016-12-14 10:20:48 -08:00
Ebag333
7bd8ca5a55 Removed actual fleet files. Cleaned up __init__.py that had references.
(cherry picked from commit b6c5183)
2016-12-14 10:20:20 -08:00
Ebag333
627977ab51 Purging fleet bonuses from code base
(cherry picked from commit 68f4570)
2016-12-14 10:18:19 -08:00
Ebag333
e3b592977a Make some imports more explicit 2016-12-13 23:49:37 -08:00
Ebag333
622a734405 remove lazy import. Fix test 2016-12-13 23:35:29 -08:00
Ebag333
28404cd8bb bajillion pep8 fixes to pass tox 2016-12-13 23:31:39 -08:00
Ebag333
be53dedb18 Large pep8 compliance to make work for Tox 2016-12-13 21:23:01 -08:00
Ebag333
b2a5a20650 Travis and CodeCov files 2016-12-13 20:37:52 -08:00
Ebag333
57f930c83e Cherry pick commits from @a-tal 2016-12-13 20:35:03 -08:00
a-tal
b4dd65cf3e dont use built-in function format as a var name
(cherry picked from commit 74dd6cf)
2016-12-13 20:19:27 -08:00
a-tal
4a9b1df9b4 pep8 fixes
(cherry picked from commit 5dc43b2)
2016-12-13 20:18:57 -08:00
a-tal
874bfb3305 missed a type
(cherry picked from commit f416c77)
2016-12-13 20:18:04 -08:00
a-tal
ab9c925c47 non-standard - use forces coding declarations
(cherry picked from commit 6e17d88)
2016-12-13 20:17:56 -08:00
a-tal
d3b6bc1c93 so many pep8 fixes
(cherry picked from commit bee125d)
2016-12-13 20:16:44 -08:00
Ryan Holmes
180de97893 Merge pull request #738 from Ebag333/Remove-Command-Boosts
Purging fleet bonuses from code base
2016-12-12 00:54:06 -05:00
blitzman
f198ff1773 more clean up 2016-12-12 00:49:47 -05:00
blitzman
55c13d1ad0 Merge branch 'master' into Ebag333-Remove-Command-Boosts 2016-12-12 00:43:52 -05:00
blitzman
16505b30bf working commit 2016-12-12 00:43:42 -05:00
blitzman
95b3f0a21c Merge branch 'Remove-Command-Boosts' of https://github.com/Ebag333/Pyfa into Ebag333-Remove-Command-Boosts
Conflicts:
	eos/db/saveddata/fleet.py
	eos/db/saveddata/queries.py
	gui/additionsPane.py
2016-12-12 00:41:47 -05:00
blitzman
49bf40484d Merge branch 'Ebag333-VoidBombs' into development 2016-12-11 23:27:40 -05:00
blitzman
07148f1e7f Merge branch 'VoidBombs' of https://github.com/Ebag333/Pyfa into Ebag333-VoidBombs
Conflicts:
	eos/effects/usemissiles.py
2016-12-11 23:27:30 -05:00
blitzman
8a6ef788b3 Merge branch 'Ebag333-UnicodePaths' into development 2016-12-11 23:06:23 -05:00
blitzman
d3e360b7c0 clean up path stuff 2016-12-11 23:03:09 -05:00
blitzman
b1bba74c5a Merge branch 'UnicodePaths' of https://github.com/Ebag333/Pyfa into Ebag333-UnicodePaths 2016-12-11 23:01:08 -05:00
blitzman
a954759012 GUI implementation of alpha clone switching 2016-12-11 22:51:48 -05:00
blitzman
90c1033437 add clone grades to the client extraction list 2016-12-11 20:27:27 -05:00
blitzman
191a065de1 Get skill limits working 2016-12-11 20:26:30 -05:00
blitzman
b6420b9a4b Get alpha clones in the database 2016-12-11 15:44:14 -05:00
Ebag333
510492e5e9 More refactoring, elimited another recursive import 2016-12-03 17:12:16 -08:00
Ebag333
6ef57e735e Missed imports. Fixed now. 2016-12-03 06:21:52 -08:00
Ebag333
ea8a4c01cb Eliminate export calling fit.py (no need)
Except for 1 (clipboardXML), same number of lines of code in mainFrame,
lots of code gone from fit, and no more complicated.  Also spotted an
import reference that got missed.
2016-12-02 12:50:49 -08:00
Ebag333
d963327ed4 Make it run again 2016-12-02 03:13:54 -08:00
Ebag333
0d4f24ade9 Handle unicode, utf8, and windows-1252 2016-11-26 22:57:53 -08:00
tgraviou
2f2800c360 System list 2016-11-24 12:00:53 +01:00
tgraviou
7eb3ad98fa beginnings of price system choice 2016-11-21 17:38:28 +01:00
Resin Neublem
cfa57a70dc Remembers user's meta filtering choices
There is a lot of logic that overwrites the user's choices of meta filtering on every search.

That's a little too clever. Especially if the user is looking for different variations of a certain meta.

If a user wants to include the other meta buttons they can re-add them after filtering.

closes: https://github.com/pyfa-org/Pyfa/issues/818
2016-11-20 16:28:18 -05:00
Ebag333
7fe7056c12 Drop unicode 2016-11-07 12:18:36 -08:00
Ebag333
ab32a3afb0 Change to shorthand unicode 2016-11-07 12:09:20 -08:00
Ebag333
ea3e5e273f Handle Lockbreaker, Void, and Focused Void Bombs 2016-11-07 10:27:51 -08:00
Ebag333
b6c5183d40 Removed actual fleet files. Cleaned up __init__.py that had references. 2016-11-06 16:38:21 -08:00
Ebag333
e5d65b97ce Merged changes from Pyfa.org\Master to branch 2016-11-06 16:33:28 -08:00
Ebag333
c30190f63e Revert "Revert "Purging fleet bonuses from code base""
This reverts commit 6e54d6788c.
2016-09-15 15:27:30 -07:00
Ebag333
6e54d6788c Revert "Purging fleet bonuses from code base"
This reverts commit 68f45706ab.
2016-09-15 15:27:10 -07:00
Ebag333
68f45706ab Purging fleet bonuses from code base 2016-09-15 15:07:59 -07:00
7413 changed files with 4936369 additions and 56357 deletions

186
.appveyor.yml Normal file
View File

@@ -0,0 +1,186 @@
image:
- Ubuntu2204
- Visual Studio 2022
- macos-catalina
for:
-
matrix:
only:
- image: Ubuntu2204
environment:
APPVEYOR_SSH_KEY: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDhb96UEXy8yOy/f+riX/8kKbNx/lOfIZ4pP4Cw3Gj3DmnTwEnxtRtyc+xtaxOsKbt+7+EAXFpCzYX+jHMhtd0QtWB7dbey8DBg31g0f8C5EPquqROibVbhzr/F3f6/d52FFfq6Y/CWaAvLjezvipr+zOOsIFcVusqtXdPJQ/LtUJ0LS5d4lFiw5ELHSxHIpqwGwyb7PbR3ufEFoqbr8eYiCH+vlBob72ArPfo2f3u0sMvpGYmjVVu2jj4FEY2h89sLrGyFdNWBoyumRhkb38+WSAuyPa/Y21+g+S8sRzIlkwbxicGNMtrMIi6zHEIGAgA06Sw2psP807h730PPOVaWjUcU3ojNW8hH3nPizF74pT82+iP7/fFC4PXLP+tBa+8OoHC5yiO7QKUKprMSqVa1qOm8fHbrzglplKJXfzSfUtSE+AQ+HtHhuUWKI+0LBLDrsOJwI5hbsPOAuiZ5I3VfqfAOck6SH9TcmlapVmQEypc7d7oeeUtZSOuIWKXp068= dfx@aw"
APPIMAGE_TOOL: appimage-builder-x86_64.AppImage
DEPLOY_DIR: AppDir/opt/pyfa
# APPVEYOR_SSH_BLOCK: true
cache:
- /home/appveyor/.cache/pip -> requirements.txt
# init:
# - sh: curl -sflL 'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-ssh.sh' | bash -e -
install:
- sh: sudo DEBIAN_FRONTEND=noninteractive apt-get -y update --allow-releaseinfo-change
# AppImage dependencies
- sh: sudo DEBIAN_FRONTEND=noninteractive apt-get -y install libfuse2
# Preparation script dependencies
- sh: sudo DEBIAN_FRONTEND=noninteractive apt-get -y install python3-wxgtk4.0 python3-sqlalchemy python3-logbook
before_build:
# Prepare pyfa data
- sh: find locale/ -type f -name "*.po" -exec msgen "{}" -o "{}" \;
- sh: python3 -B scripts/compile_lang.py
- sh: python3 -B scripts/dump_crowdin_progress.py
- sh: python3 -B db_update.py
- sh: export PYFA_VERSION="$(python3 -B scripts/dump_version.py)"
- sh: mkdir build
# Download packaging tool
- sh: curl -o $APPIMAGE_TOOL -L https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage
- sh: chmod +x $APPIMAGE_TOOL
build_script:
- sh: mkdir -p AppDir/opt/pyfa
- sh: cp -r eos graphs gui imgs locale service utils eve.db config.py pyfa.py db_update.py README.md LICENSE version.yml AppDir/opt/pyfa/
- sh: mkdir -p AppDir/usr/share/icons/hicolor/64x64/apps/
- sh: cp imgs/gui/pyfa64.png AppDir/usr/share/icons/hicolor/64x64/apps/pyfa.png
- sh: ./$APPIMAGE_TOOL --recipe dist_assets/linux/AppImageBuilder.yml
after_build:
- sh: ls -la
artifacts:
- path: pyfa-$PYFA_VERSION-linux.AppImage
deploy:
tag: $PYFA_VERSION
release: pyfa $PYFA_VERSION
description: 'Release description'
provider: GitHub
auth_token:
secure: M94o0xMtzxrvlKpqMcXU2KfbJdd3aYJ3UxWzePUz/pkT1/Ojiis052CiLsLVyzJg
draft: true
force_update: false
# deploy on tag push only
on:
APPVEYOR_REPO_TAG: true
-
matrix:
only:
- image: Visual Studio 2022
environment:
PYTHON: "C:\\Python311-x64"
# Should be enabled only for build process debugging
# init:
# - ps: iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))
cache:
- C:\users\appveyor\appdata\local\pip\cache\ -> requirements.txt
install:
- ps: echo("OS version:")
- ps: "[System.Environment]::OSVersion.Version"
- ps: echo("Filesystem - root:")
- ps: "ls \"C:\\\""
- ps: echo("Filesystem - projects root:")
- ps: "ls \"C:\\projects\\\""
- ps: echo("Filesystem - pyfa root:")
- ps: "ls \"C:\\projects\\$env:APPVEYOR_PROJECT_SLUG\\\""
- ps: echo("Filesystem - installed SDKs:")
- ps: "ls \"C:\\Program Files (x86)\\Windows Kits\\\""
# Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart
# the parent CMD process).
- cmd: "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%"
- cmd: "appveyor DownloadFile https://github.com/mlocati/gettext-iconv-windows/releases/download/v0.20.2-v1.16/gettext0.20.2-iconv1.16-shared-64.zip"
- cmd: "7z x gettext0.20.2-iconv1.16-shared-64.zip -ogettext"
- cmd: "SET PATH=gettext;%PATH%"
- cmd: "python --version"
- cmd: "python -c \"import struct; print(struct.calcsize('P') * 8)\""
# Upgrade to the latest version of pip to avoid it displaying warnings
# about it being out of date.
- cmd: "python -m pip install --upgrade pip"
# Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the
# target Python version and architecture
- ps: echo("Install pip requirements:")
- cmd: "python -m pip install -r requirements.txt"
- cmd: "python -m pip install PyInstaller==6.0.0"
before_build:
# directory that will contain the built files
- ps: $env:PYFA_DIST_DIR = "c:\projects\$env:APPVEYOR_PROJECT_SLUG\dist"
- ps: $env:PYFA_VERSION = (python ./scripts/dump_version.py)
- ps: echo("pyfa version $env:PYFA_VERSION")
build_script:
- ps: echo("Build pyfa:")
- ps: Get-ChildItem locale/*.po -Recurse -File| Foreach {msgen $_.fullname -o $_.fullname}
# Build language files
- cmd: "python scripts/compile_lang.py"
# Dump language progress
- cmd: "python scripts/dump_crowdin_progress.py"
# Build gamedata DB
- cmd: "python db_update.py"
# Build command for PyInstaller
- cmd: "python -m PyInstaller --clean -y pyfa.spec"
# Copy over manifest (See pyfa-org/pyfa#1622)
- ps: xcopy /y dist_assets\win\pyfa.exe.manifest $env:PYFA_DIST_DIR\pyfa\
# InnoScript EXE building. This is in a separate script because I don't feel like copying over the logic to AppVeyor script right now...
- cmd: "python dist_assets/win/dist.py"
- ps: dir $env:PYFA_DIST_DIR/
after_build:
- ps: "ls \"./\""
- ps: 7z a "pyfa-$env:PYFA_VERSION-win.zip" -r "$env:PYFA_DIST_DIR\pyfa\*"
artifacts:
- path: pyfa*-win.zip
- path: pyfa*-win.exe
deploy:
tag: $(pyfa_version)
release: pyfa $(pyfa_version)
description: 'Release description'
provider: GitHub
auth_token:
secure: M94o0xMtzxrvlKpqMcXU2KfbJdd3aYJ3UxWzePUz/pkT1/Ojiis052CiLsLVyzJg
draft: true
force_update: false
# deploy on tag push only
on:
APPVEYOR_REPO_TAG: true
-
matrix:
only:
- image: macos-catalina
environment:
APPVEYOR_SSH_KEY: "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJDW/+oYNGOiPvwuwAL9tc/LQgg58aosIVpMYfepQZ20V+VZnHpZh8IRDA8Jo5xht19p2PksA+hFgqA0kpKtrSkuiWdE8rATQItfk4gf7yB0yGasJGGQZYazy9k/9XtmYkq2HHOOeEqdxvrICddJQ88MLCLT9lJENSUP/YS/yGcjZFXVxE11pTeIcqlCRU+3eYa1v7BeNvXIKNhZoK5orXWrtuH3cy8jrSns/u70aYfJ6B2jA8CnWnDbuvpeQtEY61SQqlKUsSArNa8NAsXj41wr3Ar9gAG9330w7EMTqlutk8HZO35uHI0q5qinUhaQYufPPrVkb2L/N+ZCfu0fnh appveyor"
cache:
- /Users/appveyor/Library/Caches/pip/ -> requirements.txt
init:
# - sh: curl -sflL 'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-ssh.sh' | bash -e -
- sh: source ~/venv3.11/bin/activate
install:
- sh: bash scripts/osx-setup.sh
build_script:
- sh: bash scripts/osx-translations.sh
- sh: python3 scripts/compile_lang.py
- sh: python3 scripts/dump_crowdin_progress.py
- sh: python3 db_update.py
after_build:
- sh: export PYFA_VERSION="$(python3 scripts/dump_version.py)"
- sh: bash scripts/osx-package.sh
# on_finish:
# - sh: export APPVEYOR_SSH_BLOCK=true
# - sh: curl -sflL 'https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-ssh.sh' | bash -e -
artifacts:
- path: dist/pyfa*-mac.zip
before_deploy:
- sh: export RELEASE_PKG_FILE=$(ls *.deb)
- sh: echo "deploying $RELEASE_PKG_FILE to GitHub releases"
deploy:
tag: $PYFA_VERSION
release: pyfa $PYFA_VERSION
description: 'Release description'
provider: GitHub
auth_token:
secure: M94o0xMtzxrvlKpqMcXU2KfbJdd3aYJ3UxWzePUz/pkT1/Ojiis052CiLsLVyzJg
draft: true
force_update: false
# deploy on tag push only
on:
APPVEYOR_REPO_TAG: true

26
.codecov.yml Normal file
View File

@@ -0,0 +1,26 @@
codecov:
notify:
require_ci_to_pass: yes
coverage:
precision: 2
round: down
range: "70...100"
status:
project: yes
patch: yes
changes: no
parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: no
macro: no
comment:
layout: "header, diff"
behavior: default
require_changes: no

36
.gitattributes vendored Normal file
View File

@@ -0,0 +1,36 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto
# Explicitly declare text files you want to always be normalized and converted
# to native line endings on checkout.
# *.c text
# *.h text
# Declare files that will always have CRLF line endings on checkout.
# Source files
# ============
*.pxd text eol=crlf
*.py text eol=crlf
*.py3 text eol=crlf
*.pyw text eol=crlf
*.pyx text eol=crlf
pyfa.py text eol=lf
# Denote all files that are truly binary and should not be modified.
# Binary files
# ============
*.db binary
*.p binary
*.pkl binary
*.pyc binary
*.pyd binary
*.pyo binary
# Note: .db, .p, and .pkl files are associated
# with the python modules ``pickle``, ``dbm.*``,
# ``shelve``, ``marshal``, ``anydbm``, & ``bsddb``
# (among others).
# Denote all files that are truly binary and should not be modified.
# Image files
# ============
*.png binary
*.jpg binary
*.icns binary
*.ico binary

13
.gitignore vendored
View File

@@ -49,7 +49,6 @@ Pyfa.egg-info/
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
@@ -68,7 +67,6 @@ coverage.xml
# Translations
*.mo
*.pot
# Django stuff:
*.log
@@ -92,6 +90,7 @@ target/
# pyenv
.python-version
PyfaEnv/
# celery beat schedule file
celerybeat-schedule
@@ -118,3 +117,13 @@ ENV/
# Pycharm project settings
.idea
eos.iml
gitversion
.version
/.version
*.swp
*.fsdbinary
/locale/progress.json
# vscode settings
.vscode

14
.mailmap Normal file
View File

@@ -0,0 +1,14 @@
cncfanatics <diego.duclos@gmail.com> cncfanatics <cncfanatics@titanium.(none)>
blitzmann <holmes.ryan.90@gmail.com>
blitzmann <holmes.ryan.90@gmail.com> blitzmann <ryan.xgamer99@gmail.com>
blitzmann <holmes.ryan.90@gmail.com>
blitzmann <holmes.ryan.90@gmail.com> blitzman <ryan.xgamer99@gmail.com>
blitzmann <holmes.ryan.90@gmail.com> Ryan Holmes <ryan.holmes.90@gmail.com>
blitzmann <holmes.ryan.90@gmail.com>
Corollax <corollax@gmail.com> Corollax <corollax@corollax-laptop.(none)>
Corollax <corollax@gmail.com> Corollax <corollax@corollax-N76VM.(none)>
Mr. Nukealizer <mr.nukealizer@gmail.com> Mr. Nukealizer <MrNukealizer@users.noreply.github.com>
DarkPhoenix <phoenix@mail.ru>
Sakari Orisi <sakari@evefit.org>
Will Wykeham <will@wykeham.net> Will Wykeham <will.wykeham@paconsulting.com>
OISumeko <camerongrout@gmail.com> OISumeko <cameron@sporadic.co.nz>

107
CONTRIBUTING.md Normal file
View File

@@ -0,0 +1,107 @@
# Contribution
## Requirements
- Python 3.11
- Git CLI installed
- Python, pip and git are all available as command-line commands (add to the path if needed)
Virtual environment will be created in *PyfaEnv* folder. Project will be cloned and run from the *PyfaDEV* folder. Separate virtual environment will be created so required libraries won't clutter the main python installation.
> Commands and screens were created on Windows 10. Please, update all the paths according to your OS.
## Setting up the project manually
Clone the repository
```
git clone <repo> PyfaDEV
```
Create the virtual environment
```
python -m venv PyfaEnv
```
Activate the virtual environment
```
For cmd.exe: PyfaEnv\scripts\activate.bat
For bash: source <venv>/Scripts/activate
```
> For other OS check [Python documentation](https://docs.python.org/3/library/venv.html)
Install requirements for the project from *requirements.txt*
```
pip install -r PyfaDEV\requirements.txt
```
> For some Linux distributions, you may need to install separate wxPython bindings, such as `python-matplotlib-wx`
Check that the libs from *requirements.txt* are installed
```
pip list
```
Build translations and database:
```
python scripts\compile_lang.py
python db_update.py
```
Test that the project is starting properly
```
python PyfaDEV\pyfa.py
```
## Setting up the project with PyCharm/IntelliJ
Install PyCharm / Other IntelliJ product with Python plugin
After launching - select *Check out from Version Control* -> *GIt*
![welcome](https://user-images.githubusercontent.com/54093496/66862580-d8edab00-ef99-11e9-94e2-e93d7043e620.png)
Login to GitHub, paste the repo URL and select the folder to which to clone the project into, press *Clone*.
![Clone](https://user-images.githubusercontent.com/54093496/66862748-38e45180-ef9a-11e9-9f68-4903baf47385.png)
After process is complete, open *File* -> *Settings* -> *Project* -> *Project Interpreter*.
![Settings](https://user-images.githubusercontent.com/54093496/66862792-544f5c80-ef9a-11e9-9e0f-f64767f3f1b0.png)
Press on options and add new virtual environment.
![venv](https://user-images.githubusercontent.com/54093496/66862833-67622c80-ef9a-11e9-94fa-47cca0158d29.png)
Open project tree view and double-click on the *requirements.txt*. Press *Install requirements*. Install all requirements.
![Reqs](https://user-images.githubusercontent.com/54093496/66862870-7a74fc80-ef9a-11e9-9b18-e64be42c49b8.png)
Create new *Run Configuration*. Set correct *Script path* and *Python interpreter*.
![Run configuraion](https://user-images.githubusercontent.com/54093496/66862970-b4460300-ef9a-11e9-9fb4-20e24759904b.png)
Check that the project is starting properly.
## Running tests
Switch to the proper virtual environment
```
For cmd.exe: PyfaEnv\scripts\activate.bat
For bash: source <venv>/Scripts/activate
```
Install pytest
```
pip install pytest
```
Switch to pyfa directory.
Run tests (any will do)
```
python -m pytest
py.test
```
More information on tests can be found on appropriate [Wiki page](https://github.com/pyfa-org/Pyfa/wiki/Developers:-Writing-Tests-for-Pyfa).

34
ISSUE_TEMPLATE.md Normal file
View File

@@ -0,0 +1,34 @@
<!--
Submit a bug report bug report or feature request
Here you can inform pyfa developers of potential bugs or suggest features / improvements to the project. Please check
to make sure that the bug hasn't been reported or feature requested before submitting. If you have general questions
about the project and want to reach out to the developers personally, please check out out our [Slack]
(https://pyfainvite.azurewebsites.net/).
-->
## Bug Report
### Expected behavior:
### Actual behavior:
### Detailed steps to reproduce:
### Fits involved in EFT format (Edit > To Clipboard > EFT):
### Release or development git branch? Please note the release version or commit hash:
### Operating system and version (eg: Windows 10, OS X 10.9, OS X 10.11, Ubuntu 16.10):
### Other relevant information:

View File

@@ -1,66 +1,58 @@
# pyfa
[![Join us on Slack!](https://pyfainvite.azurewebsites.net/badge.svg)](https://pyfainvite.azurewebsites.net/)
[![Build Status](https://ci.appveyor.com/api/projects/status/github/pyfa-org/pyfa?branch=master&svg=true)]([https://travis-ci.org/pyfa-org/Pyfa](https://ci.appveyor.com/project/pyfa-org/pyfa))
![pyfa](https://cloud.githubusercontent.com/assets/3904767/10271512/af385ef2-6ade-11e5-8f67-52b8b1e4c797.PNG)
![pyfa](https://user-images.githubusercontent.com/275209/66119992-864be080-e5e2-11e9-994a-3a4368c9fad7.png)
## What is it?
pyfa, short for **py**thon **f**itting **a**ssistant, allows you to create, experiment with, and save ship fittings without being in game. Open source and written in Python, it is available on any platform where Python 2.x and wxWidgets are available, including Windows, Mac OS X, and Linux.
Pyfa, short for **py**thon **f**itting **a**ssistant, allows you to create, experiment with, and save ship fittings without being in game. Open source and written in Python, it is available on any platform where Python 3 and wxWidgets are available, including Windows, macOS, and Linux.
## Latest Version and Changelogs
The latest version along with release notes can always be found on the project's [Releases](https://github.com/DarkFenX/Pyfa/releases) page. pyfa will notify you if you are running an outdated version.
The latest version along with release notes can always be found on the project's [releases](https://github.com/pyfa-org/Pyfa/releases) page. Pyfa will notify you if you are running an outdated version.
## Installation
Windows and OS X users are supplied self-contained builds of pyfa on the [latest releases](https://github.com/pyfa-org/Pyfa/releases/latest) page. An `.exe` installer is also available for Windows builds. Linux users can run pyfa using their distribution's Python interpreter. There is no official self-contained package for Linux, however, there are a number of third-party packages available through distribution-specific repositories.
Windows, macOS, and Linux users are supplied self-contained builds of pyfa on the [latest releases](https://github.com/pyfa-org/Pyfa/releases/latest) page.
#### OS X
There are two different distributives for OS X: `-mac` and `-mac-deprecated`.
### Third Party Packages
Please note that these packages are maintained by third-parties and are not evaluated by the pyfa developers.
* `-mac`: based on wxPython 3.0.2.0 and has updated libraries. This is the recommended build.
* `-mac-deprecated`: utilizes older binaries running on wxPython 2.8; because of this, some features are not available (currently CREST support and Attribute Overrides). Additionally, as development happens primarily on wxPython 3.0, a few GUI bugs may pop up as `-mac-deprecated` is not actively tested. However, due to some general issues with wxPython 3.0, especially on some newer OS X versions, `-mac-deprecated` is still offered for those that need it.
There is also a [Homebrew](http://brew.sh) option for installing pyfa on OS X. Please note this is maintained by a third-party and is not tested by pyfa developers. Simply fire up in terminal:
#### macOS
Apart from the official release, there is also a [Homebrew](https://formulae.brew.sh/cask/pyfa) option for installing pyfa on macOS. Simply fire up in terminal:
```
$ brew install Caskroom/cask/pyfa
$ brew install --cask pyfa
```
### Linux Distro-specific Packages
The following is a list of pyfa packages available for certain distributions. Please note that these packages are maintained by third-parties and are not evaluated by the pyfa developers.
#### Linux Distro-specific Packages
The following is a list of pyfa packages available for certain distributions.
* Debian/Ubuntu/derivitives: https://github.com/AdamMajer/Pyfa/releases
* Arch: https://aur.archlinux.org/packages/pyfa/
* openSUSE: https://build.opensuse.org/package/show/home:rmk2/pyfa
* FreeBSD: http://www.freshports.org/games/pyfa/ (see [#484](https://github.com/pyfa-org/Pyfa/issues/484) for instructions)
* Gentoo: https://github.com/ZeroPointEnergy/gentoo-pyfa-overlay
### Dependencies
If you wish to help with development or simply need to run pyfa through a Python interpreter, the following software is required:
* Python 2.7
* `wxPython` 2.8/3.0
* `sqlalchemy` >= 0.6
* `dateutil`
* `matplotlib` (for some Linux distributions you may need to install separate wxPython bindings such as `python-matplotlib-wx`)
* `requests`
## Contribution
If you wish to help with development or you need to run pyfa through a Python interpreter, check out [the instructions](https://github.com/pyfa-org/Pyfa/blob/master/CONTRIBUTING.md).
## Bug Reporting
The preferred method of reporting bugs is through the project's [GitHub Issues interface](https://github.com/pyfa-org/Pyfa/issues). Alternatively, posting a report in the [pyfa thread](http://forums.eveonline.com/default.aspx?g=posts&t=247609) on the official EVE Online forums is acceptable. Guidelines for bug reporting can be found on [this wiki page](https://github.com/DarkFenX/Pyfa/wiki/Bug-Reporting).
The preferred method of reporting bugs is through the project's [GitHub Issues interface](https://github.com/pyfa-org/Pyfa/issues). Alternatively, posting a report in the [pyfa thread](https://forums.eveonline.com/t/27156) on the official EVE Online forums is acceptable. Guidelines for bug reporting can be found on [this wiki page](https://github.com/pyfa-org/Pyfa/wiki/Bug-Reporting).
## License
pyfa is licensed under the GNU GPL v3.0, see LICENSE
Pyfa is licensed under the GNU GPL v3.0, see LICENSE
## Resources
* Development repository: [https://github.com/pyfa-org/Pyfa](https://github.com/pyfa-org/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 University guide using pyfa](http://wiki.eveuniversity.org/Guide_to_using_PYFA)
* [Development repository](https://github.com/pyfa-org/Pyfa)
* [EVE forum thread](https://forums.eveonline.com/t/27156)
* [EVE University guide using pyfa](https://wiki.eveuniversity.org/PYFA)
* [EVE Online website](http://www.eveonline.com/)
## Contacts:
* Kadesh / DarkPhoenix
* GitHub: @DarkFenX
* EVE: Kadesh Priestess
* Email: phoenix@mail.ru
* Sable Blitzmann
* GitHub: @blitzmann
* [TweetFleet Slack](https://www.fuzzwork.co.uk/tweetfleet-slack-invites/): @blitzmann
* [Gitter chat](https://gitter.im/pyfa-org/Pyfa): @ blitzmann
* [Gitter chat](https://gitter.im/pyfa-org/Pyfa): @blitzmann
* Email: sable.blitzmann@gmail.com
## CCP Copyright Notice

View File

@@ -0,0 +1,12 @@
<code_scheme name="Pyfa">
<option name="LINE_SEPARATOR" value="&#xD;&#xA;" />
<option name="RIGHT_MARGIN" value="165" />
<Python>
<option name="NEW_LINE_AFTER_COLON" value="true" />
<option name="DICT_NEW_LINE_AFTER_LEFT_BRACE" value="true" />
<option name="DICT_NEW_LINE_BEFORE_RIGHT_BRACE" value="true" />
<option name="USE_CONTINUATION_INDENT_FOR_ARGUMENTS" value="true" />
<option name="OPTIMIZE_IMPORTS_SORT_NAMES_IN_FROM_IMPORTS" value="true" />
<option name="OPTIMIZE_IMPORTS_JOIN_FROM_IMPORTS_WITH_SAME_SOURCE" value="true" />
</Python>
</code_scheme>

View File

@@ -0,0 +1,61 @@
<profile version="1.0">
<option name="myName" value="Pyfa" />
<inspection_tool class="IgnoreUnusedEntry" enabled="false" level="UNUSED ENTRY" enabled_by_default="false" />
<inspection_tool class="InconsistentLineSeparators" enabled="true" level="ERROR" enabled_by_default="true" />
<inspection_tool class="ProblematicWhitespace" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyBehaveInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyClassicStyleClassInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyCompatibilityInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ourVersions">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="2.7" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyMissingTypeHintsInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="wxPython" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPep8Inspection" enabled="true" level="TYPO" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="E203" />
<option value="E127" />
<option value="E128" />
<option value="E126" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="TYPO" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N802" />
<option value="N806" />
<option value="N803" />
<option value="N814" />
</list>
</option>
</inspection_tool>
<inspection_tool class="PyShadowingBuiltinsInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyShadowingNamesInspection" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="_" />
</list>
</option>
</inspection_tool>
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />
<option name="processComments" value="true" />
</inspection_tool>
</profile>

0
_development/__init__.py Normal file
View File

148
_development/helpers.py Normal file
View File

@@ -0,0 +1,148 @@
# noinspection PyPackageRequirements
import pytest
import os
import sys
import threading
from sqlalchemy import MetaData, create_engine
from sqlalchemy.orm import sessionmaker
script_dir = os.path.dirname(os.path.abspath(__file__))
# Add root folder to python paths
sys.path.append(os.path.realpath(os.path.join(script_dir, '..', '..')))
sys._called_from_test = True
# noinspection PyUnresolvedReferences,PyUnusedLocal
@pytest.fixture
def DBInMemory_test():
def rollback():
with sd_lock:
saveddata_session.rollback()
print("Creating database in memory")
from os.path import realpath, join, dirname, abspath
debug = False
gamedataCache = True
saveddataCache = True
gamedata_version = ""
gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(str(__file__))), "..", "eve.db"))
saveddata_connectionstring = 'sqlite:///:memory:'
class ReadOnlyException(Exception):
pass
if callable(gamedata_connectionstring):
gamedata_engine = create_engine("sqlite://", creator=gamedata_connectionstring, echo=debug)
else:
gamedata_engine = create_engine(gamedata_connectionstring, echo=debug)
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:
gamedata_version = gamedata_session.execute(
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
).fetchone()[0]
except (KeyboardInterrupt, SystemExit):
raise
except Exception as e:
print("Missing gamedata version.")
gamedata_version = None
if saveddata_connectionstring is not None:
if callable(saveddata_connectionstring):
saveddata_engine = create_engine(creator=saveddata_connectionstring, echo=debug)
else:
saveddata_engine = create_engine(saveddata_connectionstring, echo=debug)
saveddata_meta = MetaData()
saveddata_meta.bind = saveddata_engine
saveddata_session = sessionmaker(bind=saveddata_engine, autoflush=False, expire_on_commit=False)()
else:
saveddata_meta = None
# Lock controlling any changes introduced to session
sd_lock = threading.Lock()
# Import all the definitions for all our database stuff
# noinspection PyPep8
#from eos.db.gamedata import alphaClones, attribute, category, effect, group, icon, item, marketGroup, metaData, metaGroup, queries, traits, unit
# noinspection PyPep8
#from eos.db.saveddata import booster, cargo, character, crest, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, miscData, module, override, price, queries, skill, targetProfile, user
# If using in memory saveddata, you'll want to reflect it so the data structure is good.
if saveddata_connectionstring == "sqlite:///:memory:":
saveddata_meta.create_all()
# Output debug info to help us troubleshoot Travis
print(saveddata_engine)
print(gamedata_engine)
helper = {
#'config': eos.config,
'gamedata_session' : gamedata_session,
'saveddata_session' : saveddata_session,
}
return helper
# noinspection PyUnresolvedReferences,PyUnusedLocal
@pytest.fixture
def DBInMemory():
print("Creating database in memory")
import eos.config
import eos
import eos.db
# Output debug info to help us troubleshoot Travis
print(eos.db.saveddata_engine)
print(eos.db.gamedata_engine)
helper = {
'config': eos.config,
'db' : eos.db,
'gamedata_session' : eos.db.gamedata_session,
'saveddata_session' : eos.db.saveddata_session,
}
return helper
@pytest.fixture
def Gamedata():
print("Building Gamedata")
from eos.gamedata import Item
helper = {
'Item': Item,
}
return helper
@pytest.fixture
def Saveddata():
print("Building Saveddata")
from eos.saveddata.ship import Ship
from eos.saveddata.fit import Fit
from eos.saveddata.character import Character
from eos.saveddata.module import Module
from eos.const import FittingModuleState
from eos.saveddata.citadel import Citadel
from eos.saveddata.booster import Booster
helper = {
'Structure': Citadel,
'Ship' : Ship,
'Fit' : Fit,
'Character': Character,
'Module' : Module,
'State' : FittingModuleState,
'Booster' : Booster,
}
return helper

View File

@@ -0,0 +1,65 @@
import pytest
# noinspection PyPackageRequirements
# noinspection PyShadowingNames
@pytest.fixture
def RifterFit(DB, Gamedata, Saveddata):
print("Creating Rifter")
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Rifter").first()
ship = Saveddata['Ship'](item)
# setup fit
fit = Saveddata['Fit'](ship, "My Rifter Fit")
return fit
# noinspection PyShadowingNames
@pytest.fixture
def KeepstarFit(DB, Gamedata, Saveddata):
print("Creating Keepstar")
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Keepstar").first()
ship = Saveddata['Structure'](item)
# setup fit
fit = Saveddata['Fit'](ship, "Keepstar Fit")
return fit
# noinspection PyShadowingNames
@pytest.fixture
def CurseFit(DB, Gamedata, Saveddata):
print("Creating Curse - With Neuts")
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Curse").first()
ship = Saveddata['Ship'](item)
# setup fit
fit = Saveddata['Fit'](ship, "Curse - With Neuts")
mod = Saveddata['Module'](DB['db'].getItem("Medium Energy Neutralizer II"))
mod.state = Saveddata['State'].ONLINE
# Add 5 neuts
for _ in range(5):
fit.modules.append(mod)
return fit
# noinspection PyShadowingNames
@pytest.fixture
def HeronFit(DB, Gamedata, Saveddata):
print("Creating Heron - RemoteSebo")
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Heron").first()
ship = Saveddata['Ship'](item)
# setup fit
fit = Saveddata['Fit'](ship, "Heron - RemoteSebo")
mod = Saveddata['Module'](DB['db'].getItem("Remote Sensor Booster II"))
mod.state = Saveddata['State'].ONLINE
# Add 5 neuts
for _ in range(4):
fit.modules.append(mod)
return fit

View File

@@ -0,0 +1,11 @@
import pytest
# noinspection PyPackageRequirements
# noinspection PyShadowingNames
@pytest.fixture
def StrongBluePillBooster (DB, Gamedata, Saveddata):
print("Creating Strong Blue Pill Booster")
item = DB['gamedata_session'].query(Gamedata['Item']).filter(Gamedata['Item'].name == "Strong Blue Pill Booster").first()
return Saveddata['Booster'](item)

View File

@@ -0,0 +1,101 @@
import os
# https://msdn.microsoft.com/en-us/library/windows/desktop/dd317756(v=vs.85).aspx
windows_codecs = {
'cp1252', # Standard Windows
'cp1251', # Russian
'cp037',
'cp424',
'cp437',
'cp500',
'cp720',
'cp737',
'cp775',
'cp850',
'cp852',
'cp855',
'cp856',
'cp857',
'cp858',
'cp860',
'cp861',
'cp862',
'cp863',
'cp864',
'cp865',
'cp866',
'cp869',
'cp874',
'cp875',
'cp932',
'cp949',
'cp950',
'cp1006',
'cp1026',
'cp1140',
'cp1250',
'cp1253',
'cp1254',
'cp1255',
'cp1256',
'cp1257',
'cp1258',
}
linux_codecs = {
'utf_8', # Generic Linux/Mac
}
mac_codecs = [
'utf_8', # Generic Linux/Mac
'mac_cyrillic',
'mac_greek',
'mac_iceland',
'mac_latin2',
'mac_roman',
'mac_turkish',
]
universal_codecs = [
'utf_16', 'utf_32', 'utf_32_be', 'utf_32_le', 'utf_16_be', 'utf_16_le', 'utf_7', 'utf_8_sig',
]
other_codecs = [
'scii', 'big5', 'big5hkscs', 'euc_jp', 'euc_jis_2004', 'euc_jisx0213', 'euc_kr', 'gb2312', 'gbk', 'gb18030', 'hz', 'iso2022_jp', 'iso2022_jp_1',
'iso2022_jp_2', 'iso2022_jp_2004', 'iso2022_jp_3', 'iso2022_jp_ext', 'iso2022_kr', 'latin_1', 'iso8859_2', 'iso8859_3', 'iso8859_4', 'iso8859_5',
'iso8859_6', 'iso8859_7', 'iso8859_8', 'iso8859_9', 'iso8859_10', 'iso8859_11', 'iso8859_13', 'iso8859_14', 'iso8859_15', 'iso8859_16', 'johab', 'koi8_r',
'koi8_u', 'ptcp154', 'shift_jis', 'shift_jis_2004', 'shift_jisx0213'
]
system_names = {
'Windows': windows_codecs,
'Linux': linux_codecs,
'Darwin': mac_codecs,
}
def GetPath(root, file=None, codec=None):
# Replace this with the function we actually use for this
path = os.path.realpath(os.path.abspath(root))
if file:
path = os.path.join(path, file)
if codec:
path = path.decode(codec)
return path
def GetUnicodePath(root, file=None, codec=None):
# Replace this with the function we actually use for this
path = os.path.realpath(os.path.abspath(root))
if file:
path = os.path.join(path, file)
if codec:
path = str(path, codec)
else:
path = str(path)
return path

276
config.py
View File

@@ -1,48 +1,91 @@
import os
import sys
import yaml
import wx
# TODO: move all logging back to pyfa.py main loop
# We moved it here just to avoid rebuilding windows skeleton for now (any change to pyfa.py needs it)
import logging
import logging.handlers
from logbook import CRITICAL, DEBUG, ERROR, FingersCrossedHandler, INFO, Logger, NestedSetup, NullHandler, \
StreamHandler, TimedRotatingFileHandler, WARNING
import hashlib
from eos.const import FittingSlot
from cryptography.fernet import Fernet
from collections import namedtuple
pyfalog = Logger(__name__)
# Load variable overrides specific to distribution type
try:
import configforced
except ImportError:
pyfalog.warning("Failed to import: configforced")
configforced = None
# Turns on debug mode
debug = False
# Defines if our saveddata will be in pyfa root or not
saveInRoot = False
# Version data
version = "1.26.0"
tag = "Stable"
expansionName = "YC118.10"
expansionVersion = "1.2"
evemonMinVersion = "4081"
minItemSearchLength = 3
minItemSearchLengthCjk = 1
pyfaPath = None
savePath = None
saveDB = None
gameDB = None
imgsZIP = None
logPath = None
loggingLevel = None
logging_setup = None
cipher = None
clientHash = None
experimentalFeatures = None
version = None
language = None
ApiServer = namedtuple('ApiBase', ['name', 'sso', 'esi', 'client_id', 'callback', 'supports_auto_login'])
supported_servers = {
"Tranquility": ApiServer("Tranquility", "login.eveonline.com", "esi.evetech.net", '095d8cd841ac40b581330919b49fe746', 'https://pyfa-org.github.io/Pyfa/callback', True),
# No point having SISI: https://developers.eveonline.com/blog/article/removing-datasource-singularity
# "Singularity": ApiServer("Singularity", "sisilogin.testeveonline.com", "esi.evetech.net", 'b9c3cc79448f449ab17f3aebd018842e', 'https://pyfa-org.github.io/Pyfa/callback'),
"Serenity": ApiServer("Serenity", "login.evepc.163.com", "ali-esi.evepc.163.com", 'bc90aa496a404724a93f41b4f4e97761', 'https://ali-esi.evepc.163.com/ui/oauth2-redirect.html', False)
}
SSO_LOGOFF_SERENITY='https://login.evepc.163.com/account/logoff'
ESI_CACHE = 'esi_cache'
LOGLEVEL_MAP = {
"critical": CRITICAL,
"error": ERROR,
"warning": WARNING,
"info": INFO,
"debug": DEBUG,
}
CATALOG = 'lang'
class StreamToLogger(object):
"""
Fake file-like stream object that redirects writes to a logger instance.
From: http://www.electricmonk.nl/log/2011/08/14/redirect-stdout-and-stderr-to-a-logger-in-python/
"""
def __init__(self, logger, log_level=logging.INFO):
self.logger = logger
self.log_level = log_level
self.linebuf = ''
slotColourMapDark = {
FittingSlot.LOW: wx.Colour(44, 36, 19), # yellow = low slots 24/13
FittingSlot.MED: wx.Colour(28, 39, 51), # blue = mid slots 8.1/9.5
FittingSlot.HIGH: wx.Colour(53, 31, 34), # red = high slots 6.5/11.5
FittingSlot.RIG: '',
FittingSlot.SUBSYSTEM: ''}
errColorDark = wx.Colour(70, 20, 20)
slotColourMap = {
FittingSlot.LOW: wx.Colour(250, 235, 204), # yellow = low slots
FittingSlot.MED: wx.Colour(188, 215, 241), # blue = mid slots
FittingSlot.HIGH: wx.Colour(235, 204, 209), # red = high slots
FittingSlot.RIG: '',
FittingSlot.SUBSYSTEM: ''}
errColor = wx.Colour(204, 51, 51)
def getClientSecret():
return clientHash
def write(self, buf):
for line in buf.rstrip().splitlines():
self.logger.log(self.log_level, line.rstrip())
def isFrozen():
if hasattr(sys, 'frozen'):
@@ -50,28 +93,45 @@ def isFrozen():
else:
return False
def getPyfaRoot():
base = getattr(sys.modules['__main__'], "__file__", sys.executable) if isFrozen() else sys.argv[0]
root = os.path.dirname(os.path.realpath(os.path.abspath(base)))
root = unicode(root, sys.getfilesystemencoding())
return root
def __createDirs(path):
if not os.path.exists(path):
os.makedirs(path)
def defPaths(customSavePath):
def getPyfaRoot():
if hasattr(sys, '_MEIPASS'):
return sys._MEIPASS
base = getattr(sys.modules['__main__'], "__file__", sys.executable) if isFrozen() else __file__
root = os.path.dirname(os.path.realpath(os.path.abspath(base)))
root = root
return root
def getVersion():
return version
def getDefaultSave():
return os.path.expanduser(os.path.join("~", ".pyfa"))
def defPaths(customSavePath=None):
global debug
global pyfaPath
global savePath
global saveDB
global gameDB
global imgsZIP
global saveInRoot
global logPath
global cipher
global clientHash
global version
global experimentalFeatures
global language
if debug:
logLevel = logging.DEBUG
else:
logLevel = logging.WARN
pyfalog.debug("Configuring Pyfa")
# The main pyfa directory which contains run.py
# Python 2.X uses ANSI by default, so we need to convert the character encoding
@@ -79,6 +139,12 @@ def defPaths(customSavePath):
if pyfaPath is None:
pyfaPath = getPyfaRoot()
# Version data
with open(os.path.join(pyfaPath, "version.yml"), 'r') as file:
data = yaml.load(file, Loader=yaml.SafeLoader)
version = data['version']
# Where we store the saved fits etc, default is the current users home directory
if saveInRoot is True:
savePath = getattr(configforced, "savePath", None)
@@ -87,36 +153,26 @@ def defPaths(customSavePath):
else:
savePath = getattr(configforced, "savePath", None)
if savePath is None:
if customSavePath is None: # customSavePath is not overriden
savePath = unicode(os.path.expanduser(os.path.join("~", ".pyfa")),
sys.getfilesystemencoding())
if customSavePath is None: # customSavePath is not overriden
savePath = getDefaultSave()
else:
savePath = customSavePath
__createDirs(savePath)
if isFrozen():
os.environ["REQUESTS_CA_BUNDLE"] = os.path.join(pyfaPath, "cacert.pem")
os.environ["SSL_CERT_FILE"] = os.path.join(pyfaPath, "cacert.pem")
secret_file = os.path.join(savePath, ".secret")
if not os.path.exists(secret_file):
with open(secret_file, "wb") as _file:
_file.write(Fernet.generate_key())
format = '%(asctime)s %(name)-24s %(levelname)-8s %(message)s'
logging.basicConfig(format=format, level=logLevel)
handler = logging.handlers.RotatingFileHandler(os.path.join(savePath, "log.txt"), maxBytes=1000000, backupCount=3)
formatter = logging.Formatter(format)
handler.setFormatter(formatter)
logging.getLogger('').addHandler(handler)
with open(secret_file, 'rb') as fp:
key = fp.read()
clientHash = hashlib.sha3_256(key).hexdigest()
cipher = Fernet(key)
logging.info("Starting pyfa")
if hasattr(sys, 'frozen'):
stdout_logger = logging.getLogger('STDOUT')
sl = StreamToLogger(stdout_logger, logging.INFO)
sys.stdout = sl
# This interferes with cx_Freeze's own handling of exceptions. Find a way to fix this.
#stderr_logger = logging.getLogger('STDERR')
#sl = StreamToLogger(stderr_logger, logging.ERROR)
#sys.stderr = sl
# if isFrozen():
# os.environ["REQUESTS_CA_BUNDLE"] = os.path.join(pyfaPath, "cacert.pem")
# os.environ["SSL_CERT_FILE"] = os.path.join(pyfaPath, "cacert.pem")
# The database where we store all the fits etc
saveDB = os.path.join(savePath, "saveddata.db")
@@ -124,13 +180,119 @@ def defPaths(customSavePath):
# The database where the static EVE data from the datadump is kept.
# This is not the standard sqlite datadump but a modified version created by eos
# maintenance script
gameDB = os.path.join(pyfaPath, "eve.db")
gameDB = getattr(configforced, "gameDB", gameDB)
if not gameDB:
gameDB = os.path.join(pyfaPath, "eve.db")
## DON'T MODIFY ANYTHING BELOW ##
imgsZIP = getattr(configforced, "imgsZIP", imgsZIP)
if not imgsZIP:
imgsZIP = os.path.join(pyfaPath, "imgs.zip")
if debug:
logFile = "pyfa_debug.log"
else:
logFile = "pyfa.log"
logPath = os.path.join(savePath, logFile)
experimentalFeatures = getattr(configforced, "experimentalFeatures", experimentalFeatures)
if experimentalFeatures is None:
experimentalFeatures = False
# DON'T MODIFY ANYTHING BELOW
import eos.config
#Caching modifiers, disable all gamedata caching, its unneeded.
# Caching modifiers, disable all gamedata caching, its unneeded.
eos.config.gamedataCache = False
# saveddata db location modifier, shouldn't ever need to touch this
eos.config.saveddata_connectionstring = "sqlite:///" + saveDB + "?check_same_thread=False"
eos.config.gamedata_connectionstring = "sqlite:///" + gameDB + "?check_same_thread=False"
# initialize the settings
from service.settings import EOSSettings, LocaleSettings
eos.config.settings = EOSSettings.getInstance().EOSSettings # this is kind of confusing, but whatever
# set langauge, taking the passed argument or falling back to what's saved in the settings
localeSettings = LocaleSettings.getInstance()
language = language or localeSettings.get('locale')
# sets the lang for eos, using the mapped langauge.
eos.config.set_lang(localeSettings.get_eos_locale())
def defLogging():
global debug
global logPath
global loggingLevel
global logging_setup
try:
if debug:
logging_setup = NestedSetup([
# make sure we never bubble up to the stderr handler
# if we run out of setup handling
NullHandler(),
StreamHandler(
sys.stdout,
bubble=False,
level=loggingLevel
),
TimedRotatingFileHandler(
logPath,
level=0,
backup_count=3,
bubble=True,
date_format='%Y-%m-%d',
),
])
else:
logging_setup = NestedSetup([
# make sure we never bubble up to the stderr handler
# if we run out of setup handling
NullHandler(),
FingersCrossedHandler(
TimedRotatingFileHandler(
logPath,
level=0,
backup_count=3,
bubble=False,
date_format='%Y-%m-%d',
),
action_level=ERROR,
buffer_size=1000,
# pull_information=True,
# reset=False,
)
])
except (KeyboardInterrupt, SystemExit):
raise
except:
print("Critical error attempting to setup logging. Falling back to console only.")
logging_setup = NestedSetup([
# make sure we never bubble up to the stderr handler
# if we run out of setup handling
NullHandler(),
StreamHandler(
sys.stdout,
bubble=False
)
])
class LoggerWriter:
def __init__(self, level):
# self.level is really like using log.debug(message)
# at least in my case
self.level = level
def write(self, message):
# if statement reduces the amount of newlines that are
# printed to the logger
if message.strip() != '':
self.level(message.replace("\n", ""))
def flush(self):
# create a flush method so things can be flushed when
# the system wants to. Not sure if simply 'printing'
# sys.stderr is the correct way to do it, but it seemed
# to work properly for me.
self.level(sys.stderr)

3
crowdin.yml Normal file
View File

@@ -0,0 +1,3 @@
files:
- source: /locale/*.pot
translation: /locale/%locale_with_underscore%/LC_MESSAGES/lang.po

807
db_update.py Normal file
View File

@@ -0,0 +1,807 @@
#!/usr/bin/env python3
#======================================================================
# Copyright (C) 2012 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 3 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/>.
#======================================================================
import functools
import itertools
import json
import os
import re
import sqlite3
import sys
import sqlalchemy.orm
from sqlalchemy import or_, and_
# todo: need to set the EOS language to en, becasuse this assumes it's being run within an English context
# Need to know what that would do if called from pyfa
ROOT_DIR = os.path.realpath(os.path.dirname(__file__))
DB_PATH = os.path.join(ROOT_DIR, 'eve.db')
JSON_DIR = os.path.join(ROOT_DIR, 'staticdata')
if ROOT_DIR not in sys.path:
sys.path.insert(0, ROOT_DIR)
GAMEDATA_SCHEMA_VERSION = 4
def db_needs_update():
"""True if needs, false if it does not, none if we cannot check it."""
try:
with open(os.path.join(JSON_DIR, 'phobos', 'metadata.0.json')) as f:
data_version = next((r['field_value'] for r in json.load(f) if r['field_name'] == 'client_build'))
except (KeyboardInterrupt, SystemExit):
raise
# If we have no source data - return None; should not update in this case
except:
return None
if not os.path.isfile(DB_PATH):
print('Gamedata DB not found')
return True
db_data_version = None
db_schema_version = None
try:
db = sqlite3.connect(DB_PATH)
cursor = db.cursor()
cursor.execute('SELECT field_value FROM metadata WHERE field_name = \'client_build\'')
for row in cursor:
db_data_version = int(row[0])
cursor.execute('SELECT field_value FROM metadata WHERE field_name = \'schema_version\'')
for row in cursor:
db_schema_version = int(row[0])
cursor.close()
db.close()
except (KeyboardInterrupt, SystemExit):
raise
except:
print('Error when fetching gamedata DB metadata')
return True
if data_version != db_data_version:
print('Gamedata DB data version mismatch: needed {}, DB has {}'.format(data_version, db_data_version))
return True
if GAMEDATA_SCHEMA_VERSION != db_schema_version:
print('Gamedata DB schema version mismatch: needed {}, DB has {}'.format(GAMEDATA_SCHEMA_VERSION, db_schema_version))
return True
return False
def update_db():
print('Building gamedata DB...')
if os.path.isfile(DB_PATH):
os.remove(DB_PATH)
import eos.db
import eos.gamedata
import eos.config
# Create the database tables
eos.db.gamedata_meta.create_all()
def _readData(minerName, jsonName, keyIdName=None):
compiled_data = None
for i in itertools.count(0):
try:
with open(os.path.join(JSON_DIR, minerName, '{}.{}.json'.format(jsonName, i)), encoding='utf-8') as f:
rawData = json.load(f)
if i == 0:
compiled_data = {} if type(rawData) == dict else []
if type(rawData) == dict:
compiled_data.update(rawData)
else:
compiled_data.extend(rawData)
except FileNotFoundError:
break
if not keyIdName:
return compiled_data
# IDs in keys, rows in values
data = []
for k, v in compiled_data.items():
row = {}
row.update(v)
row[keyIdName] = int(k)
data.append(row)
return data
def _addRows(data, cls, fieldMap=None):
if fieldMap is None:
fieldMap = {}
for row in data:
instance = cls()
for k, v in row.items():
if isinstance(v, str):
v = v.strip()
setattr(instance, fieldMap.get(k, k), v)
eos.db.gamedata_session.add(instance)
def processEveTypes():
print('processing evetypes')
data = _readData('fsd_binary', 'types', keyIdName='typeID')
for row in data:
if (
# Apparently people really want Civilian modules available
(row['typeName_en-us'].startswith('Civilian') and "Shuttle" not in row['typeName_en-us'])
or row['typeName_en-us'] == 'Capsule'
or row['groupID'] == 4033 # destructible effect beacons
or re.match(r'AIR .+Booster.*', row['typeName_en-us'])
):
row['published'] = True
# Nearly useless and clutter search results too much
elif (
row['typeName_en-us'].startswith('Limited Synth ')
or row['typeName_en-us'].startswith('Expired ')
or re.match(r'Mining Blitz .+ Booster Dose .+', row['typeName_en-us'])
or row['typeName_en-us'].endswith(' Filament') and (
"'Needlejack'" not in row['typeName_en-us'] and
"'Devana'" not in row['typeName_en-us'] and
"'Pochven'" not in row['typeName_en-us'] and
"'Extraction'" not in row['typeName_en-us'] and
"'Krai Veles'" not in row['typeName_en-us'] and
"'Krai Perun'" not in row['typeName_en-us'] and
"'Krai Svarog'" not in row['typeName_en-us']
)
):
row['published'] = False
newData = []
for row in data:
if (
row['published'] or
# group Ship Modifiers, for items like tactical t3 ship modes
row['groupID'] == 1306 or
# Micro Bombs (Fighters)
row['typeID'] in (41549, 41548, 41551, 41550) or
# Abyssal weather (environment)
row['groupID'] in (
1882,
1975,
1971,
1983) # the "container" for the abyssal environments
):
newData.append(row)
map = {'typeName_en-us': 'typeName', 'description_en-us': '_description'}
map.update({'description'+v: '_description'+v for (k, v) in eos.config.translation_mapping.items() if k != 'en'})
_addRows(newData, eos.gamedata.Item, fieldMap=map)
return newData
def processEveGroups():
print('processing evegroups')
data = _readData('fsd_binary', 'groups', keyIdName='groupID')
map = {'groupName_en-us': 'name'}
map.update({'groupName'+v: 'name'+v for (k, v) in eos.config.translation_mapping.items() if k != 'en'})
_addRows(data, eos.gamedata.Group, fieldMap=map)
return data
def processEveCategories():
print('processing evecategories')
data = _readData('fsd_binary', 'categories', keyIdName='categoryID')
map = { 'categoryName_en-us': 'name' }
map.update({'categoryName'+v: 'name'+v for (k, v) in eos.config.translation_mapping.items() if k != 'en'})
_addRows(data, eos.gamedata.Category, fieldMap=map)
def processDogmaAttributes():
print('processing dogmaattributes')
data = _readData('fsd_binary', 'dogmaattributes', keyIdName='attributeID')
map = {
'displayName_en-us': 'displayName',
# 'tooltipDescription_en-us': 'tooltipDescription'
}
_addRows(data, eos.gamedata.AttributeInfo, fieldMap=map)
def processDogmaTypeAttributes(eveTypesData):
print('processing dogmatypeattributes')
data = _readData('fsd_binary', 'typedogma', keyIdName='typeID')
eveTypeIds = set(r['typeID'] for r in eveTypesData)
newData = []
seenKeys = set()
def checkKey(key):
if key in seenKeys:
return False
seenKeys.add(key)
return True
for typeData in data:
if typeData['typeID'] not in eveTypeIds:
continue
for row in typeData.get('dogmaAttributes', ()):
row['typeID'] = typeData['typeID']
if checkKey((row['typeID'], row['attributeID'])):
newData.append(row)
for row in eveTypesData:
for attrId, attrName in {4: 'mass', 38: 'capacity', 161: 'volume', 162: 'radius'}.items():
if attrName in row and checkKey((row['typeID'], attrId)):
newData.append({'typeID': row['typeID'], 'attributeID': attrId, 'value': row[attrName]})
_addRows(newData, eos.gamedata.Attribute)
return newData
def processDynamicItemAttributes():
print('processing dynamicitemattributes')
data = _readData('fsd_binary', 'dynamicitemattributes')
for mutaID, mutaData in data.items():
muta = eos.gamedata.DynamicItem()
muta.typeID = mutaID
muta.resultingTypeID = mutaData['inputOutputMapping'][0]['resultingType']
eos.db.gamedata_session.add(muta)
for x in mutaData['inputOutputMapping'][0]['applicableTypes']:
item = eos.gamedata.DynamicItemItem()
item.typeID = mutaID
item.applicableTypeID = x
eos.db.gamedata_session.add(item)
for attrID, attrData in mutaData['attributeIDs'].items():
attr = eos.gamedata.DynamicItemAttribute()
attr.typeID = mutaID
attr.attributeID = attrID
attr.min = attrData['min']
attr.max = attrData['max']
eos.db.gamedata_session.add(attr)
def processDogmaEffects():
print('processing dogmaeffects')
data = _readData('fsd_binary', 'dogmaeffects', keyIdName='effectID')
_addRows(data, eos.gamedata.Effect, fieldMap={'resistanceAttributeID': 'resistanceID'})
def processDogmaTypeEffects(eveTypesData):
print('processing dogmatypeeffects')
data = _readData('fsd_binary', 'typedogma', keyIdName='typeID')
eveTypeIds = set(r['typeID'] for r in eveTypesData)
newData = []
for typeData in data:
if typeData['typeID'] not in eveTypeIds:
continue
for row in typeData.get('dogmaEffects', ()):
row['typeID'] = typeData['typeID']
newData.append(row)
_addRows(newData, eos.gamedata.ItemEffect)
return newData
def processDogmaUnits():
print('processing dogmaunits')
data = _readData('fsd_binary', 'dogmaunits', keyIdName='unitID')
_addRows(data, eos.gamedata.Unit, fieldMap={
'name': 'unitName',
'displayName_en-us': 'displayName'
})
def processMarketGroups():
print('processing marketgroups')
data = _readData('fsd_binary', 'marketgroups', keyIdName='marketGroupID')
map = {
'name_en-us': 'marketGroupName',
'description_en-us': '_description',
}
map.update({'name'+v: 'marketGroupName'+v for (k, v) in eos.config.translation_mapping.items() if k != 'en'})
map.update({'description' + v: '_description' + v for (k, v) in eos.config.translation_mapping.items() if k != 'en'})
_addRows(data, eos.gamedata.MarketGroup, fieldMap=map)
def processMetaGroups():
print('processing metagroups')
data = _readData('fsd_binary', 'metagroups', keyIdName='metaGroupID')
map = {'name_en-us': 'metaGroupName'}
map.update({'name' + v: 'metaGroupName' + v for (k, v) in eos.config.translation_mapping.items() if k != 'en'})
_addRows(data, eos.gamedata.MetaGroup, fieldMap=map)
def processCloneGrades():
print('processing clonegrades')
data = _readData('fsd_lite', 'clonegrades')
newData = []
# December, 2017 - CCP decided to use only one set of skill levels for alpha clones. However, this is still
# represented in the data as a skillset per race. To ensure that all skills are the same, we store them in a way
# that we can check to make sure all races have the same skills, as well as skill levels
check = {}
for ID in data:
for skill in data[ID]['skills']:
newData.append({
'alphaCloneID': int(ID),
'alphaCloneName': 'Alpha Clone',
'typeID': skill['typeID'],
'level': skill['level']})
if ID not in check:
check[ID] = {}
check[ID][int(skill['typeID'])] = int(skill['level'])
if not functools.reduce(lambda a, b: a if a == b else False, [v for _, v in check.items()]):
raise Exception('Alpha Clones not all equal')
newData = [x for x in newData if x['alphaCloneID'] == 1]
if len(newData) == 0:
raise Exception('Alpha Clone processing failed')
tmp = []
for row in newData:
if row['alphaCloneID'] not in tmp:
cloneParent = eos.gamedata.AlphaClone()
setattr(cloneParent, 'alphaCloneID', row['alphaCloneID'])
setattr(cloneParent, 'alphaCloneName', row['alphaCloneName'])
eos.db.gamedata_session.add(cloneParent)
tmp.append(row['alphaCloneID'])
_addRows(newData, eos.gamedata.AlphaCloneSkill)
def processTraits():
print('processing traits')
data = _readData('phobos', 'traits')
def convertSection(sectionData):
sectionLines = []
headerText = '<b>{}</b>'.format(sectionData['header'])
sectionLines.append(headerText)
for bonusData in sectionData['bonuses']:
prefix = '{} '.format(bonusData['number']) if 'number' in bonusData else ''
bonusText = '{}{}'.format(prefix, bonusData['text'].replace('\u00B7', '\u2022 '))
sectionLines.append(bonusText)
sectionLine = '<br />\n'.join(sectionLines)
return sectionLine
newData = []
for row in data:
try:
newRow = {
'typeID': row['typeID'],
}
for (k, v) in eos.config.translation_mapping.items():
if v == '':
v = '_en-us'
typeLines = []
traitData = row['traits{}'.format(v)]
for skillData in sorted(traitData.get('skills', ()), key=lambda i: i['header']):
typeLines.append(convertSection(skillData))
if 'role' in traitData:
typeLines.append(convertSection(traitData['role']))
if 'misc' in traitData:
typeLines.append(convertSection(traitData['misc']))
traitLine = '<br />\n<br />\n'.join(typeLines)
newRow['traitText{}'.format(v)] = traitLine
newData.append(newRow)
except:
pass
_addRows(newData, eos.gamedata.Traits, fieldMap={'traitText_en-us': 'traitText'})
def processMetadata():
print('processing metadata')
data = _readData('phobos', 'metadata')
_addRows(data, eos.gamedata.MetaData)
def processReqSkills(eveTypesData):
print('processing requiredskillsfortypes')
def composeReqSkills(raw):
reqSkills = {}
for skillTypeID, skillLevel in raw.items():
reqSkills[int(skillTypeID)] = skillLevel
return reqSkills
eveTypeIds = set(r['typeID'] for r in eveTypesData)
data = _readData('fsd_binary', 'requiredskillsfortypes')
reqsByItem = {}
itemsByReq = {}
for typeID, skillreqData in data.items():
typeID = int(typeID)
if typeID not in eveTypeIds:
continue
for skillTypeID, skillLevel in composeReqSkills(skillreqData).items():
reqsByItem.setdefault(typeID, {})[skillTypeID] = skillLevel
itemsByReq.setdefault(skillTypeID, {})[typeID] = skillLevel
for item in eos.db.gamedata_session.query(eos.gamedata.Item).all():
if item.typeID in reqsByItem:
item.reqskills = json.dumps(reqsByItem[item.typeID])
if item.typeID in itemsByReq:
item.requiredfor = json.dumps(itemsByReq[item.typeID])
def processReplacements(eveTypesData, eveGroupsData, dogmaTypeAttributesData, dogmaTypeEffectsData):
print('finding item replacements')
def compareAttrs(attrs1, attrs2):
# Consider items as different if they have no attrs
if len(attrs1) == 0 and len(attrs2) == 0:
return False
if set(attrs1) != set(attrs2):
return False
if all(attrs1[aid] == attrs2[aid] for aid in attrs1):
return True
return False
skillReqAttribs = {
182: 277,
183: 278,
184: 279,
1285: 1286,
1289: 1287,
1290: 1288}
skillReqAttribsFlat = set(skillReqAttribs.keys()).union(skillReqAttribs.values())
# Get data on type groups
# Format: {type ID: group ID}
typesGroups = {}
for row in eveTypesData:
typesGroups[row['typeID']] = row['groupID']
# Get data on item effects
# Format: {type ID: set(effect, IDs)}
typesEffects = {}
for row in dogmaTypeEffectsData:
typesEffects.setdefault(row['typeID'], set()).add(row['effectID'])
# Get data on type attributes
# Format: {type ID: {attribute ID: attribute value}}
typesNormalAttribs = {}
typesSkillAttribs = {}
for row in dogmaTypeAttributesData:
attributeID = row['attributeID']
if attributeID in skillReqAttribsFlat:
typeSkillAttribs = typesSkillAttribs.setdefault(row['typeID'], {})
typeSkillAttribs[row['attributeID']] = row['value']
# Ignore these attributes for comparison purposes
elif attributeID in (
# We do not need mass as it affects final ship stats only when carried by ship itself
# (and we're not going to replace ships), but it's wildly inconsistent for other items,
# which otherwise would be the same
4, # mass
124, # mainColor
162, # radius
422, # techLevel
633, # metaLevel
1692, # metaGroupID
1768 # typeColorScheme
):
continue
else:
typeNormalAttribs = typesNormalAttribs.setdefault(row['typeID'], {})
typeNormalAttribs[row['attributeID']] = row['value']
# Get data on skill requirements
# Format: {type ID: {skill type ID: skill level}}
typesSkillReqs = {}
for typeID, typeAttribs in typesSkillAttribs.items():
typeSkillAttribs = typesSkillAttribs.get(typeID, {})
if not typeSkillAttribs:
continue
typeSkillReqs = typesSkillReqs.setdefault(typeID, {})
for skillreqTypeAttr, skillreqLevelAttr in skillReqAttribs.items():
try:
skillType = int(typeSkillAttribs[skillreqTypeAttr])
skillLevel = int(typeSkillAttribs[skillreqLevelAttr])
except (KeyError, ValueError):
continue
typeSkillReqs[skillType] = skillLevel
# Format: {group ID: category ID}
groupCategories = {}
for row in eveGroupsData:
groupCategories[row['groupID']] = row['categoryID']
# As EVE affects various types mostly depending on their group or skill requirements,
# we're going to group various types up this way
# Format: {(group ID, frozenset(skillreq, type, IDs), frozenset(type, effect, IDs): [type ID, {attribute ID: attribute value}]}
groupedData = {}
for row in eveTypesData:
typeID = row['typeID']
# Ignore items outside of categories we need
if groupCategories[typesGroups[typeID]] not in (
6, # Ship
7, # Module
8, # Charge
18, # Drone
20, # Implant
22, # Deployable
23, # Starbase
32, # Subsystem
35, # Decryptors
65, # Structure
66, # Structure Module
87, # Fighter
):
continue
typeAttribs = typesNormalAttribs.get(typeID, {})
# Ignore items w/o attributes
if not typeAttribs:
continue
# We need only skill types, not levels for keys
typeSkillreqs = frozenset(typesSkillReqs.get(typeID, {}))
typeGroup = typesGroups[typeID]
typeEffects = frozenset(typesEffects.get(typeID, ()))
groupData = groupedData.setdefault((typeGroup, typeSkillreqs, typeEffects), [])
groupData.append((typeID, typeAttribs))
# Format: {type ID: set(type IDs)}
replacements = {}
# Now, go through composed groups and for every item within it
# find items which are the same
for groupData in groupedData.values():
for type1, type2 in itertools.combinations(groupData, 2):
if compareAttrs(type1[1], type2[1]):
replacements.setdefault(type1[0], set()).add(type2[0])
replacements.setdefault(type2[0], set()).add(type1[0])
# Update DB session with data we generated
for item in eos.db.gamedata_session.query(eos.gamedata.Item).all():
itemReplacements = replacements.get(item.typeID)
if itemReplacements is not None:
item.replacements = ','.join('{}'.format(tid) for tid in sorted(itemReplacements))
def processImplantSets(eveTypesData):
print('composing implant sets')
# Includes only implants which can be considered part of sets, not all implants
implant_groups = (300, 1730)
specials = {'Genolution': ('Genolution Core Augmentation', r'CA-\d+')}
implantSets = {}
for row in eveTypesData:
if not row.get('published'):
continue
if row.get('groupID') not in implant_groups:
continue
typeName = row.get('typeName_en-us', '')
# Regular sets matching
m = re.match(r'(?P<grade>(High|Mid|Low)-grade) (?P<set>\w+) (?P<implant>(Alpha|Beta|Gamma|Delta|Epsilon|Omega))', typeName, re.IGNORECASE)
if m:
implantSets.setdefault((m.group('grade'), m.group('set')), set()).add(row['typeID'])
# Special set matching
for setHandle, (setName, implantPattern) in specials.items():
pattern = '(?P<set>{}) (?P<implant>{})'.format(setName, implantPattern)
m = re.match(pattern, typeName)
if m:
implantSets.setdefault((None, setHandle), set()).add(row['typeID'])
break
data = []
for (gradeName, setName), implants in implantSets.items():
if len(implants) < 2:
continue
implants = ','.join('{}'.format(tid) for tid in sorted(implants))
row = {'setName': setName, 'gradeName': gradeName, 'implants': implants}
data.append(row)
_addRows(data, eos.gamedata.ImplantSet)
eveTypesData = processEveTypes()
eveGroupsData = processEveGroups()
processEveCategories()
processDogmaAttributes()
dogmaTypeAttributesData = processDogmaTypeAttributes(eveTypesData)
processDynamicItemAttributes()
processDogmaEffects()
dogmaTypeEffectsData = processDogmaTypeEffects(eveTypesData)
processDogmaUnits()
processMarketGroups()
processMetaGroups()
processCloneGrades()
processTraits()
processMetadata()
eos.db.gamedata_session.flush()
processReqSkills(eveTypesData)
processReplacements(eveTypesData, eveGroupsData, dogmaTypeAttributesData, dogmaTypeEffectsData)
processImplantSets(eveTypesData)
# Add schema version to prevent further updates
metadata_schema_version = eos.gamedata.MetaData()
metadata_schema_version.field_name = 'schema_version'
metadata_schema_version.field_value = GAMEDATA_SCHEMA_VERSION
eos.db.gamedata_session.add(metadata_schema_version)
eos.db.gamedata_session.flush()
# CCP still has 5 subsystems assigned to T3Cs, even though only 4 are available / usable. They probably have some
# old legacy requirement or assumption that makes it difficult for them to change this value in the data. But for
# pyfa, we can do it here as a post-processing step
for attr in eos.db.gamedata_session.query(eos.gamedata.Attribute).filter(eos.gamedata.Attribute.ID == 1367).all():
attr.value = 4.0
for item in eos.db.gamedata_session.query(eos.gamedata.Item).filter(or_(
eos.gamedata.Item.name.like('%abyssal%'),
eos.gamedata.Item.name.like('%mutated%'),
eos.gamedata.Item.name.like('%_PLACEHOLDER%'),
# Drifter weapons are published for some reason
eos.gamedata.Item.name.in_(('Lux Kontos', 'Lux Xiphos'))
)).all():
if 'Asteroid Mining Crystal' in item.name:
continue
if 'Mutated Drone Specialization' in item.name:
continue
item.published = False
for x in [
30 # Apparel
]:
cat = eos.db.gamedata_session.query(eos.gamedata.Category).filter(eos.gamedata.Category.ID == x).first()
print ('Removing Category: {}'.format(cat.name))
eos.db.gamedata_session.delete(cat)
# Unused normally, can be useful for customizing items
def _copyItem(srcName, tgtTypeID, tgtName):
eveType = eos.db.gamedata_session.query(eos.gamedata.Item).filter(eos.gamedata.Item.name == srcName).one()
eos.db.gamedata_session.expunge(eveType)
sqlalchemy.orm.make_transient(eveType)
eveType.ID = tgtTypeID
for suffix in eos.config.translation_mapping.values():
setattr(eveType, f'typeName{suffix}', tgtName)
eos.db.gamedata_session.add(eveType)
eos.db.gamedata_session.flush()
def _hardcodeAttribs(typeID, attrMap):
for attrName, value in attrMap.items():
try:
attr = eos.db.gamedata_session.query(eos.gamedata.Attribute).filter(and_(
eos.gamedata.Attribute.name == attrName, eos.gamedata.Attribute.typeID == typeID)).one()
except sqlalchemy.orm.exc.NoResultFound:
attrInfo = eos.db.gamedata_session.query(eos.gamedata.AttributeInfo).filter(eos.gamedata.AttributeInfo.name == attrName).one()
attr = eos.gamedata.Attribute()
attr.attributeID = attrInfo.ID
attr.typeID = typeID
attr.value = value
eos.db.gamedata_session.add(attr)
else:
attr.value = value
def _hardcodeEffects(typeID, effectMap):
item = eos.db.gamedata_session.query(eos.gamedata.Item).filter(eos.gamedata.Item.ID == typeID).one()
item.effects.clear()
for effectID, effectName in effectMap.items():
effect = eos.gamedata.Effect()
effect.effectID = effectID
effect.effectName = effectName
item.effects[effectName] = effect
def hardcodeShapash():
shapashTypeID = 1000000
_copyItem(srcName='Utu', tgtTypeID=shapashTypeID, tgtName='Shapash')
attrMap = {
# Fitting
'powerOutput': 50,
'cpuOutput': 225,
'capacitorCapacity': 420,
'rechargeRate': 187500,
# Slots
'hiSlots': 3,
'medSlots': 4,
'lowSlots': 4,
'launcherSlotsLeft': 0,
'turretSlotsLeft': 3,
# Rigs
'rigSlots': 2,
'rigSize': 1,
'upgradeCapacity': 400,
# Shield
'shieldCapacity': 575,
'shieldRechargeRate': 625000,
'shieldEmDamageResonance': 1 - 0.0,
'shieldThermalDamageResonance': 1 - 0.6,
'shieldKineticDamageResonance': 1 - 0.85,
'shieldExplosiveDamageResonance': 1 - 0.5,
# Armor
'armorHP': 1015,
'armorEmDamageResonance': 1 - 0.5,
'armorThermalDamageResonance': 1 - 0.675,
'armorKineticDamageResonance': 1 - 0.8375,
'armorExplosiveDamageResonance': 1 - 0.1,
# Structure
'hp': 1274,
'emDamageResonance': 1 - 0.33,
'thermalDamageResonance': 1 - 0.33,
'kineticDamageResonance': 1 - 0.33,
'explosiveDamageResonance': 1 - 0.33,
'mass': 1215000,
'volume': 29500,
'capacity': 165,
# Navigation
'maxVelocity': 325,
'agility': 3.467,
'warpSpeedMultiplier': 5.5,
# Drones
'droneCapacity': 75,
'droneBandwidth': 25,
# Targeting
'maxTargetRange': 49000,
'maxLockedTargets': 6,
'scanRadarStrength': 0,
'scanLadarStrength': 0,
'scanMagnetometricStrength': 9,
'scanGravimetricStrength': 0,
'signatureRadius': 39,
'scanResolution': 550,
# Misc
'energyWarfareResistance': 0,
'stasisWebifierResistance': 0,
'weaponDisruptionResistance': 0}
effectMap = {
100100: 'pyfaCustomShapashAfArAmount',
100101: 'pyfaCustomShapashAfShtTrackingOptimal',
100102: 'pyfaCustomShapashGfShtDamage',
100103: 'pyfaCustomShapashGfPointRange',
100104: 'pyfaCustomShapashGfPropOverheat',
100105: 'pyfaCustomShapashRolePlateMass',
100106: 'pyfaCustomShapashRoleHeat'}
_hardcodeAttribs(shapashTypeID, attrMap)
_hardcodeEffects(shapashTypeID, effectMap)
def hardcodeCybele():
cybeleTypeID = 1000001
_copyItem(srcName='Adrestia', tgtTypeID=cybeleTypeID, tgtName='Cybele')
attrMap = {
# Fitting
'powerOutput': 1284,
'cpuOutput': 400,
'capacitorCapacity': 2400,
'rechargeRate': 334000,
'hiSlots': 5,
'medSlots': 4,
'lowSlots': 6,
'launcherSlotsLeft': 0,
'turretSlotsLeft': 5,
# Rigs
'rigSlots': 2,
'rigSize': 2,
'upgradeCapacity': 400,
# Shield
'shieldCapacity': 1200,
'shieldRechargeRate': 1250000,
'shieldEmDamageResonance': 1 - 0.0,
'shieldThermalDamageResonance': 1 - 0.5,
'shieldKineticDamageResonance': 1 - 0.9,
'shieldExplosiveDamageResonance': 1 - 0.5,
# Armor
'armorHP': 1900,
'armorEmDamageResonance': 1 - 0.5,
'armorThermalDamageResonance': 1 - 0.69,
'armorKineticDamageResonance': 1 - 0.85,
'armorExplosiveDamageResonance': 1 - 0.1,
# Structure
'hp': 2300,
'emDamageResonance': 1 - 0.33,
'thermalDamageResonance': 1 - 0.33,
'kineticDamageResonance': 1 - 0.33,
'explosiveDamageResonance': 1 - 0.33,
'mass': 11100000,
'volume': 112000,
'capacity': 450,
# Navigation
'maxVelocity': 235,
'agility': 0.457,
'warpSpeedMultiplier': 4.5,
# Drones
'droneCapacity': 100,
'droneBandwidth': 50,
# Targeting
'maxTargetRange': 60000,
'maxLockedTargets': 6,
'scanRadarStrength': 0,
'scanLadarStrength': 0,
'scanMagnetometricStrength': 15,
'scanGravimetricStrength': 0,
'signatureRadius': 115,
'scanResolution': 330,
# Misc
'energyWarfareResistance': 0,
'stasisWebifierResistance': 0,
'weaponDisruptionResistance': 0}
effectMap = {
100200: 'pyfaCustomCybeleHacMhtFalloff',
100201: 'pyfaCustomCybeleHacMhtTracking',
100202: 'pyfaCustomCybeleGcMhtDamage',
100203: 'pyfaCustomCybeleGcArAmount',
100204: 'pyfaCustomCybeleGcPointRange',
100205: 'pyfaCustomCybeleRoleVelocity',
100206: 'pyfaCustomCybeleRolePlateMass'}
_hardcodeAttribs(cybeleTypeID, attrMap)
_hardcodeEffects(cybeleTypeID, effectMap)
# hardcodeShapash()
# hardcodeCybele()
eos.db.gamedata_session.commit()
eos.db.gamedata_engine.execute('VACUUM')
print('done')
if __name__ == '__main__':
update_db()

5666
dist_assets/cacert.pem Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,74 @@
version: 1
AppDir:
path: ./AppDir
app_info:
id: pyfa
name: pyfa
icon: pyfa
version: '{{PYFA_VERSION}}'
exec: usr/bin/python3.11
exec_args: "-s $APPDIR/opt/pyfa/pyfa.py $@"
apt:
arch: [ amd64 ]
sources:
- sourceline: 'deb http://us.archive.ubuntu.com/ubuntu jammy main restricted universe multiverse'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c'
- sourceline: 'deb http://us.archive.ubuntu.com/ubuntu jammy-updates main restricted universe multiverse'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c'
- sourceline: 'deb http://us.archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c'
- sourceline: 'deb http://us.archive.ubuntu.com/ubuntu jammy-security main restricted universe multiverse'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x871920d1991bc93c'
- sourceline: 'deb https://ppa.launchpadcontent.net/deadsnakes/ppa/ubuntu jammy main'
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xf23c5a6cf475977595c89f51ba6932366a755776'
include:
- python3.11
# wx dependencies
- libgtk-3-0
- librsvg2-common # GTK3 recommendation; without it, search in char editor crashes
- libwebkit2gtk-4.0-37 # Needed for wx's HTML lib
# Unknown
- libpcre2-32-0 # https://github.com/pyfa-org/Pyfa/issues/2572
- libnotify4 # https://github.com/pyfa-org/Pyfa/issues/2598
- libwayland-client0 # https://github.com/pyfa-org/Pyfa/issues/2600
exclude:
- hicolor-icon-theme
- humanity-icon-theme
- ubuntu-mono
after_bundle:
# Install python dependencies to bundled interpreter
- export PYTHONHOME="AppDir/usr"
- export PYTHONPATH="AppDir/usr/lib/python3.11/site-packages"
- curl -L https://bootstrap.pypa.io/get-pip.py -o get-pip.py
- AppDir/usr/bin/python3.11 get-pip.py
# Just to bundle certificates with AppImage
- AppDir/usr/bin/python3.11 -s -m pip install certifi
- AppDir/usr/bin/python3.11 -s -m pip install -f https://extras.wxpython.org/wxPython4/extras/linux/gtk3/ubuntu-22.04 -r requirements.txt
files:
exclude:
- usr/lib/x86_64-linux-gnu/gconv
- usr/share/man
- usr/share/doc/*/README.*
- usr/share/doc/*/changelog.*
- usr/share/doc/*/NEWS.*
- usr/share/doc/*/TODO.*
- usr/include
runtime:
env:
PYTHONHOME: '${APPDIR}/usr'
PYTHONPATH: '${APPDIR}/usr/lib/python3.11/site-packages'
SSL_CERT_FILE: '${APPDIR}/usr/local/lib/python3.11/dist-packages/certifi/cacert.pem'
# Workaround for https://github.com/AppImageCrafters/appimage-builder/issues/336
XDG_DATA_DIRS: '${APPDIR}/usr/local/share:${APPDIR}/usr/share:/usr/local/share:/usr/share:$XDG_DATA_DIRS'
AppImage:
sign-key: None
arch: x86_64
file_name: 'pyfa-{{PYFA_VERSION}}-linux.AppImage'

95
dist_assets/mac/pyfa.spec Normal file
View File

@@ -0,0 +1,95 @@
# -*- mode: python -*-
import os
from itertools import chain
import subprocess
import requests.certs
label = subprocess.check_output([
"git", "describe", "--tags"]).strip()
with open('.version', 'w+') as f:
f.write(label.decode())
block_cipher = None
added_files = [
('../../imgs/gui/*.png', 'imgs/gui'),
('../../imgs/gui/*.gif', 'imgs/gui'),
('../../imgs/icons/*.png', 'imgs/icons'),
('../../imgs/renders/*.png', 'imgs/renders'),
('../../dist_assets/win/pyfa.ico', '.'),
('../../service/jargon/*.yaml', 'service/jargon'),
('../../locale', 'locale'),
(requests.certs.where(), '.'), # is this needed anymore?
('../../eve.db', '.'),
('../../README.md', '.'),
('../../LICENSE', '.'),
('../../version.yml', '.'),
]
import_these = [
'numpy.core._dtype_ctypes', # https://github.com/pyinstaller/pyinstaller/issues/3982
'sqlalchemy.ext.baked', # windows build doesn't launch without if when using sqlalchemy 1.3.x
'pkg_resources.py2_warn' # issue 2156
]
icon = os.path.join(os.getcwd(), "dist_assets", "mac", "pyfa.icns")
# Walk directories that do dynamic importing
paths = ('eos/db/migrations', 'service/conversions')
for root, folders, files in chain.from_iterable(os.walk(path) for path in paths):
for file_ in files:
if file_.endswith(".py") and not file_.startswith("_"):
mod_name = "{}.{}".format(
root.replace("/", "."),
file_.split(".py")[0],
)
import_these.append(mod_name)
a = Analysis([r'../../pyfa.py'],
pathex=[],
binaries=[],
datas=added_files,
hiddenimports=import_these,
hookspath=['dist_assets/pyinstaller_hooks'],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
name='pyfa',
debug=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=False ,
icon=icon,
)
app = BUNDLE(
exe,
name='pyfa.app',
version=os.getenv('PYFA_VERSION'),
icon=icon,
bundle_identifier=None,
info_plist={
'NSHighResolutionCapable': 'True',
'NSPrincipalClass': 'NSApplication',
'CFBundleName': 'pyfa',
'CFBundleDisplayName': 'pyfa',
'CFBundleIdentifier': 'org.pyfaorg.pyfa',
'CFBundleVersion': os.getenv('PYFA_VERSION'),
'CFBundleShortVersionString': os.getenv('PYFA_VERSION'),
}
)

37
dist_assets/win/dist.py Normal file
View File

@@ -0,0 +1,37 @@
# helper script to zip up pyinstaller distribution and create installer file
import os.path
from subprocess import call
import zipfile
from packaging.version import Version
import yaml
with open("version.yml", 'r') as file:
data = yaml.load(file, Loader=yaml.SafeLoader)
version = data['version']
os.environ["PYFA_DIST_DIR"] = os.path.join(os.getcwd(), 'dist')
os.environ["PYFA_VERSION"] = version
iscc = r"C:\Program Files (x86)\Inno Setup 6\ISCC.exe"
source = os.path.join(os.environ["PYFA_DIST_DIR"], "pyfa")
fileName = "pyfa-{}-win".format(os.environ["PYFA_VERSION"])
print("Compiling EXE")
v = Version(version)
print(v)
call([
iscc,
os.path.join(os.getcwd(), "dist_assets", "win", "pyfa-setup.iss"),
"/dMyAppVersion=%s" % v,
"/dMyAppDir=%s" % source,
"/dMyOutputDir=%s" % os.path.join(os.getcwd()),
"/dMyOutputFile=%s" % fileName]) # stdout=devnull, stderr=devnull
print("Done")

View File

@@ -0,0 +1,187 @@
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
; Versioning
; we do some #ifdef conditionals because automated compilation passes these as arguments
#ifndef MyAppVersion
#define MyAppVersion "2.1.0"
#endif
; Other config
#define MyAppName "pyfa"
#define MyAppPublisher "pyfa"
#define MyAppURL "https://github.com/pyfa-org/Pyfa/"
#define MyAppExeName "pyfa.exe"
#ifndef MyOutputFile
#define MyOutputFile LowerCase(StringChange(MyAppName+'-'+MyAppVersion+'-win', " ", "-"))
#endif
#ifndef MyAppDir
#define MyAppDir "pyfa"
#endif
#ifndef MyOutputDir
#define MyOutputDir "dist"
#endif
[Setup]
; NOTE: The value of AppId uniquely identifies this application.
; Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{3DA39096-C08D-49CD-90E0-1D177F32C8AA}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64
CloseApplications=yes
DefaultDirName={pf}\{#MyAppName}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
LicenseFile={#MyAppDir}\app\LICENSE
OutputDir={#MyOutputDir}
OutputBaseFilename={#MyOutputFile}
SetupIconFile={#MyAppDir}\app\pyfa.ico
SolidCompression=yes
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked; OnlyBelowVersion: 0,6.1
[Files]
Source: "{#MyAppDir}\pyfa.exe"; DestDir: "{app}"; Flags: ignoreversion; AfterInstall: RemoveFromVirtualStore
Source: "{#MyAppDir}\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
[InstallDelete]
; These will delete left over generated files from 1.14 and below
Type: filesandordirs; Name: "{app}\eos"
Type: filesandordirs; Name: "{app}\gui"
Type: filesandordirs; Name: "{app}\service"
Type: filesandordirs; Name: "{app}\utils"
Type: files; Name: "{app}\*.pyo"
Type: files; Name: "{app}\*.pyc"
[Code]
/////////////////////////////////////////////////////////////////////
function IsAppRunning(const FileName : string): Boolean;
var
FSWbemLocator: Variant;
FWMIService : Variant;
FWbemObjectSet: Variant;
begin
Result := false;
FSWbemLocator := CreateOleObject('WBEMScripting.SWBEMLocator');
FWMIService := FSWbemLocator.ConnectServer('', 'root\CIMV2', '', '');
FWbemObjectSet := FWMIService.ExecQuery(Format('SELECT Name FROM Win32_Process Where Name="%s"',[FileName]));
Result := (FWbemObjectSet.Count > 0);
FWbemObjectSet := Unassigned;
FWMIService := Unassigned;
FSWbemLocator := Unassigned;
end;
/////////////////////////////////////////////////////////////////////
procedure RemoveFromVirtualStore;
var
VirtualStore,FileName,FilePath:String;
DriveChars:Integer;
begin
VirtualStore:=AddBackslash(ExpandConstant('{localappdata}'))+'VirtualStore';
FileName:=ExpandConstant(CurrentFileName);
DriveChars:=Length(ExtractFileDrive(FileName));
if DriveChars>0 then begin
Delete(FileName,1,DriveChars);
FileName:=VirtualStore+FileName;
FilePath:=ExtractFilePath(FileName);
DelTree(FilePath, True, True, True);
end;
end;
/////////////////////////////////////////////////////////////////////
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
if(IsAppRunning( 'pyfa.exe' )) then
begin
Result := 'Please close pyfa before continuing. When closed, please go back to the previous step and continue. If you have named this installer pyfa.exe, please rename it and restart installation';
end
else
begin
Result := '';
end
end;
/////////////////////////////////////////////////////////////////////
function GetUninstallString(): String;
var
sUnInstPath: String;
sUnInstallString: String;
begin
sUnInstPath := ExpandConstant('Software\Microsoft\Windows\CurrentVersion\Uninstall\{{3DA39096-C08D-49CD-90E0-1D177F32C8AA}_is1'); //Your App GUID/ID
sUnInstallString := '';
if not RegQueryStringValue(HKLM, sUnInstPath, 'UninstallString', sUnInstallString) then
if not RegQueryStringValue(HKCU, sUnInstPath, 'UninstallString', sUnInstallString) then
if not RegQueryStringValue(HKLM32, sUnInstPath, 'UninstallString', sUnInstallString) then
RegQueryStringValue(HKCU32, sUnInstPath, 'UninstallString', sUnInstallString);
Result := sUnInstallString;
end;
/////////////////////////////////////////////////////////////////////
function UnInstallOldVersion(): Integer;
var
sUnInstallString: String;
iResultCode: Integer;
begin
// Return Values:
// 1 - uninstall string is empty
// 2 - error executing the UnInstallString
// 3 - successfully executed the UnInstallString
// default return value
Result := 0;
// get the uninstall string of the old app
sUnInstallString := GetUninstallString();
if sUnInstallString <> '' then begin
sUnInstallString := RemoveQuotes(sUnInstallString);
if Exec(sUnInstallString, '/SILENT /NORESTART /SUPPRESSMSGBOXES','', SW_HIDE, ewWaitUntilTerminated, iResultCode) then
Result := 3
else
Result := 2;
end else
Result := 1;
end;
/////////////////////////////////////////////////////////////////////
function IsUpgrade(): Boolean;
begin
Result := (GetUninstallString() <> '');
end;
/////////////////////////////////////////////////////////////////////
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep=ssInstall) then
begin
if (IsUpgrade()) then
begin
UnInstallOldVersion();
end;
end;
end;

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="pyfa" processorArchitecture="x86" type="win32" version="1.0.0.0"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 10 and Windows 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>

87
dist_assets/win/pyfa.spec Normal file
View File

@@ -0,0 +1,87 @@
# -*- mode: python -*-
import os
from itertools import chain
import subprocess
import requests.certs
label = subprocess.check_output(["git", "describe", "--tags"]).strip()
with open('.version', 'w+') as f:
f.write(label.decode())
block_cipher = None
added_files = [
('../../imgs/gui/*.png', 'imgs/gui'),
('../../imgs/gui/*.gif', 'imgs/gui'),
('../../imgs/icons/*.png', 'imgs/icons'),
('../../imgs/renders/*.png', 'imgs/renders'),
('../../service/jargon/*.yaml', 'service/jargon'),
('../../dist_assets/win/pyfa.ico', '.'),
('../../dist_assets/win/pyfa.exe.manifest', '.'),
(requests.certs.where(), '.'), # is this needed anymore?
('../../eve.db', '.'),
('../../README.md', '.'),
('../../LICENSE', '.'),
('../../version.yml', '.'),
]
import_these = [
'numpy.core._dtype_ctypes', # https://github.com/pyinstaller/pyinstaller/issues/3982
'sqlalchemy.ext.baked', # windows build doesn't launch without if when using sqlalchemy 1.3.x
'pkg_resources.py2_warn' # issue 2156
]
# Walk directories that do dynamic importing
paths = ('eos/db/migrations', 'service/conversions')
for root, folders, files in chain.from_iterable(os.walk(path) for path in paths):
for file_ in files:
if file_.endswith(".py") and not file_.startswith("_"):
mod_name = "{}.{}".format(
root.replace("/", "."),
file_.split(".py")[0],
)
import_these.append(mod_name)
a = Analysis(['../../pyfa.py'],
pathex=[
# Need this, see https://github.com/pyinstaller/pyinstaller/issues/1566
# To get this, download and install windows 10 SDK
# If not building on Windows 10, this might be optional
r'C:\Program Files (x86)\Windows Kits\10\Redist\ucrt\DLLs\x86'],
binaries=[],
datas=added_files,
hiddenimports=import_these,
hookspath=['dist_assets/pyinstaller_hooks'],
runtime_hooks=[],
excludes=['Tkinter'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
debug=False,
console=False,
strip=False,
upx=True,
name='pyfa',
icon='dist_assets/win/pyfa.ico',
)
coll = COLLECT(
exe,
a.binaries,
a.zipfiles,
a.datas,
strip=False,
upx=True,
name='pyfa',
icon='dist_assets/win/pyfa.ico',
)

View File

@@ -0,0 +1,45 @@
# UTF-8
#
# For more details about fixed file info 'ffi' see:
# http://msdn.microsoft.com/en-us/library/ms646997.aspx
VSVersionInfo(
ffi=FixedFileInfo(
# filevers and prodvers should be always a tuple with four items: (1, 2, 3, 4)
# Set not needed items to zero 0.
filevers=(1, 15, 1, 0),
prodvers=(1, 15, 1, 0),
# Contains a bitmask that specifies the valid bits 'flags'r
mask=0x3f,
# Contains a bitmask that specifies the Boolean attributes of the file.
flags=0x0,
# The operating system for which this file was designed.
# 0x4 - NT and there is no need to change it.
OS=0x40004,
# The general type of file.
# 0x1 - the file is an application.
fileType=0x1,
# The function of the file.
# 0x0 - the function is not defined for this fileType
subtype=0x0,
# Creation date and time stamp.
date=(0, 0)
),
kids=[
StringFileInfo(
[
StringTable(
u'040904E4',
[StringStruct(u'LegalCopyright', u''),
StringStruct(u'InternalName', u'pyfa.exe'),
StringStruct(u'FileVersion', u'1.15.1.0'),
StringStruct(u'CompanyName', u''),
StringStruct(u'OriginalFilename', u'pyfa.exe'),
StringStruct(u'ProductVersion', u'1.15.1.0'),
StringStruct(u'FileDescription', u'Python fitting assistant'),
StringStruct(u'LegalTrademarks', u''),
StringStruct(u'Comments', u''),
StringStruct(u'ProductName', u'pyfa')])
]),
VarFileInfo([VarStruct(u'Translation', [1033, 1252])])
]
)

1
docs/_config.yml Normal file
View File

@@ -0,0 +1 @@
theme: jekyll-theme-midnight

104
docs/callback.html Normal file
View File

@@ -0,0 +1,104 @@
<html>
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<title>pyfa Authentication Proxy</title>
<style type="text/css">
body { width: 700px; margin: 150px auto; }
h1 { font-size: 40px; }
h2 { font-size: 32px; }
body { font: 20px Helvetica, sans-serif; color: #333; }
#article { display: block; text-align: left; width: 650px; margin: 0 auto; }
.hidden { display:none; }
.success { color: #28a745; }
.error { color: #dc3545; }
textarea { width: 100%; height: 100px; }
hr { border-width: 1px 0 0 0; border-style: solid; border-color: #333; }
button { cursor: pointer; background-color: white; border: 1px solid #333; color: #333; padding: 8px 11px; text-align: center; text-decoration: none; display: inline-block; }
@media (prefers-color-scheme: dark) {
body { background-color: #333; color: white; }
textarea { width: 100%; height: 100px; background-color: #aaa;}
button { background-color: #333; border: 1px solid white; color: white; }
hr { border-color: white; }
}
</style>
</head>
<body>
<!-- Layout from Short Circuit's CREST login. Shout out! https://github.com/farshield/shortcircuit -->
<h1>pyfa</h1>
<div id="mode0" class="hidden">
<p id="mode0-msg">Processing request...</p>
<button id="showBtn" onClick="showCode()">Show Code</button>
</div>
<div id="mode1" class="hidden">
<p id="mode1-p">Please copy and paste the token below into pyfa.</p>
<textarea id="authCodeText" readonly></textarea>
</div>
</div>
<script>
debugger;
function showCode() {
var element = document.getElementById(`mode1`);
element.classList.remove("hidden");
element = document.getElementById(`showBtn`);
element.classList.add("hidden");
}
function httpPostAsync(url, callback)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == XMLHttpRequest.DONE)
callback(xmlHttp);
}
xmlHttp.open("GET", url, true); // true for asynchronous
xmlHttp.send(null);
}
const urlSearchParams = new URLSearchParams(window.location.search);
const params = Object.fromEntries(urlSearchParams.entries());
let stateInfo;
try {
stateInfo = JSON.parse(atob(params.state))
} catch (err) {
// something has happened and we cannot continue.
// todo: show a simple message and exit.
throw err;
}
// we always want to show the text box for manual.
var element = document.getElementById(`mode${stateInfo.mode}`);
element.classList.remove("hidden");
if (stateInfo.mode === 0) {
let p = document.getElementById(`mode1-p`);
p.prepend(document.createElement("hr"))
}
debugger;
document.getElementById(`authCodeText`).value = btoa(JSON.stringify(params))
if (stateInfo.mode == 0) { // auto / server mode
httpPostAsync(stateInfo.redirect + window.location.search, (req)=>{
debugger;
const msgDiv = document.getElementById(`mode0-msg`);
if (req.status === 200) {
msgDiv.innerHTML ="<span class='success'>Success!</span> You may close this window and return to the application.";
return;
} else if (req.status === 0){
msgDiv.innerHTML = "<span class='error'>Error!</span> Server response not received.<p><small>The local pyfa server may have timed out, or may not have started correctly.</small></p>";
} else if (req.status === 400){
msgDiv.innerHTML = `<span class='error'>Error!</span> <p><small>${req.responseText}</small></p>`
} else {
msgDiv.innerHTML = `<span class='error'>Error!</span> <p><small>There was an unknown error. Please report this to the pyfa issues page.</p><p><textarea readdonly>${req.responseText}</textarea></small></p>`
}
showCode()
// todo: bad request error when it's not an error itself, but rather
})
// todo: post message to local EVE server
}
</script>
</body>
</html>

37
docs/index.md Normal file
View File

@@ -0,0 +1,37 @@
## Welcome to GitHub Pages
You can use the [editor on GitHub](https://github.com/pyfa-org/Pyfa/edit/gh-pages/index.md) to maintain and preview the content for your website in Markdown files.
Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files.
### Markdown
Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for
```markdown
Syntax highlighted code block
# Header 1
## Header 2
### Header 3
- Bulleted
- List
1. Numbered
2. List
**Bold** and _Italic_ and `Code` text
[Link](url) and ![Image](src)
```
For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/).
### Jekyll Themes
Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/pyfa-org/Pyfa/settings/pages). The name of this theme is saved in the Jekyll `_config.yml` configuration file.
### Support or Contact
Having trouble with Pages? Check out our [documentation](https://docs.github.com/categories/github-pages-basics/) or [contact support](https://support.github.com/contact) and well help you sort it out.

View File

@@ -1,8 +1,2 @@
version = "0.2.3"
tag = "git"
def test():
import tests.runTests
import unittest
unittest.main(defaultTest="discover", testLoader=tests.runTests.loader)
version = "0.2.3"
tag = "git"

71
eos/calc.py Normal file
View File

@@ -0,0 +1,71 @@
# =============================================================================
# Copyright (C) 2019 Ryan Holmes
#
# This file is part of pyfa.
#
# pyfa is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyfa is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with pyfa. If not, see <http://www.gnu.org/licenses/>.
# =============================================================================
import math
# Just copy-paste penalization chain calculation code (with some modifications,
# as multipliers arrive in different form) in here to not make actual attribute
# calculations slower than they already are due to extra function calls
def calculateMultiplier(multipliers):
"""
multipliers: dictionary in format:
{stacking group name: [(mult, resist attr ID), (mult, resist attr ID)]}
"""
val = 1
for penalizedMultipliers in multipliers.values():
# A quick explanation of how this works:
# 1: Bonuses and penalties are calculated seperately, so we'll have to filter each of them
l1 = [v[0] for v in penalizedMultipliers if v[0] > 1]
l2 = [v[0] for v in penalizedMultipliers if v[0] < 1]
# 2: The most significant bonuses take the smallest penalty,
# This means we'll have to sort
abssort = lambda _val: -abs(_val - 1)
l1.sort(key=abssort)
l2.sort(key=abssort)
# 3: The first module doesn't get penalized at all
# Any module after the first takes penalties according to:
# 1 + (multiplier - 1) * math.exp(- math.pow(i, 2) / 7.1289)
for l in (l1, l2):
for i in range(len(l)):
bonus = l[i]
val *= 1 + (bonus - 1) * math.exp(- i ** 2 / 7.1289)
return val
def calculateRangeFactor(srcOptimalRange, srcFalloffRange, distance, restrictedRange=True):
"""Range strength/chance factor, applicable to guns, ewar, RRs, etc."""
if distance is None:
return 1
if srcFalloffRange > 0:
# Most modules cannot be activated when at 3x falloff range, with few exceptions like guns
if restrictedRange and distance > srcOptimalRange + 3 * srcFalloffRange:
return 0
return 0.5 ** ((max(0, distance - srcOptimalRange) / srcFalloffRange) ** 2)
elif distance <= srcOptimalRange:
return 1
else:
return 0
def calculateLockTime(srcScanRes, tgtSigRadius):
if not srcScanRes or not tgtSigRadius:
return None
return min(40000 / srcScanRes / math.asinh(tgtSigRadius) ** 2, 30 * 60)

View File

@@ -1,6 +1,7 @@
import heapq
import time
from math import sqrt, exp
from collections import Counter
DAY = 24 * 60 * 60 * 1000
@@ -12,7 +13,7 @@ def lcm(a, b):
return n / a
class CapSimulator(object):
class CapSimulator:
"""Entity's EVE Capacitor Simulator"""
def __init__(self):
@@ -20,6 +21,7 @@ class CapSimulator(object):
self.capacitorCapacity = 100
self.capacitorRecharge = 1000
self.startingCapacity = 1000
# max simulated time.
self.t_max = DAY
@@ -40,6 +42,14 @@ class CapSimulator(object):
# relevant decimal digits of capacitor for LCM period optimization
self.stability_precision = 1
# Stores how cap sim changed cap values outside of cap regen time
self.saved_changes = ()
self.saved_changes_internal = None
# Reports if sim was stopped due to detecting stability early
self.optimize_repeats = True
self.result_optimized_repeats = None
def scale_activation(self, duration, capNeed):
for res in self.scale_resolutions:
mod = duration % res
@@ -58,7 +68,7 @@ class CapSimulator(object):
return duration, capNeed
def init(self, modules):
"""prepare modules. a list of (duration, capNeed, clipSize, disableStagger) tuples is
"""prepare modules. a list of (duration, capNeed, clipSize, disableStagger, reloadTime, isInjector) tuples is
expected, with clipSize 0 if the module has infinite ammo.
"""
self.modules = modules
@@ -66,47 +76,57 @@ class CapSimulator(object):
def reset(self):
"""Reset the simulator state"""
self.state = []
self.saved_changes_internal = {}
self.result_optimized_repeats = False
mods = {}
period = 1
disable_period = False
# Loop over modules, clearing clipSize if applicable, and group modules based on attributes
for (duration, capNeed, clipSize, disableStagger) in self.modules:
for (duration, capNeed, clipSize, disableStagger, reloadTime, isInjector) in self.modules:
if self.scale:
duration, capNeed = self.scale_activation(duration, capNeed)
# set clipSize to infinite if reloads are disabled unless it's
# a cap booster module.
if not self.reload and capNeed > 0:
# a cap booster module
if not self.reload and not isInjector:
clipSize = 0
reloadTime = 0
# Group modules based on their properties
if (duration, capNeed, clipSize, disableStagger) in mods:
mods[(duration, capNeed, clipSize, disableStagger)] += 1
key = (duration, capNeed, clipSize, disableStagger, reloadTime, isInjector)
if key in mods:
mods[key] += 1
else:
mods[(duration, capNeed, clipSize, disableStagger)] = 1
mods[key] = 1
# Loop over grouped modules, configure staggering and push to the simulation state
for (duration, capNeed, clipSize, disableStagger), amount in mods.iteritems():
for (duration, capNeed, clipSize, disableStagger, reloadTime, isInjector), amount in mods.items():
# period optimization doesn't work when reloads are active.
if clipSize:
disable_period = True
# Just push multiple instances if item is injector. We do not want to stagger them as we will
# use them as needed and want them to be available right away
if isInjector:
for i in range(amount):
heapq.heappush(self.state, [0, duration, capNeed, 0, clipSize, reloadTime, isInjector])
continue
if self.stagger and not disableStagger:
# Stagger all mods if they do not need to be reloaded
if clipSize == 0:
duration = int(duration / amount)
# Stagger mods after first
else:
stagger_amount = (duration * clipSize + 10000) / (amount * clipSize)
stagger_amount = (duration * clipSize + reloadTime) / (amount * clipSize)
for i in range(1, amount):
heapq.heappush(self.state,
[i * stagger_amount, duration,
capNeed, 0, clipSize])
heapq.heappush(self.state, [i * stagger_amount, duration, capNeed, 0, clipSize, reloadTime, isInjector])
# If mods are not staggered - just multiply cap use
else:
capNeed *= amount
period = lcm(period, duration)
# period optimization doesn't work when reloads are active.
if clipSize:
disable_period = True
heapq.heappush(self.state, [0, duration, capNeed, 0, clipSize])
heapq.heappush(self.state, [0, duration, capNeed, 0, clipSize, reloadTime, isInjector])
if disable_period:
self.period = self.t_max
@@ -117,7 +137,8 @@ class CapSimulator(object):
"""Run the simulation"""
start = time.time()
awaitingInjectors = []
awaitingInjectorsCounterWrap = Counter()
self.reset()
push = heapq.heappush
@@ -127,27 +148,36 @@ class CapSimulator(object):
stability_precision = self.stability_precision
period = self.period
activation = None
iterations = 0
capCapacity = self.capacitorCapacity
tau = self.capacitorRecharge / 5.0
cap_wrap = capCapacity # cap value at last period
cap_lowest = capCapacity # lowest cap value encountered
cap_lowest_pre = capCapacity # lowest cap value before activations
cap = capCapacity # current cap value
cap_wrap = self.startingCapacity # cap value at last period
cap_lowest = self.startingCapacity # lowest cap value encountered
cap_lowest_pre = self.startingCapacity # lowest cap value before activations
cap = self.startingCapacity # current cap value
t_wrap = self.period # point in time of next period
t_last = 0
t_max = self.t_max
while 1:
activation = pop(state)
t_now, duration, capNeed, shot, clipSize = activation
# Nothing to pop - might happen when no mods are activated, or when
# only cap injectors are active (and are postponed by code below)
try:
activation = pop(state)
except IndexError:
break
t_now, duration, capNeed, shot, clipSize, reloadTime, isInjector = activation
# Max time reached, stop simulation - we're stable
if t_now >= t_max:
break
cap = ((1.0 + (sqrt(cap / capCapacity) - 1.0) * exp((t_last - t_now) / tau)) ** 2) * capCapacity
# Regenerate cap from last time point
if t_now > t_last:
cap = ((1.0 + (sqrt(cap / capCapacity) - 1.0) * exp((t_last - t_now) / tau)) ** 2) * capCapacity
if t_now != t_last:
if cap < cap_lowest_pre:
@@ -155,36 +185,104 @@ class CapSimulator(object):
if t_now == t_wrap:
# history is repeating itself, so if we have more cap now than last
# time this happened, it is a stable setup.
if cap >= cap_wrap:
awaitingInjectorsCounterNow = Counter(awaitingInjectors)
if self.optimize_repeats and cap >= cap_wrap and awaitingInjectorsCounterNow == awaitingInjectorsCounterWrap:
self.result_optimized_repeats = True
break
cap_wrap = round(cap, stability_precision)
awaitingInjectorsCounterWrap = awaitingInjectorsCounterNow
t_wrap += period
cap -= capNeed
if cap > capCapacity:
cap = capCapacity
t_last = t_now
iterations += 1
t_last = t_now
# If injecting cap will "overshoot" max cap, postpone it
if isInjector and cap - capNeed > capCapacity:
awaitingInjectors.append((duration, capNeed, shot, clipSize, reloadTime, isInjector))
if cap < cap_lowest:
if cap < 0.0:
break
cap_lowest = cap
else:
# If we will need more cap than we have, but we are not at 100% -
# use awaiting cap injectors to top us up until we have enough or
# until we're full
if capNeed > cap and cap < capCapacity:
while awaitingInjectors and capNeed > cap and capCapacity > cap:
neededInjection = min(capNeed - cap, capCapacity - cap)
# Find injectors which have just enough cap or more
goodInjectors = [i for i in awaitingInjectors if -i[1] >= neededInjection]
if goodInjectors:
# Pick injector which overshoots the least
bestInjector = min(goodInjectors, key=lambda i: -i[1])
else:
# Take the one which provides the most cap
bestInjector = max(goodInjectors, key=lambda i: -i[1])
# Use injector
awaitingInjectors.remove(bestInjector)
inj_duration, inj_capNeed, inj_shot, inj_clipSize, inj_reloadTime, inj_isInjector = bestInjector
cap -= inj_capNeed
if cap > capCapacity:
cap = capCapacity
self.saved_changes_internal[t_now] = cap
# Add injector to regular state tracker
inj_t_now = t_now
inj_t_now += inj_duration
inj_shot += 1
if inj_clipSize:
if inj_shot % inj_clipSize == 0:
inj_shot = 0
inj_t_now += inj_reloadTime
push(state, [inj_t_now, inj_duration, inj_capNeed, inj_shot, inj_clipSize, inj_reloadTime, inj_isInjector])
# queue the next activation of this module
t_now += duration
shot += 1
if clipSize:
if shot % clipSize == 0:
shot = 0
t_now += 10000 # include reload time
activation[0] = t_now
activation[3] = shot
# Apply cap modification
cap -= capNeed
if cap > capCapacity:
cap = capCapacity
self.saved_changes_internal[t_now] = cap
if cap < cap_lowest:
# Negative cap - we're unstable, simulation is over
if cap < 0.0:
break
cap_lowest = cap
# Try using awaiting injectors to top up the cap after spending some
while awaitingInjectors and cap < capCapacity:
neededInjection = capCapacity - cap
# Find injectors which do not overshoot max cap
goodInjectors = [i for i in awaitingInjectors if -i[1] <= neededInjection]
if not goodInjectors:
break
# Take the one which provides the most cap
bestInjector = max(goodInjectors, key=lambda i: -i[1])
# Use injector
awaitingInjectors.remove(bestInjector)
inj_duration, inj_capNeed, inj_shot, inj_clipSize, inj_reloadTime, inj_isInjector = bestInjector
cap -= inj_capNeed
if cap > capCapacity:
cap = capCapacity
self.saved_changes_internal[t_now] = cap
# Add injector to regular state tracker
inj_t_now = t_now
inj_t_now += inj_duration
inj_shot += 1
if inj_clipSize:
if inj_shot % inj_clipSize == 0:
inj_shot = 0
inj_t_now += inj_reloadTime
push(state, [inj_t_now, inj_duration, inj_capNeed, inj_shot, inj_clipSize, inj_reloadTime, inj_isInjector])
# queue the next activation of this module
t_now += duration
shot += 1
if clipSize:
if shot % clipSize == 0:
shot = 0
t_now += reloadTime # include reload time
activation[0] = t_now
activation[3] = shot
push(state, activation)
if activation is not None:
push(state, activation)
push(state, activation)
# update instance with relevant results.
self.t = t_last
@@ -192,7 +290,7 @@ class CapSimulator(object):
# calculate EVE's stability value
try:
avgDrain = reduce(float.__add__, map(lambda x: x[2] / x[1], self.state), 0.0)
avgDrain = sum(x[2] / x[1] for x in self.state)
self.cap_stable_eve = 0.25 * (1.0 + sqrt(-(2.0 * avgDrain * tau - capCapacity) / capCapacity)) ** 2
except ValueError:
self.cap_stable_eve = 0.0
@@ -202,7 +300,9 @@ class CapSimulator(object):
self.cap_stable_low = cap_lowest
self.cap_stable_high = cap_lowest_pre
else:
self.cap_stable_low = \
self.cap_stable_high = 0.0
self.cap_stable_low = self.cap_stable_high = 0.0
self.saved_changes = tuple((k / 1000, max(0, self.saved_changes_internal[k])) for k in sorted(self.saved_changes_internal))
self.saved_changes_internal = None
self.runtime = time.time() - start

View File

@@ -1,13 +1,51 @@
import sys
from os.path import realpath, join, dirname, abspath
from logbook import Logger
import os
istravis = os.environ.get('TRAVIS') == 'true'
pyfalog = Logger(__name__)
debug = False
gamedataCache = True
saveddataCache = True
gamedata_connectionstring = 'sqlite:///' + unicode(realpath(join(dirname(abspath(__file__)), "..", "eve.db")),
sys.getfilesystemencoding())
saveddata_connectionstring = 'sqlite:///' + unicode(
realpath(join(dirname(abspath(__file__)), "..", "saveddata", "saveddata.db")), sys.getfilesystemencoding())
gamedata_version = ""
gamedata_date = ""
gamedata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "eve.db"))
lang = ""
# Maps supported langauges to their suffix in the database
translation_mapping = {
"en": "",
"fr": "_fr",
# "it": "_it",
"ja": "_ja",
"ko": "_ko",
"ru": "_ru",
"zh": "_zh",
}
def set_lang(i18n_lang):
global lang
lang = translation_mapping.get(i18n_lang, translation_mapping.get("en"))
pyfalog.debug("Gamedata connection string: {0}", gamedata_connectionstring)
if istravis is True or hasattr(sys, '_called_from_test'):
# Running in Travis. Run saveddata database in memory.
saveddata_connectionstring = 'sqlite:///:memory:'
else:
saveddata_connectionstring = 'sqlite:///' + realpath(join(dirname(abspath(__file__)), "..", "saveddata", "saveddata.db"))
pyfalog.debug("Saveddata connection string: {0}", saveddata_connectionstring)
settings = {
"useStaticAdaptiveArmorHardener": False,
"strictSkillLevels": True,
"globalDefaultSpoolupPercentage": 1.0
}
# Autodetect path, only change if the autodetection bugs out.
path = dirname(unicode(__file__, sys.getfilesystemencoding()))
path = dirname(__file__)

115
eos/const.py Normal file
View File

@@ -0,0 +1,115 @@
# =============================================================================
# Copyright (C) 2019 Ryan Holmes
#
# This file is part of pyfa.
#
# pyfa is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# pyfa is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with pyfa. If not, see <http://www.gnu.org/licenses/>.
# =============================================================================
from enum import IntEnum,unique
@unique
class FittingSlot(IntEnum):
"""
Contains slots for ship fittings
"""
# These are self-explanatory
LOW = 1
MED = 2
HIGH = 3
RIG = 4
SUBSYSTEM = 5
# not a real slot, need for pyfa display rack separation
MODE = 6
# system effects. They are projected "modules" and pyfa assumes all modules
# have a slot. In this case, make one up.
SYSTEM = 7
# used for citadel services
SERVICE = 8
# fighter 'slots'. Just easier to put them here...
F_LIGHT = 10
F_SUPPORT = 11
F_HEAVY = 12
# fighter 'slots' (for structures)
FS_LIGHT = 13
FS_SUPPORT = 14
FS_HEAVY = 15
@unique
class ImplantLocation(IntEnum):
"""
Contains location of the implant
"""
FIT = 0
CHARACTER = 1
@unique
class CalcType(IntEnum):
"""
Contains location of the calculation
"""
LOCAL = 0
PROJECTED = 1
COMMAND = 2
@unique
class FittingModuleState(IntEnum):
"""
Contains the state of a fitting module
"""
OFFLINE = -1
ONLINE = 0
ACTIVE = 1
OVERHEATED = 2
@unique
class FittingHardpoint(IntEnum):
"""
Contains the types of a fitting hardpoint
"""
NONE = 0
MISSILE = 1
TURRET = 2
@unique
class SpoolType(IntEnum):
# Spool and cycle scale are different in case if max spool amount cannot
# be divided by spool step without remainder
SPOOL_SCALE = 0 # [0..1]
CYCLE_SCALE = 1 # [0..1]
TIME = 2 # Expressed via time in seconds since spool up started
CYCLES = 3 # Expressed in amount of cycles since spool up started
@unique
class FitSystemSecurity(IntEnum):
HISEC = 0
LOWSEC = 1
NULLSEC = 2
WSPACE = 3
@unique
class Operator(IntEnum):
PREASSIGN = 0
PREINCREASE = 1
MULTIPLY = 2
POSTINCREASE = 3
FORCE = 4

View File

@@ -17,41 +17,84 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
import re
import threading
from sqlalchemy import MetaData, create_engine
from sqlalchemy import MetaData, create_engine, event
from sqlalchemy.orm import sessionmaker, scoped_session
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import pool
import migration
from . import migration
from eos import config
from logbook import Logger
pyfalog = Logger(__name__)
pyfalog.info("Initializing database")
pyfalog.info("Gamedata connection: {0}", config.gamedata_connectionstring)
pyfalog.info("Saveddata connection: {0}", config.saveddata_connectionstring)
class ReadOnlyException(Exception):
pass
def re_fn(expr, item):
try:
reg = re.compile(expr, re.IGNORECASE)
except (SystemExit, KeyboardInterrupt):
raise
except:
return False
return reg.search(item) is not None
pyfalog.debug('Initializing gamedata')
gamedata_connectionstring = config.gamedata_connectionstring
if callable(gamedata_connectionstring):
gamedata_engine = create_engine("sqlite://", creator=gamedata_connectionstring, echo=config.debug)
else:
gamedata_engine = create_engine(gamedata_connectionstring, echo=config.debug)
@event.listens_for(gamedata_engine, 'connect')
def create_functions(dbapi_connection, connection_record):
dbapi_connection.create_function('regexp', 2, re_fn)
gamedata_meta = MetaData()
gamedata_meta.bind = gamedata_engine
gamedata_session = sessionmaker(bind=gamedata_engine, autoflush=False, expire_on_commit=False)()
GamedataSession = scoped_session(sessionmaker(bind=gamedata_engine, autoflush=False, expire_on_commit=False))
gamedata_session = GamedataSession()
gamedata_sessions = {threading.get_ident(): gamedata_session}
def get_gamedata_session():
thread_id = threading.get_ident()
if thread_id not in gamedata_sessions:
gamedata_sessions[thread_id] = GamedataSession()
return gamedata_sessions[thread_id]
pyfalog.debug('Getting gamedata version')
# 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'"
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'client_build'"
).fetchone()[0]
except:
config.gamedata_date = gamedata_session.execute(
"SELECT `field_value` FROM `metadata` WHERE `field_name` LIKE 'dump_time'"
).fetchone()[0]
except (KeyboardInterrupt, SystemExit):
raise
except Exception as e:
pyfalog.warning("Missing gamedata version.")
pyfalog.critical(e)
config.gamedata_version = None
config.gamedata_date = None
pyfalog.debug('Initializing saveddata')
saveddata_connectionstring = config.saveddata_connectionstring
if saveddata_connectionstring is not None:
if callable(saveddata_connectionstring):
@@ -62,23 +105,35 @@ if saveddata_connectionstring is not None:
saveddata_meta = MetaData()
saveddata_meta.bind = saveddata_engine
saveddata_session = sessionmaker(bind=saveddata_engine, autoflush=False, expire_on_commit=False)()
else:
saveddata_meta = None
# Lock controlling any changes introduced to session
sd_lock = threading.Lock()
sd_lock = threading.RLock()
pyfalog.debug('Importing gamedata DB scheme')
# Import all the definitions for all our database stuff
from eos.db.gamedata import *
from eos.db.saveddata import *
# noinspection PyPep8
from eos.db.gamedata import alphaClones, attribute, category, effect, group, item, marketGroup, metaData, metaGroup, queries, traits, unit, dynamicAttributes, implantSet
pyfalog.debug('Importing saveddata DB scheme')
# noinspection PyPep8
from eos.db.saveddata import booster, cargo, character, damagePattern, databaseRepair, drone, fighter, fit, implant, implantSet, \
miscData, mutatorMod, mutatorDrone, module, override, price, queries, skill, targetProfile, user
# Import queries
pyfalog.debug('Importing gamedata queries')
# noinspection PyPep8
from eos.db.gamedata.queries import *
pyfalog.debug('Importing saveddata queries')
# noinspection PyPep8
from eos.db.saveddata.queries import *
# If using in memory saveddata, you'll want to reflect it so the data structure is good.
if config.saveddata_connectionstring == "sqlite:///:memory:":
saveddata_meta.create_all()
pyfalog.info("Running database out of memory.")
def rollback():
with sd_lock:
pyfalog.warning("Session rollback triggered.")
saveddata_session.rollback()

View File

@@ -1,2 +1,2 @@
__all__ = ["attribute", "category", "effect", "group", "metaData",
"icon", "item", "marketGroup", "metaGroup", "unit"]
__all__ = ["attribute", "category", "effect", "group", "metaData", "dynamicAttributes",
"item", "marketGroup", "metaGroup", "unit", "alphaClones", "implantSet"]

View File

@@ -0,0 +1,50 @@
# ===============================================================================
# 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 Column, String, Integer, Table, ForeignKey
from sqlalchemy.orm import relation, mapper, synonym
from eos.db import gamedata_meta
from eos.gamedata import AlphaClone, AlphaCloneSkill
alphaclones_table = Table(
"alphaClones",
gamedata_meta,
Column("alphaCloneID", Integer, primary_key=True),
Column("alphaCloneName", String),
)
alphacloneskskills_table = Table(
"alphaCloneSkills",
gamedata_meta,
Column("alphaCloneID", Integer, ForeignKey("alphaClones.alphaCloneID"), primary_key=True),
Column("typeID", Integer, primary_key=True),
Column("level", Integer),
)
mapper(AlphaClone, alphaclones_table,
properties={
"ID" : synonym("alphaCloneID"),
"skills": relation(
AlphaCloneSkill,
cascade="all,delete-orphan",
backref="clone")
})
mapper(AlphaCloneSkill, alphacloneskskills_table)

View File

@@ -22,8 +22,8 @@ from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import relation, mapper, synonym, deferred
from eos.db import gamedata_meta
from eos.types import Attribute, Icon, AttributeInfo, Unit
from eos.gamedata import Attribute, AttributeInfo, Unit
import eos.config
typeattributes_table = Table("dgmtypeattribs", gamedata_meta,
Column("value", Float),
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True, index=True),
@@ -36,26 +36,29 @@ attributes_table = Table("dgmattribs", gamedata_meta,
Column("maxAttributeID", Integer, ForeignKey("dgmattribs.attributeID")),
Column("description", Unicode),
Column("published", Boolean),
Column("displayName", String),
*[Column("displayName{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
Column("highIsGood", Boolean),
Column("iconID", Integer, ForeignKey("icons.iconID")),
Column("iconID", Integer),
Column("attributeCategory", Integer),
# Column("tooltipDescription", Integer), # deprecated...?
Column("unitID", Integer, ForeignKey("dgmunits.unitID")))
mapper(Attribute, typeattributes_table,
properties={"info": relation(AttributeInfo, lazy=False)})
mapper(AttributeInfo, attributes_table,
properties={"icon": relation(Icon),
"unit": relation(Unit),
"ID": synonym("attributeID"),
"name": synonym("attributeName"),
"description": deferred(attributes_table.c.description)})
properties={
"unit" : relation(Unit),
"ID" : synonym("attributeID"),
"name" : synonym("attributeName"),
"description": deferred(attributes_table.c.description),
})
Attribute.ID = association_proxy("info", "attributeID")
Attribute.name = association_proxy("info", "attributeName")
Attribute.description = association_proxy("info", "description")
Attribute.published = association_proxy("info", "published")
Attribute.displayName = association_proxy("info", "displayName")
Attribute.displayName = association_proxy("info", "displayName{}".format(eos.config.lang))
Attribute.highIsGood = association_proxy("info", "highIsGood")
Attribute.iconID = association_proxy("info", "iconID")
Attribute.icon = association_proxy("info", "icon")

View File

@@ -17,21 +17,23 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Column, String, Integer, ForeignKey, Boolean, Table
from sqlalchemy.orm import relation, mapper, synonym, deferred
from sqlalchemy import Boolean, Column, Integer, String, Table
from sqlalchemy.orm import deferred, mapper, synonym
from eos.db import gamedata_meta
from eos.types import Category, Icon
from eos.gamedata import Category
import eos.config
categories_table = Table("invcategories", gamedata_meta,
Column("categoryID", Integer, primary_key=True),
Column("categoryName", String),
Column("description", String),
*[Column("name{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
# Column("description", String), # deprecated
Column("published", Boolean),
Column("iconID", Integer, ForeignKey("icons.iconID")))
Column("iconID", Integer))
mapper(Category, categories_table,
properties={"icon": relation(Icon),
"ID": synonym("categoryID"),
"name": synonym("categoryName"),
"description": deferred(categories_table.c.description)})
properties={
"ID" : synonym("categoryID"),
"displayName": synonym("name{}".format(eos.config.lang)),
# "description": deferred(categories_table.c.description) # deprecated
})

View File

@@ -0,0 +1,65 @@
# ===============================================================================
# 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 Column, Float, Integer, Table, ForeignKey
from sqlalchemy.orm import mapper, relation, synonym
from sqlalchemy.ext.associationproxy import association_proxy
from eos.db import gamedata_meta
from eos.gamedata import DynamicItem, DynamicItemAttribute, DynamicItemItem, Item
from eos.gamedata import AttributeInfo
dynamic_table = Table("mutaplasmids", gamedata_meta,
Column("typeID", ForeignKey("invtypes.typeID"), primary_key=True, index=True),
Column("resultingTypeID", ForeignKey("invtypes.typeID"), primary_key=True))
dynamicAttributes_table = Table("mutaplasmidAttributes", gamedata_meta,
Column("typeID", Integer, ForeignKey("mutaplasmids.typeID"), primary_key=True),
Column("attributeID", ForeignKey("dgmattribs.attributeID"), primary_key=True),
Column("min", Float),
Column("max", Float))
dynamicApplicable_table = Table("mutaplasmidItems", gamedata_meta,
Column("typeID", ForeignKey("mutaplasmids.typeID"), primary_key=True),
Column("applicableTypeID", ForeignKey("invtypes.typeID"), primary_key=True),)
mapper(DynamicItem, dynamic_table, properties={
"attributes": relation(DynamicItemAttribute),
"item": relation(Item, foreign_keys=[dynamic_table.c.typeID]),
"resultingItem": relation(Item, foreign_keys=[dynamic_table.c.resultingTypeID]),
"ID": synonym("typeID"),
})
mapper(DynamicItemAttribute, dynamicAttributes_table,
properties={"info": relation(AttributeInfo, lazy=False)})
mapper(DynamicItemItem, dynamicApplicable_table, properties={
"mutaplasmid": relation(DynamicItem, viewonly=True),
})
DynamicItemAttribute.ID = association_proxy("info", "attributeID")
DynamicItemAttribute.name = association_proxy("info", "attributeName")
DynamicItemAttribute.description = association_proxy("info", "description")
DynamicItemAttribute.published = association_proxy("info", "published")
DynamicItemAttribute.displayName = association_proxy("info", "displayName")
DynamicItemAttribute.highIsGood = association_proxy("info", "highIsGood")
DynamicItemAttribute.iconID = association_proxy("info", "iconID")
DynamicItemAttribute.icon = association_proxy("info", "icon")
DynamicItemAttribute.unit = association_proxy("info", "unit")

View File

@@ -18,11 +18,10 @@
# ===============================================================================
from sqlalchemy import Column, String, Integer, Boolean, Table, ForeignKey
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import mapper, synonym, relation, deferred
from sqlalchemy.orm import mapper, synonym, deferred
from eos.db import gamedata_meta
from eos.types import Effect, EffectInfo
from eos.gamedata import Effect, ItemEffect
typeeffects_table = Table("dgmtypeeffects", gamedata_meta,
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True, index=True),
@@ -34,17 +33,14 @@ effects_table = Table("dgmeffects", gamedata_meta,
Column("description", String),
Column("published", Boolean),
Column("isAssistance", Boolean),
Column("isOffensive", Boolean))
Column("isOffensive", Boolean),
Column("resistanceID", Integer))
mapper(EffectInfo, effects_table,
properties={"ID": synonym("effectID"),
"name": synonym("effectName"),
"description": deferred(effects_table.c.description)})
mapper(Effect, effects_table,
properties={
"ID" : synonym("effectID"),
"name" : synonym("effectName"),
"description": deferred(effects_table.c.description)
})
mapper(Effect, typeeffects_table,
properties={"ID": synonym("effectID"),
"info": relation(EffectInfo, lazy=False)})
Effect.name = association_proxy("info", "name")
Effect.description = association_proxy("info", "description")
Effect.published = association_proxy("info", "published")
mapper(ItemEffect, typeeffects_table)

View File

@@ -18,22 +18,24 @@
# ===============================================================================
from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table
from sqlalchemy.orm import relation, mapper, synonym, deferred
from sqlalchemy.orm import relation, mapper, synonym, deferred, backref
from eos.db import gamedata_meta
from eos.types import Group, Icon, Category
from eos.gamedata import Category, Group
import eos.config
groups_table = Table("invgroups", gamedata_meta,
Column("groupID", Integer, primary_key=True),
Column("groupName", String),
Column("description", String),
*[Column("name{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
# Column("description", String), # deprecated
Column("published", Boolean),
Column("categoryID", Integer, ForeignKey("invcategories.categoryID")),
Column("iconID", Integer, ForeignKey("icons.iconID")))
Column("iconID", Integer))
mapper(Group, groups_table,
properties={"category": relation(Category, backref="groups"),
"icon": relation(Icon),
"ID": synonym("groupID"),
"name": synonym("groupName"),
"description": deferred(groups_table.c.description)})
properties={
"category" : relation(Category, backref=backref("groups", cascade="all,delete")),
"ID" : synonym("groupID"),
"displayName" : synonym("name{}".format(eos.config.lang)),
# "description": deferred(groups_table.c.description) # deprecated
})

View File

@@ -1,33 +0,0 @@
# ===============================================================================
# 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 Column, String, Integer, Table
from sqlalchemy.orm import mapper, synonym, deferred
from eos.db import gamedata_meta
from eos.types import Icon
icons_table = Table("icons", gamedata_meta,
Column("iconID", Integer, primary_key=True),
Column("description", String),
Column("iconFile", String))
mapper(Icon, icons_table,
properties={"ID": synonym("iconID"),
"description": deferred(icons_table.c.description)})

View File

@@ -0,0 +1,33 @@
# ===============================================================================
# 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 Column, String, Integer, Table
from sqlalchemy.orm import mapper, synonym
from eos.db import gamedata_meta
from eos.gamedata import ImplantSet
implant_set_table = Table("implantsets", gamedata_meta,
Column("setID", Integer, primary_key=True),
Column("setName", String),
Column("gradeName", String),
Column("implants", String))
mapper(ImplantSet, implant_set_table,
properties={"ID": synonym("setID")})

View File

@@ -17,45 +17,67 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table, Float
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, Table
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import relation, mapper, synonym, deferred
from sqlalchemy.orm import backref, deferred, mapper, relation, synonym
from sqlalchemy.orm.collections import attribute_mapped_collection
from eos.db import gamedata_meta
from eos.types import Icon, Attribute, Item, Effect, MetaType, Group, Traits
from eos.db.gamedata.dynamicAttributes import dynamicApplicable_table
from eos.db.gamedata.effect import typeeffects_table
from eos.gamedata import Attribute, DynamicItem, Effect, Group, Item, Traits, MetaGroup
import eos.config
items_table = Table("invtypes", gamedata_meta,
Column("typeID", Integer, primary_key=True),
Column("typeName", String, index=True),
Column("description", String),
*[Column("typeName{}".format(lang), String, index=True) for lang in eos.config.translation_mapping.values()],
*[Column("typeDescription{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
Column("raceID", Integer),
Column("factionID", Integer),
Column("volume", Float),
Column("mass", Float),
Column("capacity", Float),
Column("published", Boolean),
Column("marketGroupID", Integer, ForeignKey("invmarketgroups.marketGroupID")),
Column("iconID", Integer, ForeignKey("icons.iconID")),
Column("groupID", Integer, ForeignKey("invgroups.groupID"), index=True))
Column("iconID", Integer),
Column("graphicID", Integer),
Column("groupID", Integer, ForeignKey("invgroups.groupID"), index=True),
Column("metaLevel", Integer),
Column("metaGroupID", Integer, ForeignKey("invmetagroups.metaGroupID"), index=True),
Column("variationParentTypeID", Integer, ForeignKey("invtypes.typeID"), index=True),
Column("replacements", String),
Column("reqskills", String),
Column("requiredfor", String),
)
from .metaGroup import metatypes_table
from .traits import traits_table
from .traits import traits_table # noqa
mapper(Item, items_table,
properties={"group": relation(Group, backref="items"),
"icon": relation(Icon),
"_Item__attributes": relation(Attribute, collection_class=attribute_mapped_collection('name')),
"effects": relation(Effect, collection_class=attribute_mapped_collection('name')),
"metaGroup": relation(MetaType,
primaryjoin=metatypes_table.c.typeID == items_table.c.typeID,
uselist=False),
"ID": synonym("typeID"),
"name": synonym("typeName"),
"description": deferred(items_table.c.description),
"traits": relation(Traits,
primaryjoin=traits_table.c.typeID == items_table.c.typeID,
uselist=False)
})
props = {
"group": relation(Group, backref=backref("items", cascade="all,delete")),
"_Item__attributes": relation(Attribute, cascade='all, delete, delete-orphan', collection_class=attribute_mapped_collection('name')),
"effects": relation(Effect, secondary=typeeffects_table, collection_class=attribute_mapped_collection('name')),
"metaGroup": relation(MetaGroup, backref=backref("items", cascade="all,delete")),
"varParent": relation(Item, backref=backref("varChildren", cascade="all,delete"), remote_side=items_table.c.typeID),
"ID": synonym("typeID"),
"name": synonym("typeName{}".format(eos.config.lang)),
"description" : synonym("_description{}".format(eos.config.lang)),
"traits": relation(
Traits,
primaryjoin=traits_table.c.typeID == items_table.c.typeID,
uselist=False
),
"mutaplasmids": relation(
DynamicItem,
primaryjoin=dynamicApplicable_table.c.applicableTypeID == items_table.c.typeID,
secondaryjoin=dynamicApplicable_table.c.typeID == DynamicItem.typeID,
secondary=dynamicApplicable_table,
backref="applicableItems",
viewonly=True
)
}
# Create deferred columns shadowing all the description fields. The literal `description` property will dynamically
# be assigned as synonym to one of these
props.update({'_description' + v: deferred(items_table.c['typeDescription' + v]) for (k, v) in eos.config.translation_mapping.items()})
mapper(Item, items_table, properties=props)
Item.category = association_proxy("group", "category")

View File

@@ -21,22 +21,35 @@ from sqlalchemy import Column, String, Integer, Boolean, ForeignKey, Table
from sqlalchemy.orm import relation, mapper, synonym, deferred
from eos.db import gamedata_meta
from eos.types import Item, MarketGroup, Icon
from eos.gamedata import Item, MarketGroup
import eos.config
marketgroups_table = Table("invmarketgroups", gamedata_meta,
Column("marketGroupID", Integer, primary_key=True),
Column("marketGroupName", String),
Column("description", String),
*[Column("marketGroupName{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
*[Column("marketGroupDescription{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
Column("hasTypes", Boolean),
Column("parentGroupID", Integer,
ForeignKey("invmarketgroups.marketGroupID", initially="DEFERRED", deferrable=True)),
Column("iconID", Integer, ForeignKey("icons.iconID")))
ForeignKey("invmarketgroups.marketGroupID", initially="DEFERRED", deferrable=True)),
Column("iconID", Integer))
props = {
"items": relation(Item, backref="marketGroup"),
"parent": relation(MarketGroup, backref="children", remote_side=[marketgroups_table.c.marketGroupID]),
"ID": synonym("marketGroupID"),
"name": synonym("marketGroupName{}".format(eos.config.lang)),
"description": synonym("_description{}".format(eos.config.lang)),
}
# Create deferred columns shadowing all the description fields. The literal `description` property will dynamically
# be assigned as synonym to one of these
# this is mostly here to allow the db_update to be language-agnostic
# todo: determine if we ever use market group descriptions... can we just get with of these?
props.update({'_description' + v: deferred(marketgroups_table.c['marketGroupDescription' + v]) for (k, v) in eos.config.translation_mapping.items()})
mapper(
MarketGroup,
marketgroups_table,
properties=props
)
mapper(MarketGroup, marketgroups_table,
properties={"items": relation(Item, backref="marketGroup"),
"parent": relation(MarketGroup, backref="children",
remote_side=[marketgroups_table.c.marketGroupID]),
"icon": relation(Icon),
"ID": synonym("marketGroupID"),
"name": synonym("marketGroupName"),
"description": deferred(marketgroups_table.c.description)})

View File

@@ -1,30 +1,30 @@
# ===============================================================================
# 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 Column, Table, String
from sqlalchemy.orm import mapper
from eos.db import gamedata_meta
from eos.types import MetaData
metadata_table = Table("metadata", gamedata_meta,
Column("field_name", String, primary_key=True),
Column("field_value", String))
mapper(MetaData, metadata_table)
# ===============================================================================
# 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 Column, Table, String
from sqlalchemy.orm import mapper
from eos.db import gamedata_meta
from eos.gamedata import MetaData
metadata_table = Table("metadata", gamedata_meta,
Column("field_name", String, primary_key=True),
Column("field_value", String))
mapper(MetaData, metadata_table)

View File

@@ -17,31 +17,25 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Table, Column, Integer, ForeignKey, String
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import relation, mapper, synonym
from sqlalchemy import Table, Column, Integer, String
from sqlalchemy.orm import mapper, synonym
from eos.db import gamedata_meta
from eos.db.gamedata.item import items_table
from eos.types import MetaGroup, Item, MetaType
from eos.gamedata import MetaGroup
import eos.config
metagroups_table = Table("invmetagroups", gamedata_meta,
Column("metaGroupID", Integer, primary_key=True),
Column("metaGroupName", String))
metagroups_table = Table(
"invmetagroups",
gamedata_meta,
Column("metaGroupID", Integer, primary_key=True),
*[Column("metaGroupName{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
)
metatypes_table = Table("invmetatypes", gamedata_meta,
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True),
Column("parentTypeID", Integer, ForeignKey("invtypes.typeID")),
Column("metaGroupID", Integer, ForeignKey("invmetagroups.metaGroupID")))
mapper(MetaGroup, metagroups_table,
properties={"ID": synonym("metaGroupID"),
"name": synonym("metaGroupName")})
mapper(MetaType, metatypes_table,
properties={"ID": synonym("metaGroupID"),
"parent": relation(Item, primaryjoin=metatypes_table.c.parentTypeID == items_table.c.typeID),
"items": relation(Item, primaryjoin=metatypes_table.c.typeID == items_table.c.typeID),
"info": relation(MetaGroup, lazy=False)})
MetaType.name = association_proxy("info", "name")
mapper(
MetaGroup,
metagroups_table,
properties={
"ID" : synonym("metaGroupID"),
"name": synonym("metaGroupName{}".format(eos.config.lang))
}
)

View File

@@ -17,21 +17,22 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy.orm import join, exc
from sqlalchemy.inspection import inspect
from sqlalchemy.orm import aliased, exc, join
from sqlalchemy.sql import and_, or_, select
import eos.config
from eos.db import gamedata_session
from eos.db.gamedata.metaGroup import metatypes_table, items_table
from eos.db import get_gamedata_session
from eos.db.gamedata.item import items_table
from eos.db.gamedata.group import groups_table
from eos.db.util import processEager, processWhere
from eos.types import Item, Category, Group, MarketGroup, AttributeInfo, MetaData, MetaGroup
from eos.gamedata import AlphaClone, Attribute, AttributeInfo, Category, DynamicItem, Group, Item, MarketGroup, MetaData, MetaGroup, ImplantSet
cache = {}
configVal = getattr(eos.config, "gamedataCache", None)
if configVal is True:
def cachedQuery(amount, *keywords):
def deco(function):
cache = {}
def checkAndReturn(*args, **kwargs):
useCache = kwargs.pop("useCache", True)
cacheKey = []
@@ -63,7 +64,7 @@ else:
return deco
def sqlizeString(line):
def sqlizeNormalString(line):
# Escape backslashes first, as they will be as escape symbol in queries
# Then escape percent and underscore signs
# Finally, replace generic wildcards with sql-style wildcards
@@ -78,24 +79,112 @@ itemNameMap = {}
def getItem(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
item = gamedata_session.query(Item).get(lookfor)
item = get_gamedata_session().query(Item).get(lookfor)
else:
item = gamedata_session.query(Item).options(*processEager(eager)).filter(Item.ID == lookfor).first()
elif isinstance(lookfor, basestring):
item = get_gamedata_session().query(Item).options(*processEager(eager)).filter(Item.ID == lookfor).first()
elif isinstance(lookfor, str):
if lookfor in itemNameMap:
id = itemNameMap[lookfor]
if eager is None:
item = gamedata_session.query(Item).get(id)
item = get_gamedata_session().query(Item).get(id)
else:
item = gamedata_session.query(Item).options(*processEager(eager)).filter(Item.ID == id).first()
item = get_gamedata_session().query(Item).options(*processEager(eager)).filter(Item.ID == id).first()
else:
# Item names are unique, so we can use first() instead of one()
item = gamedata_session.query(Item).options(*processEager(eager)).filter(Item.name == lookfor).first()
itemNameMap[lookfor] = item.ID
item = get_gamedata_session().query(Item).options(*processEager(eager)).filter(Item.typeName == lookfor).first()
if item is not None:
itemNameMap[lookfor] = item.ID
else:
raise TypeError("Need integer or string as argument")
return item
@cachedQuery(1, "itemIDs")
def getItems(itemIDs, eager=None):
if not isinstance(itemIDs, (tuple, list, set)) or not all(isinstance(t, int) for t in itemIDs):
raise TypeError("Need iterable of integers as argument")
if eager is None:
items = get_gamedata_session().query(Item).filter(Item.ID.in_(itemIDs)).all()
else:
items = get_gamedata_session().query(Item).options(*processEager(eager)).filter(Item.ID.in_(itemIDs)).all()
return items
def getMutaplasmid(lookfor, eager=None):
if isinstance(lookfor, int):
item = get_gamedata_session().query(DynamicItem).filter(DynamicItem.ID == lookfor).first()
else:
raise TypeError("Need integer as argument")
return item
def getItemWithBaseItemAttribute(lookfor, baseItemID, eager=None):
# A lot of this is described in more detail in #1597
item = get_gamedata_session().query(Item).get(lookfor)
base = getItem(baseItemID)
# we have to load all attributes for this object, otherwise we'll lose access to them when we expunge.
# todo: figure out a way to eagerly load all these via the query...
for x in [*inspect(Item).relationships.keys(), 'description']:
getattr(item, x)
# Copy over the attributes from the base, but ise the items attributes when there's an overlap
# WARNING: the attribute object still has the old typeID. I don't believe we access this typeID anywhere in the code,
# but should keep this in mind for now.
item._Item__attributes = {**base.attributes, **item.attributes}
# Expunge the item form the session. This is required to have different Abyssal / Base combinations loaded in memory.
# Without expunging it, once one Abyssal Web is created, SQLAlchmey will use it for all others. We don't want this,
# we want to generate a completely new object to work with
get_gamedata_session().expunge(item)
return item
@cachedQuery(1, "lookfor")
def getItems(lookfor, eager=None):
"""
Gets a list of items. Does a bit of cache hackery to get working properly -- cache
is usually based on function calls with the parameters, needed to extract data directly.
Works well enough. Not currently used, but it's here for possible future inclusion
"""
toGet = []
results = []
for id in lookfor:
if (id, None) in cache:
results.append(cache.get((id, None)))
else:
toGet.append(id)
if len(toGet) > 0:
# Get items that aren't currently cached, and store them in the cache
items = get_gamedata_session().query(Item).filter(Item.ID.in_(toGet)).all()
for item in items:
cache[(item.ID, None)] = item
results += items
# sort the results based on the original indexing
results.sort(key=lambda x: lookfor.index(x.ID))
return results
@cachedQuery(1, "lookfor")
def getAlphaClone(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
item = get_gamedata_session().query(AlphaClone).get(lookfor)
else:
item = get_gamedata_session().query(AlphaClone).options(*processEager(eager)).filter(AlphaClone.ID == lookfor).first()
else:
raise TypeError("Need integer as argument")
return item
def getAlphaCloneList(eager=None):
eager = processEager(eager)
clones = get_gamedata_session().query(AlphaClone).options(*eager).all()
return clones
groupNameMap = {}
@@ -104,20 +193,21 @@ groupNameMap = {}
def getGroup(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
group = gamedata_session.query(Group).get(lookfor)
group = get_gamedata_session().query(Group).get(lookfor)
else:
group = gamedata_session.query(Group).options(*processEager(eager)).filter(Group.ID == lookfor).first()
elif isinstance(lookfor, basestring):
group = get_gamedata_session().query(Group).options(*processEager(eager)).filter(Group.ID == lookfor).first()
elif isinstance(lookfor, str):
if lookfor in groupNameMap:
id = groupNameMap[lookfor]
if eager is None:
group = gamedata_session.query(Group).get(id)
group = get_gamedata_session().query(Group).get(id)
else:
group = gamedata_session.query(Group).options(*processEager(eager)).filter(Group.ID == id).first()
group = get_gamedata_session().query(Group).options(*processEager(eager)).filter(Group.ID == id).first()
else:
# Group names are unique, so we can use first() instead of one()
group = gamedata_session.query(Group).options(*processEager(eager)).filter(Group.name == lookfor).first()
groupNameMap[lookfor] = group.ID
group = get_gamedata_session().query(Group).options(*processEager(eager)).filter(Group.name == lookfor).first()
if group is not None:
groupNameMap[lookfor] = group.ID
else:
raise TypeError("Need integer or string as argument")
return group
@@ -130,23 +220,24 @@ categoryNameMap = {}
def getCategory(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
category = gamedata_session.query(Category).get(lookfor)
category = get_gamedata_session().query(Category).get(lookfor)
else:
category = gamedata_session.query(Category).options(*processEager(eager)).filter(
Category.ID == lookfor).first()
elif isinstance(lookfor, basestring):
category = get_gamedata_session().query(Category).options(*processEager(eager)).filter(
Category.ID == lookfor).first()
elif isinstance(lookfor, str):
if lookfor in categoryNameMap:
id = categoryNameMap[lookfor]
if eager is None:
category = gamedata_session.query(Category).get(id)
category = get_gamedata_session().query(Category).get(id)
else:
category = gamedata_session.query(Category).options(*processEager(eager)).filter(
Category.ID == id).first()
category = get_gamedata_session().query(Category).options(*processEager(eager)).filter(
Category.ID == id).first()
else:
# Category names are unique, so we can use first() instead of one()
category = gamedata_session.query(Category).options(*processEager(eager)).filter(
Category.name == lookfor).first()
categoryNameMap[lookfor] = category.ID
category = get_gamedata_session().query(Category).options(*processEager(eager)).filter(
Category.name == lookfor).first()
if category is not None:
categoryNameMap[lookfor] = category.ID
else:
raise TypeError("Need integer or string as argument")
return category
@@ -159,58 +250,72 @@ metaGroupNameMap = {}
def getMetaGroup(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
metaGroup = gamedata_session.query(MetaGroup).get(lookfor)
metaGroup = get_gamedata_session().query(MetaGroup).get(lookfor)
else:
metaGroup = gamedata_session.query(MetaGroup).options(*processEager(eager)).filter(
MetaGroup.ID == lookfor).first()
elif isinstance(lookfor, basestring):
metaGroup = get_gamedata_session().query(MetaGroup).options(*processEager(eager)).filter(
MetaGroup.ID == lookfor).first()
elif isinstance(lookfor, str):
if lookfor in metaGroupNameMap:
id = metaGroupNameMap[lookfor]
if eager is None:
metaGroup = gamedata_session.query(MetaGroup).get(id)
metaGroup = get_gamedata_session().query(MetaGroup).get(id)
else:
metaGroup = gamedata_session.query(MetaGroup).options(*processEager(eager)).filter(
MetaGroup.ID == id).first()
metaGroup = get_gamedata_session().query(MetaGroup).options(*processEager(eager)).filter(
MetaGroup.ID == id).first()
else:
# MetaGroup names are unique, so we can use first() instead of one()
metaGroup = gamedata_session.query(MetaGroup).options(*processEager(eager)).filter(
MetaGroup.name == lookfor).first()
metaGroupNameMap[lookfor] = metaGroup.ID
metaGroup = get_gamedata_session().query(MetaGroup).options(*processEager(eager)).filter(
MetaGroup.metaGroupName == lookfor).first()
if metaGroup is not None:
metaGroupNameMap[lookfor] = metaGroup.ID
else:
raise TypeError("Need integer or string as argument")
return metaGroup
def getMetaGroups():
return get_gamedata_session().query(MetaGroup).all()
@cachedQuery(1, "lookfor")
def getMarketGroup(lookfor, eager=None):
if isinstance(lookfor, int):
if eager is None:
marketGroup = gamedata_session.query(MarketGroup).get(lookfor)
marketGroup = get_gamedata_session().query(MarketGroup).get(lookfor)
else:
marketGroup = gamedata_session.query(MarketGroup).options(*processEager(eager)).filter(
MarketGroup.ID == lookfor).first()
marketGroup = get_gamedata_session().query(MarketGroup).options(*processEager(eager)).filter(
MarketGroup.ID == lookfor).first()
else:
raise TypeError("Need integer as argument")
return marketGroup
def getMarketTreeNodeIds(rootNodeIds):
allIds = set()
addedIds = set(rootNodeIds)
while addedIds:
allIds.update(addedIds)
addedIds = {mg.ID for mg in get_gamedata_session().query(MarketGroup).filter(MarketGroup.parentGroupID.in_(addedIds))}
return allIds
@cachedQuery(2, "where", "filter")
def getItemsByCategory(filter, where=None, eager=None):
if isinstance(filter, int):
filter = Category.ID == filter
elif isinstance(filter, basestring):
elif isinstance(filter, str):
filter = Category.name == filter
else:
raise TypeError("Need integer or string as argument")
filter = processWhere(filter, where)
return gamedata_session.query(Item).options(*processEager(eager)).join(Item.group, Group.category).filter(
filter).all()
return get_gamedata_session().query(Item).options(*processEager(eager)).join(Item.group, Group.category).filter(
filter).all()
@cachedQuery(3, "where", "nameLike", "join")
def searchItems(nameLike, where=None, join=None, eager=None):
if not isinstance(nameLike, basestring):
if not isinstance(nameLike, str):
raise TypeError("Need string as argument")
if join is None:
@@ -219,9 +324,9 @@ def searchItems(nameLike, where=None, join=None, eager=None):
if not hasattr(join, "__iter__"):
join = (join,)
items = gamedata_session.query(Item).options(*processEager(eager)).join(*join)
items = get_gamedata_session().query(Item).options(*processEager(eager)).join(*join)
for token in nameLike.split(' '):
token_safe = u"%{0}%".format(sqlizeString(token))
token_safe = "%{0}%".format(sqlizeNormalString(token))
if where is not None:
items = items.filter(and_(Item.name.like(token_safe, escape="\\"), where))
else:
@@ -230,8 +335,45 @@ def searchItems(nameLike, where=None, join=None, eager=None):
return items
@cachedQuery(3, "tokens", "where", "join")
def searchItemsRegex(tokens, where=None, join=None, eager=None):
if not isinstance(tokens, (tuple, list)) or not all(isinstance(t, str) for t in tokens):
raise TypeError("Need tuple or list of strings as argument")
if join is None:
join = tuple()
if not hasattr(join, "__iter__"):
join = (join,)
items = get_gamedata_session().query(Item).options(*processEager(eager)).join(*join)
for token in tokens:
if where is not None:
items = items.filter(and_(Item.name.op('regexp')(token), where))
else:
items = items.filter(Item.name.op('regexp')(token))
items = items.limit(100).all()
return items
@cachedQuery(3, "where", "nameLike", "join")
def searchSkills(nameLike, where=None, eager=None):
if not isinstance(nameLike, str):
raise TypeError("Need string as argument")
items = get_gamedata_session().query(Item).options(*processEager(eager)).join(Item.group, Group.category)
for token in nameLike.split(' '):
token_safe = "%{0}%".format(sqlizeNormalString(token))
if where is not None:
items = items.filter(and_(Item.name.like(token_safe, escape="\\"), Category.ID == 16, where))
else:
items = items.filter(and_(Item.name.like(token_safe, escape="\\"), Category.ID == 16))
items = items.limit(100).all()
return items
@cachedQuery(2, "where", "itemids")
def getVariations(itemids, where=None, eager=None):
def getVariations(itemids, groupIDs=None, where=None, eager=None):
for itemid in itemids:
if not isinstance(itemid, int):
raise TypeError("All passed item IDs must be integers")
@@ -239,24 +381,32 @@ def getVariations(itemids, where=None, eager=None):
if len(itemids) == 0:
return []
itemfilter = or_(*(metatypes_table.c.parentTypeID == itemid for itemid in itemids))
itemfilter = or_(*(items_table.c.variationParentTypeID == itemid for itemid in itemids))
filter = processWhere(itemfilter, where)
joinon = items_table.c.typeID == metatypes_table.c.typeID
vars = gamedata_session.query(Item).options(*processEager(eager)).join((metatypes_table, joinon)).filter(
filter).all()
vars = get_gamedata_session().query(Item).options(*processEager(eager)).filter(filter).all()
if vars:
return vars
elif groupIDs:
itemfilter = or_(*(groups_table.c.groupID == groupID for groupID in groupIDs))
filter = processWhere(itemfilter, where)
joinon = items_table.c.groupID == groups_table.c.groupID
vars = get_gamedata_session().query(Item).options(*processEager(eager)).join((groups_table, joinon)).filter(
filter).all()
return vars
@cachedQuery(1, "attr")
def getAttributeInfo(attr, eager=None):
if isinstance(attr, basestring):
if isinstance(attr, str):
filter = AttributeInfo.name == attr
elif isinstance(attr, int):
filter = AttributeInfo.ID == attr
else:
raise TypeError("Need integer or string as argument")
try:
result = gamedata_session.query(AttributeInfo).options(*processEager(eager)).filter(filter).one()
result = get_gamedata_session().query(AttributeInfo).options(*processEager(eager)).filter(filter).one()
except exc.NoResultFound:
result = None
return result
@@ -264,8 +414,8 @@ def getAttributeInfo(attr, eager=None):
@cachedQuery(1, "field")
def getMetaData(field):
if isinstance(field, basestring):
data = gamedata_session.query(MetaData).get(field)
if isinstance(field, str):
data = get_gamedata_session().query(MetaData).get(field)
else:
raise TypeError("Need string as argument")
return data
@@ -280,9 +430,34 @@ def directAttributeRequest(itemIDs, attrIDs):
if not isinstance(itemID, int):
raise TypeError("All itemIDs must be integer")
q = select((eos.types.Item.typeID, eos.types.Attribute.attributeID, eos.types.Attribute.value),
and_(eos.types.Attribute.attributeID.in_(attrIDs), eos.types.Item.typeID.in_(itemIDs)),
from_obj=[join(eos.types.Attribute, eos.types.Item)])
q = select((Item.typeID, Attribute.attributeID, Attribute.value),
and_(Attribute.attributeID.in_(attrIDs), Item.typeID.in_(itemIDs)),
from_obj=[join(Attribute, Item)])
result = gamedata_session.execute(q).fetchall()
result = get_gamedata_session().execute(q).fetchall()
return result
def getAbyssalTypes():
return set([r.resultingTypeID for r in get_gamedata_session().query(DynamicItem.resultingTypeID).distinct()])
@cachedQuery(1, "itemID")
def getDynamicItem(itemID, eager=None):
try:
if isinstance(itemID, int):
if eager is None:
result = get_gamedata_session().query(DynamicItem).filter(DynamicItem.ID == itemID).one()
else:
result = get_gamedata_session().query(DynamicItem).options(*processEager(eager)).filter(DynamicItem.ID == itemID).one()
else:
raise TypeError("Need integer as argument")
except exc.NoResultFound:
result = None
return result
@cachedQuery(1, "lookfor")
def getAllImplantSets():
implantSets = get_gamedata_session().query(ImplantSet).all()
return implantSets

View File

@@ -1,11 +1,21 @@
from sqlalchemy import Column, Table, Integer, String, ForeignKey
from sqlalchemy.orm import mapper
from sqlalchemy.orm import mapper, synonym
from eos.db import gamedata_meta
from eos.types import Traits
from eos.gamedata import Traits
import eos.config
traits_table = Table("invtraits", gamedata_meta,
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True),
Column("traitText", String))
traits_table = Table(
"invtraits",
gamedata_meta,
Column("typeID", Integer, ForeignKey("invtypes.typeID"), primary_key=True),
*[Column("traitText{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
)
mapper(Traits, traits_table)
mapper(
Traits,
traits_table,
properties={
"display": synonym("traitText{}".format(eos.config.lang)),
}
)

View File

@@ -21,13 +21,17 @@ from sqlalchemy import Column, Table, Integer, String
from sqlalchemy.orm import mapper, synonym
from eos.db import gamedata_meta
from eos.types import Unit
from eos.gamedata import Unit
import eos.config
groups_table = Table("dgmunits", gamedata_meta,
Column("unitID", Integer, primary_key=True),
Column("unitName", String),
Column("displayName", String))
*[Column("displayName{}".format(lang), String) for lang in eos.config.translation_mapping.values()],
)
mapper(Unit, groups_table,
properties={"ID": synonym("unitID"),
"name": synonym("unitName")})
properties={
"ID" : synonym("unitID"),
"name": synonym("unitName")
})

View File

@@ -1,11 +1,11 @@
import logging
from logbook import Logger
import shutil
import time
import config
import migrations
from . import migrations
logger = logging.getLogger(__name__)
pyfalog = Logger(__name__)
def getVersion(db):
@@ -34,10 +34,10 @@ def update(saveddata_engine):
shutil.copyfile(config.saveDB, toFile)
for version in xrange(dbVersion, appVersion):
for version in range(dbVersion, appVersion):
func = migrations.updates[version + 1]
if func:
logger.info("Applying database update: %d", version + 1)
pyfalog.info("Applying database update: {0}", version + 1)
func(saveddata_engine)
# when all is said and done, set version to current

View File

@@ -8,23 +8,25 @@ many upgrade files as there are database versions (version 5 would include
upgrade files 1-5)
"""
import pkgutil
import re
from eos.utils.pyinst_support import iterNamespace
updates = {}
appVersion = 0
prefix = __name__ + "."
for importer, modname, ispkg in pkgutil.iter_modules(__path__, prefix):
for modName in iterNamespace(__name__, __path__):
# loop through python files, extracting update number and function, and
# adding it to a list
modname_tail = modname.rsplit('.', 1)[-1]
module = __import__(modname, fromlist=True)
m = re.match("^upgrade(?P<index>\d+)$", modname_tail)
modname_tail = modName.rsplit('.', 1)[-1]
m = re.match(r"^upgrade(?P<index>\d+)$", modname_tail)
if not m:
continue
index = int(m.group("index"))
appVersion = max(appVersion, index)
module = __import__(modName, fromlist=True)
upgrade = getattr(module, "upgrade", False)
if upgrade:
updates[index] = upgrade

View File

@@ -7,57 +7,57 @@ Migration 1
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/
Based on https://www.eveonline.com/news/view/patch-notes-for-oceanus
and output of itemDiff.py
"""
import sqlalchemy
CONVERSIONS = {
6135: [ # Scoped Cargo Scanner
6135 : [ # Scoped Cargo Scanner
6133, # Interior Type-E Cargo Identifier
],
6527: [ # Compact Ship Scanner
6527 : [ # Compact Ship Scanner
6525, # Ta3 Perfunctory Vessel Probe
6529, # Speculative Ship Identifier I
6531, # Practical Type-E Ship Probe
],
6569: [ # Scoped Survey Scanner
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
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
8135 : [ # Restrained Capacitor Flux Coil
8131, # Local Power Plant Manager: Capacitor Flux I
],
8133: [ # Compact Capacitor Flux Coil
8133 : [ # Compact Capacitor Flux Coil
8137, # Mark I Generator Refitting: Capacitor Flux
],
3469: [ # Basic Co-Processor
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)
# anyway as some fits may include it)
],
8748: [ # Upgraded Co-Processor
8748 : [ # Upgraded Co-Processor
8747, # Nanomechanical CPU Enhancer I
8750, # Quantum Co-Processor I
8749, # Photonic CPU Enhancer I
],
1351: [ # Basic Reactor Control Unit
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
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
@@ -69,19 +69,20 @@ CONVERSIONS = {
31936: [ # Navy Micro Auxiliary Power Core
16543, # Micro 'Vigor' Core Augmentation
],
8089: [ # Compact Light Missile Launcher
8093, # Prototype 'Arbalest' Light Missile Launcher
8089 : [ # Compact Light Missile Launcher
8093, # Prototype 'Arbalest' Light Missile Launcher
],
8091: [ # Ample 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
442 : [ # Cargo Scanner I
6129, # Surface Cargo Scanner I
]
}
def upgrade(saveddata_engine):
# Update fits schema to include target resists attribute
try:
@@ -90,8 +91,9 @@ def upgrade(saveddata_engine):
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN targetResistsID INTEGER;")
# Convert modules
for replacement_item, list in CONVERSIONS.iteritems():
for replacement_item, list in CONVERSIONS.items():
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))
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

@@ -6,6 +6,7 @@ Migration 10
import sqlalchemy
def upgrade(saveddata_engine):
# Update projectedFits schema to include active attribute
try:

View File

@@ -7,7 +7,6 @@ Migration 11
modules with their new replacements
"""
CONVERSIONS = {
16467: ( # Medium Gremlin Compact Energy Neutralizer
16471, # Medium Unstable Power Fluctuator I
@@ -15,7 +14,7 @@ CONVERSIONS = {
22947: ( # 'Beatnik' Small Remote Armor Repairer
23414, # 'Brotherhood' Small Remote Armor Repairer
),
8295: ( # Type-D Restrained Shield Flux Coil
8295 : ( # Type-D Restrained Shield Flux Coil
8293, # Beta Reactor Control: Shield Flux I
),
16499: ( # Heavy Knave Scoped Energy Nosferatu
@@ -30,13 +29,13 @@ CONVERSIONS = {
16447: ( # Medium Solace Scoped Remote Armor Repairer
16445, # Medium 'Arup' Remote Armor Repairer
),
508: ( # 'Basic' Shield Flux Coil
508 : ( # 'Basic' Shield Flux Coil
8325, # Alpha Reactor Shield Flux
8329, # Marked Generator Refitting: Shield Flux
8323, # Partial Power Plant Manager: Shield Flux
8327, # Type-E Power Core Modification: Shield Flux
),
1419: ( # 'Basic' Shield Power Relay
1419 : ( # 'Basic' Shield Power Relay
8341, # Alpha Reactor Shield Power Relay
8345, # Marked Generator Refitting: Shield Power Relay
8339, # Partial Power Plant Manager: Shield Power Relay
@@ -48,57 +47,57 @@ CONVERSIONS = {
16505: ( # Medium Ghoul Compact Energy Nosferatu
16511, # Medium Diminishing Power System Drain I
),
8297: ( # Mark I Compact Shield Flux Coil
8297 : ( # Mark I Compact Shield Flux Coil
8291, # Local Power Plant Manager: Reaction Shield Flux I
),
16455: ( # Large Solace Scoped Remote Armor Repairer
16453, # Large 'Arup' Remote Armor Repairer
),
6485: ( # M51 Benefactor Compact Shield Recharger
6485 : ( # M51 Benefactor Compact Shield Recharger
6491, # Passive Barrier Compensator I
6489, # 'Benefactor' Ward Reconstructor
6487, # Supplemental Screen Generator I
),
5137: ( # Small Knave Scoped Energy Nosferatu
5137 : ( # Small Knave Scoped Energy Nosferatu
5135, # E5 Prototype Energy Vampire
),
8579: ( # Medium Murky Compact Remote Shield Booster
8579 : ( # Medium Murky Compact Remote Shield Booster
8581, # Medium 'Atonement' Remote Shield Booster
),
8531: ( # Small Murky Compact Remote Shield Booster
8531 : ( # Small Murky Compact Remote Shield Booster
8533, # Small 'Atonement' Remote Shield Booster
),
16497: ( # Heavy Ghoul Compact Energy Nosferatu
16503, # Heavy Diminishing Power System Drain I
),
4477: ( # Small Gremlin Compact Energy Neutralizer
4477 : ( # Small Gremlin Compact Energy Neutralizer
4475, # Small Unstable Power Fluctuator I
),
8337: ( # Mark I Compact Shield Power Relay
8337 : ( # Mark I Compact Shield Power Relay
8331, # Local Power Plant Manager: Reaction Shield Power Relay I
),
23416: ( # 'Peace' Large Remote Armor Repairer
22951, # 'Pacifier' Large Remote Armor Repairer
),
5141: ( # Small Ghoul Compact Energy Nosferatu
5141 : ( # Small Ghoul Compact Energy Nosferatu
5139, # Small Diminishing Power System Drain I
),
4471: ( # Small Infectious Scoped Energy Neutralizer
4471 : ( # Small Infectious Scoped Energy Neutralizer
4473, # Small Rudimentary Energy Destabilizer I
),
16469: ( # Medium Infectious Scoped Energy Neutralizer
16465, # Medium Rudimentary Energy Destabilizer I
),
8335: ( # Type-D Restrained Shield Power Relay
8335 : ( # Type-D Restrained Shield Power Relay
8333, # Beta Reactor Control: Shield Power Relay I
),
405: ( # 'Micro' Remote Shield Booster
405 : ( # 'Micro' Remote Shield Booster
8631, # Micro Asymmetric Remote Shield Booster
8627, # Micro Murky Remote Shield Booster
8629, # Micro 'Atonement' Remote Shield Booster
8633, # Micro S95a Remote Shield Booster
),
8635: ( # Large Murky Compact Remote Shield Booster
8635 : ( # Large Murky Compact Remote Shield Booster
8637, # Large 'Atonement' Remote Shield Booster
),
16507: ( # Medium Knave Scoped Energy Nosferatu
@@ -106,11 +105,12 @@ CONVERSIONS = {
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.iteritems():
for replacement_item, list in CONVERSIONS.items():
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))
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

@@ -7,33 +7,32 @@ Migration 12
modules with their new replacements
"""
CONVERSIONS = {
16457: ( # Crosslink Compact Ballistic Control System
16459, # Muon Coil Bolt Array I
16461, # Multiphasic Bolt Array I
16463, # 'Pandemonium' Ballistic Enhancement
),
5281: ( # Coadjunct Scoped Remote Sensor Booster
5281 : ( # Coadjunct Scoped Remote Sensor Booster
7218, # Piercing ECCM Emitter I
),
5365: ( # Cetus Scoped Burst Jammer
5365 : ( # Cetus Scoped Burst Jammer
5359, # 1Z-3 Subversive ECM Eruption
),
1973: ( # Sensor Booster I
1973 : ( # Sensor Booster I
1947, # ECCM - Radar I
2002, # ECCM - Ladar I
2003, # ECCM - Magnetometric I
2004, # ECCM - Gravimetric I
2005, # ECCM - Omni I
),
1951: ( # 'Basic' Tracking Enhancer
1951 : ( # 'Basic' Tracking Enhancer
6322, # Beta-Nought Tracking Mode
6323, # Azimuth Descalloping Tracking Enhancer
6324, # F-AQ Delay-Line Scan Tracking Subroutines
6321, # Beam Parallax Tracking Program
),
521: ( # 'Basic' Damage Control
521 : ( # 'Basic' Damage Control
5829, # GLFF Containment Field
5831, # Interior Force Field Array
5835, # F84 Local Damage System
@@ -43,13 +42,13 @@ CONVERSIONS = {
22939, # 'Boss' Remote Sensor Booster
22941, # 'Entrepreneur' Remote Sensor Booster
),
5443: ( # Faint Epsilon Scoped Warp Scrambler
5443 : ( # Faint Epsilon Scoped Warp Scrambler
5441, # Fleeting Progressive Warp Scrambler I
),
1963: ( # Remote Sensor Booster I
1963 : ( # Remote Sensor Booster I
1959, # ECCM Projector I
),
6325: ( # Fourier Compact Tracking Enhancer
6325 : ( # Fourier Compact Tracking Enhancer
6326, # Sigma-Nought Tracking Mode I
6327, # Auto-Gain Control Tracking Enhancer I
6328, # F-aQ Phase Code Tracking Subroutines
@@ -69,19 +68,19 @@ CONVERSIONS = {
22919: ( # 'Monopoly' Magnetic Field Stabilizer
22917, # 'Capitalist' Magnetic Field Stabilizer I
),
5839: ( # IFFA Compact Damage Control
5839 : ( # IFFA Compact Damage Control
5841, # Emergency Damage Control I
5843, # F85 Peripheral Damage System I
5837, # Pseudoelectron Containment Field I
),
522: ( # 'Micro' Cap Battery
522 : ( # 'Micro' Cap Battery
4747, # Micro Ld-Acid Capacitor Battery I
4751, # Micro Ohm Capacitor Reserve I
4745, # Micro F-4a Ld-Sulfate Capacitor Charge Unit
4749, # Micro Peroxide Capacitor Power Cell
3480, # Micro Capacitor Battery II
),
518: ( # 'Basic' Gyrostabilizer
518 : ( # 'Basic' Gyrostabilizer
5915, # Lateral Gyrostabilizer
5919, # F-M2 Weapon Inertial Suspensor
5913, # Hydraulic Stabilization Actuator
@@ -90,19 +89,19 @@ CONVERSIONS = {
19931: ( # Compulsive Scoped Multispectral ECM
19933, # 'Hypnos' Multispectral ECM I
),
5403: ( # Faint Scoped Warp Disruptor
5403 : ( # Faint Scoped Warp Disruptor
5401, # Fleeting Warp Disruptor I
),
23902: ( # 'Trebuchet' Heat Sink I
23900, # 'Mangonel' Heat Sink I
),
1893: ( # 'Basic' Heat Sink
1893 : ( # 'Basic' Heat Sink
5845, # Heat Exhaust System
5856, # C3S Convection Thermal Radiator
5855, # 'Boreas' Coolant System
5854, # Stamped Heat Sink
),
6160: ( # F-90 Compact Sensor Booster
6160 : ( # F-90 Compact Sensor Booster
20214, # Extra Radar ECCM Scanning Array I
20220, # Extra Ladar ECCM Scanning Array I
20226, # Extra Gravimetric ECCM Scanning Array I
@@ -124,40 +123,40 @@ CONVERSIONS = {
19952: ( # Umbra Scoped Radar ECM
9520, # 'Penumbra' White Noise ECM
),
1952: ( # Sensor Booster II
1952 : ( # Sensor Booster II
2258, # ECCM - Omni II
2259, # ECCM - Gravimetric II
2260, # ECCM - Ladar II
2261, # ECCM - Magnetometric II
2262, # ECCM - Radar II
),
5282: ( # Linked Enduring Sensor Booster
5282 : ( # Linked Enduring Sensor Booster
7219, # Scattering ECCM Projector I
),
1986: ( # Signal Amplifier I
1986 : ( # Signal Amplifier I
2579, # Gravimetric Backup Array I
2583, # Ladar Backup Array I
2587, # Magnetometric Backup Array I
2591, # Multi Sensor Backup Array I
4013, # RADAR Backup Array I
),
4871: ( # Large Compact Pb-Acid Cap Battery
4871 : ( # Large Compact Pb-Acid Cap Battery
4875, # Large Ohm Capacitor Reserve I
4869, # Large F-4a Ld-Sulfate Capacitor Charge Unit
4873, # Large Peroxide Capacitor Power Cell
),
1964: ( # Remote Sensor Booster II
1964 : ( # Remote Sensor Booster II
1960, # ECCM Projector II
),
5933: ( # Counterbalanced Compact Gyrostabilizer
5933 : ( # Counterbalanced Compact Gyrostabilizer
5931, # Cross-Lateral Gyrostabilizer I
5935, # F-M3 Munition Inertial Suspensor
5929, # Pneumatic Stabilization Actuator I
),
4025: ( # X5 Enduring Stasis Webifier
4025 : ( # X5 Enduring Stasis Webifier
4029, # 'Langour' Drive Disruptor I
),
4027: ( # Fleeting Compact Stasis Webifier
4027 : ( # Fleeting Compact Stasis Webifier
4031, # Patterned Stasis Web I
),
22937: ( # 'Enterprise' Remote Tracking Computer
@@ -166,7 +165,7 @@ CONVERSIONS = {
22929: ( # 'Marketeer' Tracking Computer
22927, # 'Economist' Tracking Computer I
),
1987: ( # Signal Amplifier II
1987 : ( # Signal Amplifier II
2580, # Gravimetric Backup Array II
2584, # Ladar Backup Array II
2588, # Magnetometric Backup Array II
@@ -176,13 +175,13 @@ CONVERSIONS = {
19939: ( # Enfeebling Scoped Ladar ECM
9522, # Faint Phase Inversion ECM I
),
5340: ( # P-S Compact Remote Tracking Computer
5340 : ( # P-S Compact Remote Tracking Computer
5341, # 'Prayer' Remote Tracking Computer
),
19814: ( # Phased Scoped Target Painter
19808, # Partial Weapon Navigation
),
1949: ( # 'Basic' Signal Amplifier
1949 : ( # 'Basic' Signal Amplifier
1946, # Basic RADAR Backup Array
1982, # Basic Ladar Backup Array
1983, # Basic Gravimetric Backup Array
@@ -223,10 +222,10 @@ CONVERSIONS = {
23416: ( # 'Peace' Large Remote Armor Repairer
None, # 'Pacifier' Large Remote Armor Repairer
),
6176: ( # F-12 Enduring Tracking Computer
6176 : ( # F-12 Enduring Tracking Computer
6174, # Monopulse Tracking Mechanism I
),
6159: ( # Alumel-Wired Enduring Sensor Booster
6159 : ( # Alumel-Wired Enduring Sensor Booster
7917, # Alumel Radar ECCM Sensor Array I
7918, # Alumel Ladar ECCM Sensor Array I
7922, # Alumel Gravimetric ECCM Sensor Array I
@@ -248,7 +247,7 @@ CONVERSIONS = {
7914, # Prototype ECCM Magnetometric Sensor Cluster
6158, # Prototype Sensor Booster
),
5849: ( # Extruded Compact Heat Sink
5849 : ( # Extruded Compact Heat Sink
5846, # Thermal Exhaust System I
5858, # C4S Coiled Circuit Thermal Radiator
5857, # 'Skadi' Coolant System I
@@ -264,15 +263,15 @@ CONVERSIONS = {
22945: ( # 'Executive' Remote Sensor Dampener
22943, # 'Broker' Remote Sensor Dampener I
),
6173: ( # Optical Compact Tracking Computer
6173 : ( # Optical Compact Tracking Computer
6175, # 'Orion' Tracking CPU I
),
5279: ( # F-23 Compact Remote Sensor Booster
5279 : ( # F-23 Compact Remote Sensor Booster
7217, # Spot Pulsing ECCM I
7220, # Phased Muon ECCM Caster I
5280, # Connected Remote Sensor Booster
),
4787: ( # Small Compact Pb-Acid Cap Battery
4787 : ( # Small Compact Pb-Acid Cap Battery
4791, # Small Ohm Capacitor Reserve I
4785, # Small F-4a Ld-Sulfate Capacitor Charge Unit
4789, # Small Peroxide Capacitor Power Cell
@@ -280,7 +279,7 @@ CONVERSIONS = {
19946: ( # BZ-5 Scoped Gravimetric ECM
9519, # FZ-3 Subversive Spatial Destabilizer ECM
),
6073: ( # Medium Compact Pb-Acid Cap Battery
6073 : ( # Medium Compact Pb-Acid Cap Battery
6097, # Medium Ohm Capacitor Reserve I
6111, # Medium F-4a Ld-Sulfate Capacitor Charge Unit
6083, # Medium Peroxide Capacitor Power Cell
@@ -288,7 +287,7 @@ CONVERSIONS = {
21484: ( # 'Full Duplex' Ballistic Control System
21482, # Ballistic 'Purge' Targeting System I
),
6296: ( # F-89 Compact Signal Amplifier
6296 : ( # F-89 Compact Signal Amplifier
6218, # Protected Gravimetric Backup Cluster I
6222, # Protected Ladar Backup Cluster I
6226, # Protected Magnetometric Backup Cluster I
@@ -325,16 +324,17 @@ CONVERSIONS = {
6293, # Wavelength Signal Enhancer I
6295, # Type-D Attenuation Signal Augmentation
),
5302: ( # Phased Muon Scoped Sensor Dampener
5302 : ( # Phased Muon Scoped Sensor Dampener
5300, # Indirect Scanning Dampening Unit I
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.iteritems():
for replacement_item, list in CONVERSIONS.items():
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))
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

@@ -6,10 +6,11 @@ Migration 13
import sqlalchemy
def upgrade(saveddata_engine):
# Update fits schema to include implant location attribute
try:
saveddata_engine.execute("SELECT implantLocation FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN implantLocation INTEGER;")
saveddata_engine.execute("UPDATE fits SET implantLocation = 0")
saveddata_engine.execute("UPDATE fits SET implantLocation = 0")

View File

@@ -6,8 +6,10 @@ Migration 14
import sqlalchemy
def upgrade(saveddata_engine):
if saveddata_engine.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='fighters'").scalar() == 'fighters':
if saveddata_engine.execute(
"SELECT name FROM sqlite_master WHERE type='table' AND name='fighters'").scalar() == 'fighters':
# Fighters table exists
try:
saveddata_engine.execute("SELECT active FROM fighters LIMIT 1")
@@ -16,4 +18,4 @@ def upgrade(saveddata_engine):
# (they will be recreated)
saveddata_engine.execute("DROP TABLE fighters")
saveddata_engine.execute("DROP TABLE fightersAbilities")
saveddata_engine.execute("DROP TABLE fightersAbilities")

View File

@@ -4,10 +4,8 @@ Migration 15
- Delete projected modules on citadels
"""
import sqlalchemy
def upgrade(saveddata_engine):
sql = """
DELETE FROM modules WHERE ID IN
(

View File

@@ -6,6 +6,7 @@ Migration 16
import sqlalchemy
def upgrade(saveddata_engine):
# Update fits schema to include notes attribute
try:

View File

@@ -4,8 +4,6 @@ Migration 17
- Moves all fleet boosters to the new schema
"""
import sqlalchemy
def upgrade(saveddata_engine):
from eos.db import saveddata_session
@@ -18,22 +16,31 @@ def upgrade(saveddata_engine):
JOIN wings w on w.ID = s.wingID
JOIN gangs g on g.ID = w.gangID
"""
try:
results = saveddata_session.execute(sql)
results = saveddata_session.execute(sql)
inserts = []
inserts = []
for row in results:
boosted = row["boostedFit"]
types = ("squad", "wing", "gang")
for x in types:
value = row["{}Boost".format(x)]
if value is None:
continue
for row in results:
boosted = row["boostedFit"]
types = ("squad", "wing", "gang")
for x in types:
value = row["{}Boost".format(x)]
if value is None:
continue
inserts.append({"boosterID": value, "boostedID": boosted, "active": 1})
try:
saveddata_session.execute(commandFits_table.insert(), {"boosterID": value, "boostedID": boosted, "active": 1})
except Exception, e:
pass
saveddata_session.commit()
inserts.append({"boosterID": value, "boostedID": boosted, "active": 1})
try:
saveddata_session.execute(commandFits_table.insert(),
{"boosterID": value, "boostedID": boosted, "active": 1})
except (KeyboardInterrupt, SystemExit):
raise
except Exception:
pass
saveddata_session.commit()
except (KeyboardInterrupt, SystemExit):
raise
except:
# Shouldn't fail unless you have updated database without the old fleet schema and manually modify the database version
# If it does, simply fail. Fleet data migration isn't critically important here
pass

View File

@@ -4,27 +4,26 @@ Migration 8
- Converts modules from old Warfare Links to Command Modules
"""
CONVERSIONS = {
42526: ( # Armor Command Burst I
20069, # Armored Warfare Link - Damage Control I
20409, # Armored Warfare Link - Passive Defense I
22227, # Armored Warfare Link - Rapid Repair I
20069, # Armored Warfare Link - Damage Control I
20409, # Armored Warfare Link - Passive Defense I
22227, # Armored Warfare Link - Rapid Repair I
),
43552: ( # Armor Command Burst II
4264, # Armored Warfare Link - Damage Control II
4266, # Armored Warfare Link - Passive Defense II
4266, # Armored Warfare Link - Rapid Repair II
4264, # Armored Warfare Link - Damage Control II
4266, # Armored Warfare Link - Passive Defense II
4266, # Armored Warfare Link - Rapid Repair II
),
42527: ( # Information Command Burst I
11052, # Information Warfare Link - Sensor Integrity I
20405, # Information Warfare Link - Recon Operation I
20406, # Information Warfare Link - Electronic Superiority I
11052, # Information Warfare Link - Sensor Integrity I
20405, # Information Warfare Link - Recon Operation I
20406, # Information Warfare Link - Electronic Superiority I
),
43554: ( # Information Command Burst II
4268, # Information Warfare Link - Electronic Superiority II
4270, # Information Warfare Link - Recon Operation II
4272, # Information Warfare Link - Sensor Integrity II
4268, # Information Warfare Link - Electronic Superiority II
4270, # Information Warfare Link - Recon Operation II
4272, # Information Warfare Link - Sensor Integrity II
),
42529: ( # Shield Command Burst I
20124, # Siege Warfare Link - Active Shielding I
@@ -34,17 +33,17 @@ CONVERSIONS = {
43555: ( # Shield Command Burst II
4280, # Siege Warfare Link - Active Shielding II
4282, # Siege Warfare Link - Shield Efficiency II
4284 # Siege Warfare Link - Shield Harmonizing II
4284 # Siege Warfare Link - Shield Harmonizing II
),
42530: ( # Skirmish Command Burst I
11017, # Skirmish Warfare Link - Interdiction Maneuvers I
20070, # Skirmish Warfare Link - Evasive Maneuvers I
20408, # Skirmish Warfare Link - Rapid Deployment I
11017, # Skirmish Warfare Link - Interdiction Maneuvers I
20070, # Skirmish Warfare Link - Evasive Maneuvers I
20408, # Skirmish Warfare Link - Rapid Deployment I
),
43556: ( # Skirmish Command Burst II
4286, # Skirmish Warfare Link - Evasive Maneuvers II
4288, # Skirmish Warfare Link - Interdiction Maneuvers II
4290 # Skirmish Warfare Link - Rapid Deployment II
4290 # Skirmish Warfare Link - Rapid Deployment II
),
42528: ( # Mining Foreman Burst I
22553, # Mining Foreman Link - Harvester Capacitor Efficiency I
@@ -54,15 +53,16 @@ CONVERSIONS = {
43551: ( # Mining Foreman Burst II
4274, # Mining Foreman Link - Harvester Capacitor Efficiency II
4276, # Mining Foreman Link - Laser Optimization II
4278 # Mining Foreman Link - Mining Laser Field Enhancement II
4278 # Mining Foreman Link - Mining Laser Field Enhancement II
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.iteritems():
for replacement_item, list in CONVERSIONS.items():
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))
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

@@ -4,17 +4,15 @@ Migration 19
- Deletes broken references to fits from the commandFits table (see GH issue #844)
"""
import sqlalchemy
def upgrade(saveddata_engine):
from eos.db import saveddata_session
sql = """
DELETE FROM commandFits
WHERE boosterID NOT IN (select ID from fits)
OR boostedID NOT IN (select ID from fits)
"""
DELETE FROM commandFits
WHERE boosterID NOT IN (select ID from fits)
OR boostedID NOT IN (select ID from fits)
"""
saveddata_session.execute(sql)
saveddata_session.commit()

View File

@@ -6,6 +6,7 @@ Migration 2
import sqlalchemy
def upgrade(saveddata_engine):
# Update characters schema to include default chars
try:

View File

@@ -0,0 +1,15 @@
"""
Migration 20
- Adds support for alpha clones to the characters table
"""
import sqlalchemy
def upgrade(saveddata_engine):
# Update characters schema to include alphaCloneID
try:
saveddata_engine.execute("SELECT alphaCloneID FROM characters LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN alphaCloneID INTEGER;")

View File

@@ -0,0 +1,10 @@
"""
Migration 21
- Fixes discrepancy in drone table where we may have an amount active that is not equal to the amount in the stack
(we don't support activating only 2/5 drones). See GH issue #728
"""
def upgrade(saveddata_engine):
saveddata_engine.execute("UPDATE drones SET amountActive = amount where amountActive > 0 AND amountActive <> amount;")

View File

@@ -0,0 +1,45 @@
"""
Migration 22
- Adds the created and modified fields to most tables
"""
import sqlalchemy
def upgrade(saveddata_engine):
# 1 = created only
# 2 = created and modified
tables = {
"boosters": 2,
"cargo": 2,
"characters": 2,
# "crest": 1,
"damagePatterns": 2,
"drones": 2,
"fighters": 2,
"fits": 2,
"projectedFits": 2,
"commandFits": 2,
"implants": 2,
"implantSets": 2,
"modules": 2,
"overrides": 2,
"characterSkills": 2,
"targetResists": 2
}
for table in list(tables.keys()):
# midnight brain, there's probably a much more simple way to do this, but fuck it
if tables[table] > 0:
try:
saveddata_engine.execute("SELECT created FROM {0} LIMIT 1;".format(table))
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE {} ADD COLUMN created DATETIME;".format(table))
if tables[table] > 1:
try:
saveddata_engine.execute("SELECT modified FROM {0} LIMIT 1;".format(table))
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE {} ADD COLUMN modified DATETIME;".format(table))

View File

@@ -0,0 +1,13 @@
"""
Migration 23
- Adds a sec status field to the character table
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT secStatus FROM characters LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE characters ADD COLUMN secStatus FLOAT;")

View File

@@ -0,0 +1,14 @@
"""
Migration 24
- Adds a boolean value to fit to signify if fit should ignore restrictions
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT ignoreRestrictions FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN ignoreRestrictions BOOLEAN")
saveddata_engine.execute("UPDATE fits SET ignoreRestrictions = 0")

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,9 @@
"""
Migration 26
- Deletes invalid command fit relationships caused by a bug (see #1244)
"""
def upgrade(saveddata_engine):
saveddata_engine.execute("DELETE FROM commandFits WHERE boosterID NOT IN (SELECT ID FROM fits) OR boostedID NOT IN (SELECT ID FROM fits)")

View File

@@ -0,0 +1,9 @@
"""
Migration 27
- Resets all alpha clones to 1 (CCP consolidated all alpha's into one skillset)
"""
def upgrade(saveddata_engine):
saveddata_engine.execute("UPDATE characters SET alphaCloneID = 1 WHERE alphaCloneID IS NOT NULL")

View File

@@ -0,0 +1,18 @@
"""
Migration 28
- adds baseItemID and mutaplasmidID to modules table
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT baseItemID FROM modules LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE modules ADD COLUMN baseItemID INT;")
try:
saveddata_engine.execute("SELECT mutaplasmidID FROM modules LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE modules ADD COLUMN mutaplasmidID INT;")

View File

@@ -0,0 +1,18 @@
"""
Migration 29
- adds spoolType and spoolAmount to modules table
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT spoolType FROM modules LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE modules ADD COLUMN spoolType INT;")
try:
saveddata_engine.execute("SELECT spoolAmount FROM modules LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE modules ADD COLUMN spoolAmount FLOAT;")

View File

@@ -6,6 +6,7 @@ Migration 3
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT modeID FROM fits LIMIT 1")

View File

@@ -0,0 +1,17 @@
"""
Migration 30
- changes to prices table
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT status FROM prices LIMIT 1")
except sqlalchemy.exc.DatabaseError:
# Just drop table, table will be re-created by sqlalchemy and
# data will be re-fetched
saveddata_engine.execute("DROP TABLE prices;")

View File

@@ -0,0 +1,15 @@
"""
Migration 31
- added fit system security column
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT systemSecurity FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN systemSecurity INT")

View File

@@ -0,0 +1,16 @@
"""
Migration 32
- added speed, sig and radius columns to targetResists table
"""
import sqlalchemy
def upgrade(saveddata_engine):
for column in ('maxVelocity', 'signatureRadius', 'radius'):
try:
saveddata_engine.execute("SELECT {} FROM targetResists LIMIT 1;".format(column))
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE targetResists ADD COLUMN {} FLOAT;".format(column))

View File

@@ -0,0 +1,30 @@
"""
Migration 33
Allow use of floats in damage pattern values
"""
tmpTable = """
CREATE TABLE "damagePatternsTemp" (
"ID" INTEGER NOT NULL,
"name" VARCHAR,
"emAmount" FLOAT,
"thermalAmount" FLOAT,
"kineticAmount" FLOAT,
"explosiveAmount" FLOAT,
"ownerID" INTEGER,
"created" DATETIME,
"modified" DATETIME,
PRIMARY KEY ("ID"),
FOREIGN KEY("ownerID") REFERENCES users ("ID")
)
"""
def upgrade(saveddata_engine):
saveddata_engine.execute(tmpTable)
saveddata_engine.execute(
'INSERT INTO damagePatternsTemp (ID, name, emAmount, thermalAmount, kineticAmount, explosiveAmount, ownerID, created, modified) '
'SELECT ID, name, emAmount, thermalAmount, kineticAmount, explosiveAmount, ownerID, created, modified FROM damagePatterns')
saveddata_engine.execute('DROP TABLE damagePatterns')
saveddata_engine.execute('ALTER TABLE damagePatternsTemp RENAME TO damagePatterns')

View File

@@ -0,0 +1,25 @@
"""
Migration 34
- Adds projection range columns to projectable entities
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT projectionRange FROM projectedFits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE projectedFits ADD COLUMN projectionRange FLOAT;")
try:
saveddata_engine.execute("SELECT projectionRange FROM modules LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE modules ADD COLUMN projectionRange FLOAT;")
try:
saveddata_engine.execute("SELECT projectionRange FROM drones LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE drones ADD COLUMN projectionRange FLOAT;")
try:
saveddata_engine.execute("SELECT projectionRange FROM fighters LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fighters ADD COLUMN projectionRange FLOAT;")

View File

@@ -0,0 +1,166 @@
"""
Migration 35
- Remove builtin damage patterns and target profiles from the database
"""
import sqlalchemy
dmgPatterns = (
'Uniform',
'[Bombs]Concussion Bomb',
'[Bombs]Electron Bomb',
'[Bombs]Scorch Bomb',
'[Bombs]Shrapnel Bomb',
'[Exotic Plasma]Baryon',
'[Exotic Plasma]Meson',
'[Exotic Plasma]Tetryon',
'[Exotic Plasma][T2] Mystic',
'[Exotic Plasma][T2] Occult',
'[Frequency Crystals]Gamma',
'[Frequency Crystals]Infrared',
'[Frequency Crystals]Microwave',
'[Frequency Crystals]Multifrequency',
'[Frequency Crystals]Radio',
'[Frequency Crystals]Standard',
'[Frequency Crystals]Ultraviolet',
'[Frequency Crystals]Xray',
'[Frequency Crystals][T2] Aurora',
'[Frequency Crystals][T2] Conflagration',
'[Frequency Crystals][T2] Gleam',
'[Frequency Crystals][T2] Scorch',
'[Generic]EM',
'[Generic]Explosive',
'[Generic]Kinetic',
'[Generic]Thermal',
'[Hybrid Charges]Antimatter',
'[Hybrid Charges]Iridium',
'[Hybrid Charges]Iron',
'[Hybrid Charges]Lead',
'[Hybrid Charges]Plutonium',
'[Hybrid Charges]Thorium',
'[Hybrid Charges]Tungsten',
'[Hybrid Charges]Uranium',
'[Hybrid Charges][T2] Javelin',
'[Hybrid Charges][T2] Null',
'[Hybrid Charges][T2] Spike',
'[Hybrid Charges][T2] Void',
'[Missiles]Inferno',
'[Missiles]Mjolnir',
'[Missiles]Nova',
'[Missiles]Scourge',
'[Missiles][Structure) Standup Missile',
'[Missiles][Structure] Standup Missile',
'[NPC][Asteroid] Angel Cartel',
'[NPC][Asteroid] Blood Raiders',
'[NPC][Asteroid] Guristas',
'[NPC][Asteroid] Rogue Drone',
'[NPC][Asteroid] Sanshas Nation',
'[NPC][Asteroid] Serpentis',
'[NPC][Burner] Ashimmu (Blood Raiders)',
'[NPC][Burner] Cruor (Blood Raiders)',
'[NPC][Burner] Daredevil (Serpentis)',
'[NPC][Burner] Dramiel (Angel)',
'[NPC][Burner] Enyo',
'[NPC][Burner] Hawk',
'[NPC][Burner] Jaguar',
'[NPC][Burner] Sentinel',
'[NPC][Burner] Succubus (Sanshas Nation)',
'[NPC][Burner] Talos',
'[NPC][Burner] Vengeance',
'[NPC][Burner] Worm (Guristas)',
'[NPC][Deadspace] Angel Cartel',
'[NPC][Deadspace] Blood Raiders',
'[NPC][Deadspace] Guristas',
'[NPC][Deadspace] Rogue Drone',
'[NPC][Deadspace] Sanshas Nation',
'[NPC][Deadspace] Serpentis',
'[NPC][Mission] Amarr Empire',
'[NPC][Mission] CONCORD',
'[NPC][Mission] Caldari State',
'[NPC][Mission] Gallente Federation',
'[NPC][Mission] Khanid',
'[NPC][Mission] Minmatar Republic',
'[NPC][Mission] Mordus Legion',
'[NPC][Mission] Thukker',
'[NPC][Other] Sansha Incursion',
'[NPC][Other] Sleepers',
'[Projectile Ammo]Carbonized Lead',
'[Projectile Ammo]Depleted Uranium',
'[Projectile Ammo]EMP',
'[Projectile Ammo]Fusion',
'[Projectile Ammo]Nuclear',
'[Projectile Ammo]Phased Plasma',
'[Projectile Ammo]Proton',
'[Projectile Ammo]Titanium Sabot',
'[Projectile Ammo][T2] Barrage',
'[Projectile Ammo][T2] Hail',
'[Projectile Ammo][T2] Quake',
'[Projectile Ammo][T2] Tremor')
tgtProfiles = (
'Uniform (25%)',
'Uniform (50%)',
'Uniform (75%)',
'Uniform (90%)',
'[NPC][Asteroid] Angel Cartel',
'[NPC][Asteroid] Blood Raiders',
'[NPC][Asteroid] Guristas',
'[NPC][Asteroid] Rogue Drones',
'[NPC][Asteroid] Sanshas Nation',
'[NPC][Asteroid] Serpentis',
'[NPC][Burner] Ashimmu (Blood Raiders)',
'[NPC][Burner] Cruor (Blood Raiders)',
'[NPC][Burner] Daredevil (Serpentis)',
'[NPC][Burner] Dramiel (Angel)',
'[NPC][Burner] Enyo',
'[NPC][Burner] Hawk',
'[NPC][Burner] Jaguar',
'[NPC][Burner] Sentinel',
'[NPC][Burner] Succubus (Sanshas Nation)',
'[NPC][Burner] Talos',
'[NPC][Burner] Vengeance',
'[NPC][Burner] Worm (Guristas)',
'[NPC][Deadspace] Angel Cartel',
'[NPC][Deadspace] Blood Raiders',
'[NPC][Deadspace] Guristas',
'[NPC][Deadspace] Rogue Drones',
'[NPC][Deadspace] Sanshas Nation',
'[NPC][Deadspace] Serpentis',
'[NPC][Mission] Amarr Empire',
'[NPC][Mission] CONCORD',
'[NPC][Mission] Caldari State',
'[NPC][Mission] Gallente Federation',
'[NPC][Mission] Khanid',
'[NPC][Mission] Minmatar Republic',
'[NPC][Mission] Mordus Legion',
'[NPC][Other] Sansha Incursion',
'[NPC][Other] Sleeper',
'[T1 Resist]Armor',
'[T1 Resist]Armor (+T2 DCU)',
'[T1 Resist]Hull',
'[T1 Resist]Hull (+T2 DCU)',
'[T1 Resist]Shield',
'[T1 Resist]Shield (+T2 DCU)',
'[T2 Resist]Amarr (Armor)',
'[T2 Resist]Amarr (Shield)',
'[T2 Resist]Caldari (Armor)',
'[T2 Resist]Caldari (Shield)',
'[T2 Resist]Gallente (Armor)',
'[T2 Resist]Gallente (Shield)',
'[T2 Resist]Minmatar (Armor)',
'[T2 Resist]Minmatar (Shield)')
def upgrade(saveddata_engine):
saveddata_engine.execute('DELETE FROM damagePatterns WHERE name in ({});'.format(', '.join('\'{}\''.format(n) for n in dmgPatterns)))
saveddata_engine.execute('DELETE FROM targetResists WHERE name in ({});'.format(', '.join('\'{}\''.format(n) for n in tgtProfiles)))
try:
saveddata_engine.execute("SELECT builtinDamagePatternID FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN builtinDamagePatternID INT;")
try:
saveddata_engine.execute("SELECT builtinTargetResistsID FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN builtinTargetResistsID INT;")

View File

@@ -0,0 +1,84 @@
"""
Migration 36
- Shield Booster, Armor Repairer and Capacitor Transfer tiericide
"""
CONVERSIONS = {
6441: ( # Small Clarity Ward Enduring Shield Booster
6443, # Small Converse Deflection Catalyzer
),
6437: ( # Small C5-L Compact Shield Booster
6439, # Small Neutron Saturation Injector I
),
10868: ( # Medium Clarity Ward Enduring Shield Booster
10870, # Medium Converse Deflection Catalyzer
),
10872: ( # Medium C5-L Compact Shield Booster
10866, # Medium Neutron Saturation Injector I
),
10876: ( # Large Clarity Ward Enduring Shield Booster
10878, # Large Converse Deflection Catalyzer
),
10880: ( # Large C5-L Compact Shield Booster
10874, # Large Neutron Saturation Injector I
),
10884: ( # X-Large Clarity Ward Enduring Shield Booster
10886, # X-Large Converse Deflection Catalyzer
),
10888: ( # X-Large C5-L Compact Shield Booster
10882, # X-Large Neutron Saturation Injector I
),
4533: ( # Small ACM Compact Armor Repairer
4531, # Small Inefficient Armor Repair Unit
),
4529: ( # Small I-a Enduring Armor Repairer
4535, # Small Automated Carapace Restoration
),
4573: ( # Medium ACM Compact Armor Repairer
4571, # Medium Inefficient Armor Repair Unit
),
4569: ( # Medium I-a Enduring Armor Repairer
4575, # Medium Automated Carapace Restoration
),
22889: ( # 'Meditation' Medium Armor Repairer I
4579, # Medium Nano Armor Repair Unit I
),
4613: ( # Large ACM Compact Armor Repairer
4611, # Large Inefficient Armor Repair Unit
),
4609: ( # Large I-a Enduring Armor Repairer
4615, # Large Automated Carapace Restoration
),
22891: ( # 'Protest' Large Armor Repairer I
4621, # Large 'Reprieve' Vestment Reconstructer I
),
5093: ( # Small Radiative Scoped Remote Capacitor Transmitter
5087, # Small Partial E95a Remote Capacitor Transmitter
),
5091: ( # Small Inductive Compact Remote Capacitor Transmitter
5089, # Small Murky Remote Capacitor Transmitter
),
16489: ( # Medium Radiative Scoped Remote Capacitor Transmitter
16493, # Medium Partial E95b Remote Capacitor Transmitter
),
16495: ( # Medium Inductive Compact Remote Capacitor Transmitter
16491, # Medium Murky Remote Capacitor Transmitter
),
16481: ( # Large Radiative Scoped Remote Capacitor Transmitter
16485, # Large Partial E95c Remote Capacitor Transmitter
),
16487: ( # Large Inductive Compact Remote Capacitor Transmitter
16483, # Large Murky Remote Capacitor Transmitter
)
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
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,44 @@
"""
Migration 37
- Capacitor Booster tiericide
"""
CONVERSIONS = {
4959: ( # 'Seed' Micro Capacitor Booster I
4957, # Micro Brief Capacitor Overcharge I
4961, # Micro Tapered Capacitor Infusion I
4955, # Micro F-RX Prototype Capacitor Boost
3556, # Micro Capacitor Booster I
3558, # Micro Capacitor Booster II
15774, # Ammatar Navy Micro Capacitor Booster
14180, # Dark Blood Micro Capacitor Booster
14182, # True Sansha Micro Capacitor Booster
15782, # Imperial Navy Micro Capacitor Booster
),
5011: ( # Small F-RX Compact Capacitor Booster
5009, # Small Brief Capacitor Overcharge I
5013, # Small Tapered Capacitor Infusion I
5007, # Small F-RX Prototype Capacitor Boost
),
4833: ( # Medium F-RX Compact Capacitor Booster
4831, # Medium Brief Capacitor Overcharge I
4835, # Medium Tapered Capacitor Infusion I
4829, # Medium F-RX Prototype Capacitor Boost
),
5051: ( # Heavy F-RX Compact Capacitor Booster
5049, # Heavy Brief Capacitor Overcharge I
5053, # Heavy Tapered Capacitor Infusion I
5047, # Heavy F-RX Prototype Capacitor Boost
)
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
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,42 @@
"""
Migration 38
- Armor hardener tiericide
"""
CONVERSIONS = {
16357: ( # Experimental Enduring EM Armor Hardener I
16353, # Upgraded Armor EM Hardener I
),
16365: ( # Experimental Enduring Explosive Armor Hardener I
16361, # Upgraded Armor Explosive Hardener I
),
16373: ( # Experimental Enduring Kinetic Armor Hardener I
16369, # Upgraded Armor Kinetic Hardener I
),
16381: ( # Experimental Enduring Thermal Armor Hardener I
16377, # Upgraded Armor Thermal Hardener I
),
16359: ( # Prototype Compact EM Armor Hardener I
16355, # Limited Armor EM Hardener I
),
16367: ( # Prototype Compact Explosive Armor Hardener I
16363, # Limited Armor Explosive Hardener I
),
16375: ( # Prototype Compact Kinetic Armor Hardener I
16371, # Limited Armor Kinetic Hardener I
),
16383: ( # Prototype Compact Thermal Armor Hardener I
16379, # Limited Armor Thermal Hardener I
)
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
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,34 @@
"""
Migration 39
- Shield amplifier tiericide
- CCP getting rid of DB TDs due to exploits
"""
CONVERSIONS = {
1798: ( # 'Basic' EM Shield Amplifier
9562, # Supplemental EM Ward Amplifier
),
1804: ( # 'Basic' Explosive Shield Amplifier
9574, # Supplemental Explosive Deflection Amplifier
),
1802: ( # 'Basic' Kinetic Shield Amplifier
9570, # Supplemental Kinetic Deflection Amplifier
),
1800: ( # 'Basic' Thermal Shield Amplifier
9566, # Supplemental Thermal Dissipation Amplifier
),
22933: ( # 'Investor' Tracking Disruptor I
32416, # Dark Blood Tracking Disruptor
)
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
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

@@ -6,70 +6,69 @@ Migration 4
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/
Based on https://www.eveonline.com/news/view/patch-notes-for-proteus
and output of itemDiff.py
"""
CONVERSIONS = {
506: ( # 'Basic' Capacitor Power Relay
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
8177 : ( # Mark I Compact Capacitor Power Relay
8173, # Beta Reactor Control: Capacitor Power Relay I
),
8175: ( # Type-D Restrained Capacitor Power Relay
8175 : ( # Type-D Restrained Capacitor Power Relay
8171, # Local Power Plant Manager: Capacity Power Relay I
),
421: ( # 'Basic' Capacitor Recharger
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
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
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
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
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
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
5239 : ( # EP-S Gaussian Scoped Mining Laser
5241, # Dual Diode Mining Laser I
),
5233: ( # Single Diode Basic Mining Laser
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
5245 : ( # Particle Bore Compact Mining Laser
5243, # XeCl Drilling Beam I
),
@@ -80,62 +79,63 @@ CONVERSIONS = {
22609, # Erin Mining Laser Upgrade
),
1242: ( # 'Basic' Nanofiber Internal Structure
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
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
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
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
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
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
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
5649 : ( # Mark I Compact Reinforced Bulkheads
5645, # Beta Hull Mod Reinforced Bulkheads
),
5647: ( # Type-D Restrained 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 replacement_item, list in CONVERSIONS.items():
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))
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,18 @@
"""
Migration 40
Imports all item conversions since Migration 28 and runs them against module.baseItemID. This column seems to have been
forgotten about since it's been added.
"""
from .upgrade36 import CONVERSIONS as u36
from .upgrade37 import CONVERSIONS as u37
from .upgrade38 import CONVERSIONS as u38
from .upgrade39 import CONVERSIONS as u39
def upgrade(saveddata_engine):
for conversions in [u36, u37, u38, u39]:
for replacement_item, list in conversions.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))

View File

@@ -0,0 +1,50 @@
"""
Migration 41
- Resistance plating tiericide
"""
CONVERSIONS = {
16345: ( # Upgraded Layered Coating I
16347, # Limited Layered Plating I
16349, # 'Scarab' Layered Plating I
16351, # 'Grail' Layered Plating I
),
16305: ( # Upgraded Multispectrum Coating I
16307, # Limited Adaptive Nano Plating I
16309, # 'Collateral' Adaptive Nano Plating I
16311, # 'Refuge' Adaptive Nano Plating I
),
16329: ( # Upgraded EM Coating I
16331, # Limited EM Plating I
16333, # 'Contour' EM Plating I
16335, # 'Spiegel' EM Plating I
),
16321: ( # Upgraded Explosive Coating I
16323, # Limited Explosive Plating I
16325, # Experimental Explosive Plating I
16319, # 'Aegis' Explosive Plating I
),
16313: ( # Upgraded Kinetic Coating I
16315, # Limited Kinetic Plating I
16317, # Experimental Kinetic Plating I
16327, # 'Element' Kinetic Plating I
),
16337: ( # Upgraded Thermal Coating I
16339, # Limited Thermal Plating I
16341, # Experimental Thermal Plating I
16343, # Prototype Thermal Plating I
)
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))

View File

@@ -0,0 +1,50 @@
"""
Migration 42
- Resistance membrane tiericide
"""
CONVERSIONS = {
16391: ( # Compact Multispectrum Energized Membrane
16389, # Experimental Energized Adaptive Nano Membrane I
16387, # Limited Energized Adaptive Nano Membrane I
16385, # Upgraded Energized Adaptive Nano Membrane I
),
16423: ( # Compact Layered Energized Membrane
16421, # Experimental Energized Armor Layering Membrane I
16419, # Limited Energized Armor Layering Membrane I
16417, # Upgraded Energized Armor Layering Membrane I
),
16415: ( # Compact EM Energized Membrane
16413, # Experimental Energized EM Membrane I
16411, # Limited Energized EM Membrane I
16409, # Upgraded Energized EM Membrane I
),
16407: ( # Compact Explosive Energized Membrane
16405, # Experimental Energized Explosive Membrane I
16403, # Limited Energized Explosive Membrane I
16401, # Upgraded Energized Explosive Membrane I
),
16399: ( # Compact Kinetic Energized Membrane
16397, # Experimental Energized Kinetic Membrane I
16395, # Limited Energized Kinetic Membrane I
16393, # Upgraded Energized Kinetic Membrane I
),
16431: ( # Compact Thermal Energized Membrane
16429, # Experimental Energized Thermal Membrane I
16427, # Limited Energized Thermal Membrane I
16425, # Upgraded Energized Thermal Membrane I
)
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))

View File

@@ -0,0 +1,26 @@
"""
Migration 43
- Shield booster amplifier tiericide
"""
CONVERSIONS = {
16533: ( # Stalwart Restrained Shield Boost Amplifier
16531, # 5a Prototype Shield Support I
),
16535: ( # Copasetic Compact Shield Boost Amplifier
16529, # Ionic Field Accelerator I
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))

View File

@@ -0,0 +1,25 @@
"""
Migration 44
- Signal distortion amplifier tiericide
"""
CONVERSIONS = {
25565: ( # Hypnos Compact Signal Distortion Amplifier I
25571, # Initiated Signal Distortion Amplifier I
25569, # Induced Signal Distortion Amplifier I
25567, # Compulsive Signal Distortion Amplifier I
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))

View File

@@ -0,0 +1,18 @@
"""
Migration 45
- Drone mutaplasmid support
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT baseItemID FROM drones LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE drones ADD COLUMN baseItemID INTEGER;")
try:
saveddata_engine.execute("SELECT mutaplasmidID FROM drones LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE drones ADD COLUMN mutaplasmidID INTEGER;")

View File

@@ -0,0 +1,68 @@
"""
Migration 46
- Mining crystal changes
"""
CONVERSIONS = {
60276: ( # Simple Asteroid Mining Crystal Type A I
18066, # Veldspar Mining Crystal I
18062, # Scordite Mining Crystal I
18060, # Pyroxeres Mining Crystal I
18058, # Plagioclase Mining Crystal I
),
60281: ( # Simple Asteroid Mining Crystal Type A II
18618, # Veldspar Mining Crystal II
18616, # Scordite Mining Crystal II
18614, # Pyroxeres Mining Crystal II
18612, # Plagioclase Mining Crystal II
),
60285: ( # Coherent Asteroid Mining Crystal Type A I
18056, # Omber Mining Crystal I
18052, # Kernite Mining Crystal I
18050, # Jaspet Mining Crystal I
18048, # Hemorphite Mining Crystal I
18046, # Hedbergite Mining Crystal I
),
60288: ( # Coherent Asteroid Mining Crystal Type A II
18610, # Omber Mining Crystal II
18604, # Jaspet Mining Crystal II
18606, # Kernite Mining Crystal II
18600, # Hedbergite Mining Crystal II
18602, # Hemorphite Mining Crystal II
),
60291: ( # Variegated Asteroid Mining Crystal Type A I
18044, # Gneiss Mining Crystal I
18042, # Dark Ochre Mining Crystal I
18040, # Crokite Mining Crystal I
),
60294: ( # Variegated Asteroid Mining Crystal Type A II
18598, # Gneiss Mining Crystal II
18596, # Dark Ochre Mining Crystal II
18594, # Crokite Mining Crystal II
),
60297: ( # Complex Asteroid Mining Crystal Type A I
18038, # Bistot Mining Crystal I
18036, # Arkonor Mining Crystal I
18064, # Spodumain Mining Crystal I
),
60300: ( # Complex Asteroid Mining Crystal Type A II
18592, # Bistot Mining Crystal II
18590, # Arkonor Mining Crystal II
18624, # Spodumain Mining Crystal II
),
}
def upgrade(saveddata_engine):
# Convert modules
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "modules" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "baseItemID" = ? WHERE "baseItemID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "modules" SET "chargeID" = ? WHERE "chargeID" = ?',
(replacement_item, retired_item))
saveddata_engine.execute('UPDATE "cargo" SET "itemID" = ? WHERE "itemID" = ?',
(replacement_item, retired_item))

View File

@@ -0,0 +1,36 @@
"""
Migration 46
- add support for server selection for SSO characters
"""
import sqlalchemy
tmpTable = """
CREATE TABLE ssoCharacterTemp (
ID INTEGER NOT NULL,
client VARCHAR NOT NULL,
characterID INTEGER NOT NULL,
characterName VARCHAR NOT NULL,
refreshToken VARCHAR NOT NULL,
accessToken VARCHAR NOT NULL,
accessTokenExpires DATETIME NOT NULL,
created DATETIME,
modified DATETIME,
server VARCHAR,
PRIMARY KEY (ID),
CONSTRAINT "uix_client_server_characterID" UNIQUE (client, server, characterID),
CONSTRAINT "uix_client_server_characterName" UNIQUE (client, server, characterName)
)
"""
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT server FROM ssoCharacter LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute(tmpTable)
saveddata_engine.execute(
"INSERT INTO ssoCharacterTemp (ID, client, characterID, characterName, refreshToken, accessToken, accessTokenExpires, created, modified, server) "
"SELECT ID, client, characterID, characterName, refreshToken, accessToken, accessTokenExpires, created, modified, 'Tranquility' "
"FROM ssoCharacter")
saveddata_engine.execute("DROP TABLE ssoCharacter")
saveddata_engine.execute("ALTER TABLE ssoCharacterTemp RENAME TO ssoCharacter")

View File

@@ -0,0 +1,15 @@
"""
Migration 48
- added pilot security column (CONCORD ships)
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT pilotSecurity FROM fits LIMIT 1")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE fits ADD COLUMN pilotSecurity FLOAT")

View File

@@ -0,0 +1,15 @@
"""
Migration 49
- added hp column to targetResists table
"""
import sqlalchemy
def upgrade(saveddata_engine):
try:
saveddata_engine.execute("SELECT hp FROM targetResists LIMIT 1;")
except sqlalchemy.exc.DatabaseError:
saveddata_engine.execute("ALTER TABLE targetResists ADD COLUMN hp FLOAT;")

View File

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

View File

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

View File

@@ -8,17 +8,16 @@ Migration 7
Pyfa.
"""
CONVERSIONS = {
640: ( # Scorpion
4005, # Scorpion Ishukone Watch
)
}
def upgrade(saveddata_engine):
# Convert ships
for replacement_item, list in CONVERSIONS.iteritems():
for replacement_item, list in CONVERSIONS.items():
for retired_item in list:
saveddata_engine.execute('UPDATE "fits" SET "shipID" = ? WHERE "shipID" = ?', (replacement_item, retired_item))
saveddata_engine.execute('UPDATE "fits" SET "shipID" = ? WHERE "shipID" = ?',
(replacement_item, retired_item))

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