Compare commits

...

377 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Maru Maru
2a410a13a0 EFS mass export now uses the configured save path for consistancy. 2018-05-20 04:36:20 -04:00
Maru Maru
d5afacef3f Merge branch 'master' into py3EFFS 2018-05-20 00:39:08 -04:00
Maru Maru
56a3911b96 Adjusted effs export to remove bugs with python3 2018-05-05 04:09:01 -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
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
Maru Maru
ed3083aa77 Fixed indentation issues and corrected fighters damage reduction factor to include sensitivity 2018-03-19 22:56:42 -04: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
3663 changed files with 12539 additions and 3908 deletions

View File

@@ -10,9 +10,9 @@ environment:
# Python 2.7.10 is the latest version and is not pre-installed.
- PYTHON: "C:\\Python27.10"
PYTHON_VERSION: "2.7.10"
PYTHON_ARCH: "32"
# - PYTHON: "C:\\Python27.10"
# PYTHON_VERSION: "2.7.10"
# PYTHON_ARCH: "32"
#- PYTHON: "C:\\Python27.10-x64"
# PYTHON_VERSION: "2.7.10"
@@ -59,9 +59,9 @@ environment:
# PYTHON_VERSION: "2.6.6"
# PYTHON_ARCH: "64"
#- PYTHON: "C:\\Python35"
# PYTHON_VERSION: "3.5.0"
# PYTHON_ARCH: "32"
- PYTHON: "C:\\Python36"
PYTHON_VERSION: "3.6.x"
PYTHON_ARCH: "32"
#- PYTHON: "C:\\Python35-x64"
# PYTHON_VERSION: "3.5.0"
@@ -89,20 +89,23 @@ install:
Where-Object pullRequestId -eq $env:APPVEYOR_PULL_REQUEST_NUMBER)[0].buildNumber) { `
throw "There are newer queued builds for this pull request, failing early." }
# Install wxPython
- 'ECHO Downloading wxPython.'
- "appveyor DownloadFile https://goo.gl/yvO8PB -FileName C:\\wxpython.exe"
#- "appveyor DownloadFile https://goo.gl/Uj0jV3 -FileName C:\\wxpython64.exe"
- 'ECHO Install wxPython'
- "C:\\wxpython.exe /SP- /VERYSILENT /NORESTART"
#- "C:\\wxpython64.exe /SP- /VERYSILENT /NORESTART"
# # Install wxPython
# - 'ECHO Downloading wxPython.'
# - "appveyor DownloadFile https://goo.gl/yvO8PB -FileName C:\\wxpython.exe"
# #- "appveyor DownloadFile https://goo.gl/Uj0jV3 -FileName C:\\wxpython64.exe"
#
# - 'ECHO Install wxPython'
# - "C:\\wxpython.exe /SP- /VERYSILENT /NORESTART"
# #- "C:\\wxpython64.exe /SP- /VERYSILENT /NORESTART"
- ECHO "Filesystem root:"
- ps: "ls \"C:/\""
- ECHO "Filesystem projects root:"
- ps: "ls \"C:\\projects\\\""
- ECHO "Filesystem pyfa root:"
- ps: "ls \"C:\\projects\\pyfa\\\""
- ps: "ls \"C:\\projects\\$env:APPVEYOR_PROJECT_SLUG\""
- ECHO "Installed SDKs:"
- ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
@@ -131,15 +134,17 @@ install:
# C:\\projects\\eve-gnosis\\
- ECHO "Install pip requirements:"
- "pip install -r requirements.txt"
- "pip install -r requirements_test.txt"
- "pip install -r requirements_build_windows.txt"
- "pip install PyInstaller"
# - "pip install -r requirements_test.txt"
# - "pip install -r requirements_build_windows.txt"
build_script:
# Build the compiled extension
# - "python setup.py build"
- ECHO "Build pyfa:"
#- copy C:\projects\pyfa\dist_assets\win\pyfa.spec C:\projects\pyfa\pyfa.spec
- "python C:\\projects\\pyfa\\setup.py build"
- ps: cd C:\projects\$env:APPVEYOR_PROJECT_SLUG
- "python -m PyInstaller --noupx --clean --windowed --noconsole -m ./dist_assets/win/pyfa.exe.manifest -y ./dist_assets/win/pyfa.spec"
#- ECHO "Build pyfa (Debug):"
#- copy C:\projects\pyfa\dist_assets\win\pyfa_debug.spec C:\projects\pyfa\pyfa_debug.spec
@@ -150,12 +155,12 @@ build: on
after_build:
- ps: "ls \"./\""
#- ps: "ls \"C:\\projects\\pyfa\\build\\pyfa\\\""
- ps: "ls \"C:\\projects\\pyfa\\build\\\""
- ps: "ls \"C:\\projects\\pyfa\\build\\exe.win32-2.7\\\""
- ps: "ls \"C:\\projects\\$env:APPVEYOR_PROJECT_SLUG\\dist\\\""
# - ps: "ls \"C:\\projects\\$env:APPVEYOR_PROJECT_SLUG\\build\\exe.win32-2.7\\\""
# Zip
# APPVEYOR_PULL_REQUEST_NUMBER -and $env:APPVEYOR_BUILD_NUMBER
#- 7z a build.zip -r C:\projects\pyfa\build\pyfa\*.*
- 7z a pyfa.zip -r C:\projects\pyfa\build\exe.win32-2.7\*.*
- ps: 7z a pyfa.zip -r C:\projects\$env:APPVEYOR_PROJECT_SLUG\dist\pyfa\*.*
#- 7z a pyfa_debug.zip -r C:\projects\pyfa\dist\pyfa_debug\*.*
on_success:

View File

@@ -100,8 +100,8 @@ def DBInMemory():
import eos.db
# Output debug info to help us troubleshoot Travis
print((eos.db.saveddata_engine))
print((eos.db.gamedata_engine))
print(eos.db.saveddata_engine)
print(eos.db.gamedata_engine)
helper = {
'config': eos.config,

View File

@@ -1,7 +1,6 @@
import pytest
# noinspection PyPackageRequirements
from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
# noinspection PyShadowingNames

View File

@@ -1,7 +1,6 @@
import pytest
# noinspection PyPackageRequirements
from _development.helpers import DBInMemory as DB, Gamedata, Saveddata
# noinspection PyShadowingNames

View File

@@ -24,10 +24,10 @@ saveInRoot = False
# Version data
version = "2.3.1"
version = "2.7.0"
tag = "Stable"
expansionName = "YC120.7"
expansionVersion = "1.2"
expansionName = "December"
expansionVersion = "1.0"
evemonMinVersion = "4081"
minItemSearchLength = 3
@@ -229,20 +229,6 @@ def defLogging():
)
])
with logging_setup.threadbound():
# Output all stdout (print) messages as warnings
try:
sys.stdout = LoggerWriter(pyfalog.warning)
except:
pyfalog.critical("Cannot redirect. Continuing without writing stdout to log.")
# Output all stderr (stacktrace) messages as critical
try:
sys.stderr = LoggerWriter(pyfalog.critical)
except:
pyfalog.critical("Cannot redirect. Continuing without writing stderr to log.")
class LoggerWriter(object):
def __init__(self, level):

View File

@@ -38,7 +38,7 @@ call([
iscc,
os.path.join(os.getcwd(), "dist_assets", "win", "pyfa-setup.iss"),
"/dMyAppVersion=%s" % (config['version']),
"/dMyAppExpansion=%s" % (expansion),
"/dMyAppExpansion=%s" % expansion,
"/dMyAppDir=%s" % source,
"/dMyOutputDir=%s" % os.path.join(os.getcwd(), "dist"),
"/dMyOutputFile=%s" % fileName]) # stdout=devnull, stderr=devnull

View File

@@ -17,8 +17,8 @@
# 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.gamedata import Category

View File

@@ -17,15 +17,15 @@
# 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, Float, ForeignKey, Integer, String, Table
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import relation, mapper, synonym, deferred, backref
from sqlalchemy.orm import backref, deferred, mapper, relation, synonym
from sqlalchemy.orm.collections import attribute_mapped_collection
from eos.db.gamedata.effect import typeeffects_table
from eos.db import gamedata_meta
from eos.gamedata import Attribute, Effect, Group, Item, MetaType, Traits, DynamicItemItem, DynamicItem
from eos.db.gamedata.dynamicAttributes import dynamicApplicable_table, dynamic_table
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, MetaType, Traits
items_table = Table("invtypes", gamedata_meta,
Column("typeID", Integer, primary_key=True),

View File

@@ -17,16 +17,16 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy.orm import join, exc, aliased, joinedload, subqueryload
from sqlalchemy.sql import and_, or_, select
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.gamedata.group import groups_table
from eos.db.gamedata.metaGroup import items_table, metatypes_table
from eos.db.util import processEager, processWhere
from eos.gamedata import AlphaClone, Attribute, Category, Group, Item, MarketGroup, MetaGroup, AttributeInfo, MetaData, DynamicItem
from eos.gamedata import AlphaClone, Attribute, AttributeInfo, Category, DynamicItem, Group, Item, MarketGroup, MetaData, MetaGroup
cache = {}
configVal = getattr(eos.config, "gamedataCache", None)
@@ -396,6 +396,21 @@ def getAbyssalTypes():
return set([r.resultingTypeID for r in gamedata_session.query(DynamicItem.resultingTypeID).distinct()])
@cachedQuery(1, "itemID")
def getDynamicItem(itemID, eager=None):
try:
if isinstance(itemID, int):
if eager is None:
result = gamedata_session.query(DynamicItem).filter(DynamicItem.ID == itemID).one()
else:
result = 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
def getRequiredFor(itemID, attrMapping):
Attribute1 = aliased(Attribute)
Attribute2 = aliased(Attribute)

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

@@ -17,33 +17,32 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm.collections import attribute_mapped_collection
from sqlalchemy.sql import and_
from sqlalchemy.orm import relation, reconstructor, mapper, relationship
from sqlalchemy import ForeignKey, Column, Integer, String, Table, Boolean, DateTime
import datetime
from eos.db import saveddata_meta
from eos.db import saveddata_session
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String, Table
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import mapper, reconstructor, relation, relationship
from sqlalchemy.orm.collections import attribute_mapped_collection
from sqlalchemy.sql import and_
from eos.db import saveddata_meta, saveddata_session
from eos.db.saveddata.cargo import cargo_table
from eos.db.saveddata.drone import drones_table
from eos.db.saveddata.fighter import fighters_table
from eos.db.saveddata.implant import fitImplants_table
from eos.db.saveddata.module import modules_table
from eos.effectHandlerHelpers import HandledModuleList, HandledImplantBoosterList, HandledProjectedModList, \
HandledDroneCargoList, HandledProjectedDroneList
from eos.saveddata.implant import Implant
from eos.saveddata.character import Character
from eos.saveddata.user import User
from eos.saveddata.fighter import Fighter
from eos.saveddata.fit import Fit as es_Fit, ImplantLocation
from eos.saveddata.drone import Drone
from eos.effectHandlerHelpers import HandledDroneCargoList, HandledImplantBoosterList, HandledModuleList, HandledProjectedDroneList, HandledProjectedModList
from eos.saveddata.booster import Booster
from eos.saveddata.module import Module
from eos.saveddata.cargo import Cargo
from eos.saveddata.character import Character
from eos.saveddata.damagePattern import DamagePattern
from eos.saveddata.drone import Drone
from eos.saveddata.fighter import Fighter
from eos.saveddata.fit import Fit as es_Fit
from eos.saveddata.implant import Implant
from eos.saveddata.module import Module
from eos.saveddata.targetResists import TargetResists
from eos.saveddata.user import User
fits_table = Table("fits", saveddata_meta,
Column("ID", Integer, primary_key=True),
@@ -132,13 +131,13 @@ class CommandFit(object):
)
es_Fit._Fit__projectedFits = association_proxy(
es_Fit.projectedFitDict = association_proxy(
"victimOf", # look at the victimOf association...
"source_fit", # .. and return the source fits
creator=lambda sourceID, source_fit: ProjectedFit(sourceID, source_fit)
)
es_Fit._Fit__commandFits = association_proxy(
es_Fit.commandFitDict = association_proxy(
"boostedOf", # look at the boostedOf association...
"booster_fit", # .. and return the booster fit
creator=lambda boosterID, booster_fit: CommandFit(boosterID, booster_fit)

View File

@@ -17,7 +17,7 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Table, Column, Integer, ForeignKey, CheckConstraint, Boolean, DateTime
from sqlalchemy import Table, Column, Integer, Float, ForeignKey, CheckConstraint, Boolean, DateTime
from sqlalchemy.orm.collections import attribute_mapped_collection
from sqlalchemy.orm import relation, mapper
import datetime
@@ -40,6 +40,8 @@ modules_table = Table("modules", saveddata_meta,
Column("position", Integer),
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now),
Column("spoolType", Integer, nullable=True),
Column("spoolAmount", Float, nullable=True),
CheckConstraint('("dummySlot" = NULL OR "itemID" = NULL) AND "dummySlot" != "itemID"'))
mapper(Module, modules_table,

View File

@@ -17,10 +17,11 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
from sqlalchemy import Table, Column, Integer, ForeignKey, Boolean, DateTime, Float
from sqlalchemy.orm import mapper
import datetime
from sqlalchemy import Column, DateTime, Float, ForeignKey, Integer, Table
from sqlalchemy.orm import mapper
from eos.db import saveddata_meta
from eos.saveddata.mutator import Mutator

View File

@@ -18,6 +18,7 @@
# ===============================================================================
from logbook import Logger
from utils.deprecated import deprecated
pyfalog = Logger(__name__)
@@ -113,6 +114,7 @@ class HandledList(list):
class HandledModuleList(HandledList):
def append(self, mod):
emptyPosition = float("Inf")
for i in range(len(self)):
@@ -130,12 +132,32 @@ class HandledModuleList(HandledList):
self.remove(mod)
return
self.appendIgnoreEmpty(mod)
def appendIgnoreEmpty(self, mod):
mod.position = len(self)
HandledList.append(self, mod)
if mod.isInvalid:
self.remove(mod)
return
def replaceRackPosition(self, rackPosition, mod):
listPositions = []
for currMod in self:
if currMod.slot == mod.slot:
listPositions.append(currMod.position)
listPositions.sort()
try:
modListPosition = listPositions[rackPosition]
except IndexError:
self.appendIgnoreEmpty(mod)
else:
self.toDummy(modListPosition)
if not mod.isEmpty:
self.toModule(modListPosition, mod)
if mod.isInvalid:
self.toDummy(modListPosition)
def insert(self, index, mod):
mod.position = index
i = index
@@ -163,6 +185,7 @@ class HandledModuleList(HandledList):
mod.position = index
self[index] = mod
@deprecated
def freeSlot(self, slot):
for i in range(len(self)):
mod = self[i]
@@ -195,14 +218,20 @@ class HandledImplantBoosterList(HandledList):
self.remove(thing)
return
self.makeRoom(thing)
HandledList.append(self, thing)
def makeRoom(self, thing):
# if needed, remove booster that was occupying slot
oldObj = next((m for m in self if m.slot == thing.slot), None)
if oldObj:
pyfalog.info("Slot {0} occupied with {1}, replacing with {2}", thing.slot, oldObj.item.name, thing.item.name)
pyfalog.info("Slot {0} occupied with {1}, replacing with {2}", thing.slot, oldObj.item.name,
thing.item.name)
itemID = oldObj.itemID
oldObj.itemID = 0 # hack to remove from DB. See GH issue #324
self.remove(oldObj)
HandledList.append(self, thing)
return itemID
return None
class HandledSsoCharacterList(list):
@@ -225,22 +254,30 @@ class HandledProjectedModList(HandledList):
return
proj.projected = True
isSystemEffect = proj.item.group.name == "Effect Beacon"
if isSystemEffect:
# remove other system effects - only 1 per fit plz
oldEffect = next((m for m in self if m.item.group.name == "Effect Beacon"), None)
if oldEffect:
pyfalog.info("System effect occupied with {0}, replacing with {1}", oldEffect.item.name, proj.item.name)
self.remove(oldEffect)
if proj.isExclusiveSystemEffect:
self.makeRoom(proj)
HandledList.append(self, proj)
# Remove non-projectable modules
if not proj.item.isType("projected") and not isSystemEffect:
if not proj.item.isType("projected") and not proj.isExclusiveSystemEffect:
self.remove(proj)
@property
def currentSystemEffect(self):
return next((m for m in self if m.isExclusiveSystemEffect), None)
def makeRoom(self, proj):
# remove other system effects - only 1 per fit plz
oldEffect = self.currentSystemEffect
if oldEffect:
pyfalog.info("System effect occupied with {0}, replacing with {1}", oldEffect.item.name, proj.item.name)
self.remove(oldEffect)
return oldEffect.itemID
return None
class HandledProjectedDroneList(HandledDroneCargoList):
def append(self, proj):

View File

@@ -6,4 +6,4 @@ type = "passive"
def handler(fit, module, context):
fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("agilityMultiplier"), stackingPenalties=True)
fit.ship.boostItemAttr("agility", module.getModifiedItemAttr("agilityBonus"), stackingPenalties=True)

View File

@@ -9,4 +9,7 @@ type = "active"
def handler(fit, module, context):
amount = module.getModifiedItemAttr("armorDamageAmount")
speed = module.getModifiedItemAttr("duration") / 1000.0
fit.extraAttributes.increase("armorRepair", amount / speed)
rps = amount / speed
fit.extraAttributes.increase("armorRepair", rps)
fit.extraAttributes.increase("armorRepairPreSpool", rps)
fit.extraAttributes.increase("armorRepairFullSpool", rps)

View File

@@ -1,7 +1,7 @@
# boosterArmorHpPenalty
#
# Used by:
# Implants named like: Booster (12 of 33)
# Implants named like: Booster (12 of 35)
type = "boosterSideEffect"
# User-friendly name for the side effect

View File

@@ -4,6 +4,7 @@
# Implants named like: Eifyr and Co. 'Alchemist' Neurotoxin Control NC (2 of 2)
# Implants named like: grade Edge (10 of 12)
# Skill: Neurotoxin Control
runTime = 'early'
type = "passive"

View File

@@ -1,7 +1,7 @@
# boosterShieldCapacityPenalty
#
# Used by:
# Implants from group: Booster (12 of 66)
# Implants from group: Booster (12 of 71)
type = "boosterSideEffect"
# User-friendly name for the side effect

View File

@@ -2,7 +2,7 @@
#
# Used by:
# Ships from group: Carrier (4 of 4)
# Ships from group: Combat Battlecruiser (13 of 13)
# Ships from group: Combat Battlecruiser (14 of 14)
# Ships from group: Command Ship (8 of 8)
# Ships from group: Force Auxiliary (6 of 6)
# Ships from group: Supercarrier (6 of 6)

View File

@@ -3,9 +3,9 @@
# Used by:
# Ships from group: Black Ops (5 of 5)
# Ships from group: Blockade Runner (4 of 4)
# Ships from group: Covert Ops (7 of 7)
# Ships from group: Covert Ops (8 of 8)
# Ships from group: Expedition Frigate (2 of 2)
# Ships from group: Force Recon Ship (8 of 8)
# Ships from group: Force Recon Ship (9 of 9)
# Ships from group: Stealth Bomber (5 of 5)
# Ships named like: Stratios (2 of 2)
# Subsystems named like: Defensive Covert Reconfiguration (4 of 4)

View File

@@ -1,7 +1,7 @@
# covertOpsCloakCpuPercentBonus1
#
# Used by:
# Ships from group: Covert Ops (5 of 7)
# Ships from group: Covert Ops (6 of 8)
type = "passive"
runTime = "early"

View File

@@ -0,0 +1,9 @@
# covertOpsWarpResistance
#
# Used by:
# Ships from group: Covert Ops (5 of 8)
type = "passive"
def handler(fit, src, context):
fit.ship.increaseItemAttr("warpFactor", src.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops")

View File

@@ -3,7 +3,7 @@
# Used by:
# Modules from group: Frequency Mining Laser (3 of 3)
type = "passive"
runTime = "late"
def handler(fit, module, context):
module.preAssignItemAttr("specialtyMiningAmount", module.getModifiedItemAttr("miningAmount"))

View File

@@ -1,7 +1,7 @@
# cynosuralDurationBonus
#
# Used by:
# Ships from group: Force Recon Ship (7 of 8)
# Ships from group: Force Recon Ship (8 of 9)
type = "passive"

View File

@@ -1,7 +1,7 @@
# cynosuralTheoryConsumptionBonus
#
# Used by:
# Ships from group: Force Recon Ship (7 of 8)
# Ships from group: Force Recon Ship (8 of 9)
# Skill: Cynosural Field Theory
type = "passive"

View File

@@ -1,7 +1,7 @@
# disintegratorWeaponDamageMultiply
#
# Used by:
# Modules from group: Entropic Radiation Sink (3 of 3)
# Modules from group: Entropic Radiation Sink (4 of 4)
type = "passive"

View File

@@ -1,7 +1,7 @@
# disintegratorWeaponSpeedMultiply
#
# Used by:
# Modules from group: Entropic Radiation Sink (3 of 3)
# Modules from group: Entropic Radiation Sink (4 of 4)
type = "passive"

View File

@@ -1,7 +1,7 @@
# doHacking
#
# Used by:
# Modules from group: Data Miners (9 of 9)
# Modules from group: Data Miners (10 of 10)
type = "active"

View File

@@ -1,7 +1,7 @@
# droneArmorDamageBonusEffect
#
# Used by:
# Ships from group: Logistics (5 of 6)
# Ships from group: Logistics (6 of 7)
# Ship: Exequror
# Ship: Scythe
type = "passive"

View File

@@ -1,7 +1,7 @@
# droneHullRepairBonusEffect
#
# Used by:
# Ships from group: Logistics (5 of 6)
# Ships from group: Logistics (6 of 7)
# Ship: Exequror
# Ship: Scythe
type = "passive"

View File

@@ -2,6 +2,8 @@
#
# Used by:
# Modules named like: Drone Speed Augmentor (6 of 8)
# Implant: Overmind 'Goliath' Drone Tuner T25-10S
# Implant: Overmind 'Hawkmoth' Drone Tuner S10-25T
type = "passive"

View File

@@ -1,7 +1,7 @@
# droneShieldBonusBonusEffect
#
# Used by:
# Ships from group: Logistics (5 of 6)
# Ships from group: Logistics (6 of 7)
# Ship: Exequror
# Ship: Scythe
type = "passive"

View File

@@ -1,7 +1,7 @@
# eliteBonusCoverOpsScanProbeStrength2
#
# Used by:
# Ships from group: Covert Ops (7 of 7)
# Ships from group: Covert Ops (8 of 8)
type = "passive"

View File

@@ -0,0 +1,10 @@
# eliteBonusCovertOps3PCTdamagePerCycle
#
# Used by:
# Ship: Hydra
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"), "damageMultiplierBonusPerCycle",
src.getModifiedItemAttr("eliteBonusCovertOps3"), skill="Covert Ops")

View File

@@ -0,0 +1,10 @@
# eliteBonusReconScanProbeStrength2
#
# Used by:
# Ship: Tiamat
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Astrometrics"), "baseSensorStrength",
src.getModifiedItemAttr("eliteBonusReconShip2"), skill="Recon Ships")

View File

@@ -0,0 +1,10 @@
# eliteBonusReconShip3PCTdamagePerCycle
#
# Used by:
# Ship: Tiamat
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"), "damageMultiplierBonusPerCycle",
src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships")

View File

@@ -0,0 +1,11 @@
# emergencyHullEnergizer
#
# Used by:
# Variations of module: Capital Emergency Hull Energizer I (5 of 5)
type = "active"
runtime = "late"
def handler(fit, src, context):
for dmgType in ('em', 'thermal', 'kinetic', 'explosive'):
fit.ship.forceItemAttr('{}DamageResonance'.format(dmgType), src.getModifiedItemAttr("hull{}DamageResonance".format(dmgType.title())))

View File

@@ -1,7 +1,7 @@
# energyWeaponDamageMultiply
#
# Used by:
# Modules from group: Heat Sink (18 of 18)
# Modules from group: Heat Sink (19 of 19)
type = "passive"

View File

@@ -1,7 +1,7 @@
# energyWeaponSpeedMultiply
#
# Used by:
# Modules from group: Heat Sink (18 of 18)
# Modules from group: Heat Sink (19 of 19)
type = "passive"

View File

@@ -7,3 +7,9 @@ type = "active"
def handler(fit, module, context):
fit.ship.forceItemAttr("disallowAssistance", module.getModifiedItemAttr("disallowAssistance"))
for scanType in ("Gravimetric", "Magnetometric", "Radar", "Ladar"):
fit.ship.boostItemAttr(
"scan{}Strength".format(scanType),
module.getModifiedItemAttr("scan{}StrengthPercent".format(scanType)),
stackingPenalties=True
)

View File

@@ -14,4 +14,7 @@ def handler(fit, module, context):
amount = module.getModifiedItemAttr("armorDamageAmount") * multiplier
speed = module.getModifiedItemAttr("duration") / 1000.0
fit.extraAttributes.increase("armorRepair", amount / speed)
rps = amount / speed
fit.extraAttributes.increase("armorRepair", rps)
fit.extraAttributes.increase("armorRepairPreSpool", rps)
fit.extraAttributes.increase("armorRepairFullSpool", rps)

View File

@@ -1,7 +1,7 @@
# hybridWeaponDamageMultiply
#
# Used by:
# Modules from group: Magnetic Field Stabilizer (14 of 14)
# Modules from group: Magnetic Field Stabilizer (15 of 15)
type = "passive"

View File

@@ -1,7 +1,7 @@
# hybridWeaponSpeedMultiply
#
# Used by:
# Modules from group: Magnetic Field Stabilizer (14 of 14)
# Modules from group: Magnetic Field Stabilizer (15 of 15)
type = "passive"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Variations of module: Ice Harvester Upgrade I (5 of 5)
# Module: Frostline 'Omnivore' Harvester Upgrade
type = "passive"

View File

@@ -0,0 +1,17 @@
# massEntanglerEffect5
#
# Used by:
# Module: Zero-Point Mass Entangler
type = "active"
def handler(fit, src, context):
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("warpScrambleStrength"))
fit.ship.boostItemAttr("mass", src.getModifiedItemAttr("massBonusPercentage"), stackingPenalties=True)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedFactor",
src.getModifiedItemAttr("speedFactorBonus"), stackingPenalties=True)
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Afterburner"), "speedBoostFactor",
src.getModifiedItemAttr("speedBoostFactorBonus"))
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("High Speed Maneuvering"), "activationBlocked",
src.getModifiedItemAttr("activationBlockedStrenght"))
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("maxVelocityBonus"), stackingPenalties=True)

View File

@@ -5,5 +5,6 @@
type = "active"
def handler(fit, src, context):
pass
def handler(fit, module, context):
fit.ship.boostItemAttr("signatureRadius", module.getModifiedItemAttr("signatureRadiusBonusPercent"),
stackingPenalties=True)

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Variations of module: Mining Laser Upgrade I (5 of 5)
# Module: Frostline 'Omnivore' Harvester Upgrade
type = "passive"

View File

@@ -1,7 +1,7 @@
# minigameVirusStrengthBonus
#
# Used by:
# Ships from group: Covert Ops (7 of 7)
# Ships from group: Covert Ops (7 of 8)
# Ships named like: Stratios (2 of 2)
# Subsystems named like: Defensive Covert Reconfiguration (4 of 4)
# Ship: Astero

View File

@@ -4,6 +4,7 @@
# Modules from group: Frequency Mining Laser (3 of 3)
# Modules from group: Mining Laser (15 of 15)
# Modules from group: Strip Miner (5 of 5)
# Module: Citizen Miner
type = 'active'

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Variations of module: Mining Laser Upgrade I (5 of 5)
# Module: Frostline 'Omnivore' Harvester Upgrade
type = "passive"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Modules from group: Missile Guidance Enhancer (3 of 3)
# Module: ML-EKP 'Polybolos' Ballistic Control System
type = "passive"

View File

@@ -1,7 +1,7 @@
# missileDMGBonus
#
# Used by:
# Modules from group: Ballistic Control system (20 of 20)
# Modules from group: Ballistic Control system (22 of 22)
type = "passive"

View File

@@ -1,7 +1,7 @@
# missileLauncherSpeedMultiplier
#
# Used by:
# Modules from group: Ballistic Control system (20 of 20)
# Modules from group: Ballistic Control system (22 of 22)
type = "passive"

View File

@@ -3,6 +3,7 @@
# Used by:
# Modules from group: Drone Damage Modules (11 of 11)
# Modules named like: C3 'Hivaa Saitsuo' Ballistic Control System (2 of 2)
# Module: Abyssal Ballistic Control System
type = "passive"

View File

@@ -3,14 +3,14 @@
# Used by:
# Variations of module: Armor Command Burst I (2 of 2)
'''
"""
Some documentation:
When the fit is calculated, we gather up all the gang effects and stick them onto the fit. We don't run the actual
effect yet, only give the fit details so that it can run the effect at a later time. We need to do this so that we can
only run the strongest effect. When we are done, one of the last things that we do with the fit is to loop through those
bonuses and actually run the effect. To do this, we have a special argument passed into the effect handler that tells it
which warfareBuffID to run (shouldn't need this right now, but better safe than sorry)
'''
"""
type = "active", "gang"

View File

@@ -9,4 +9,7 @@ def handler(fit, container, context):
if "projected" in context:
bonus = container.getModifiedItemAttr("armorDamageAmount")
duration = container.getModifiedItemAttr("duration") / 1000.0
fit.extraAttributes.increase("armorRepair", bonus / duration)
rps = bonus / duration
fit.extraAttributes.increase("armorRepair", rps)
fit.extraAttributes.increase("armorRepairPreSpool", rps)
fit.extraAttributes.increase("armorRepairFullSpool", rps)

View File

@@ -2,7 +2,7 @@
#
# Used by:
# Modules from group: Missile Launcher Torpedo (22 of 22)
# Items from market group: Ship Equipment > Turrets & Bays (429 of 881)
# Items from market group: Ship Equipment > Turrets & Bays (429 of 882)
# Module: Interdiction Sphere Launcher I
type = "overheat"

View File

@@ -1,6 +1,7 @@
# overloadSelfDurationBonus
#
# Used by:
# Modules from group: Ancillary Remote Shield Booster (4 of 4)
# Modules from group: Capacitor Booster (59 of 59)
# Modules from group: Energy Neutralizer (54 of 54)
# Modules from group: Energy Nosferatu (54 of 54)
@@ -10,7 +11,7 @@
# Modules from group: Remote Shield Booster (38 of 38)
# Modules from group: Smart Bomb (118 of 118)
# Modules from group: Warp Disrupt Field Generator (7 of 7)
# Modules named like: Ancillary Remote (8 of 8)
# Modules named like: Remote Repairer (56 of 56)
# Module: Reactive Armor Hardener
# Module: Target Spectrum Breaker
type = "overheat"

View File

@@ -1,7 +1,7 @@
# projectileWeaponDamageMultiply
#
# Used by:
# Modules from group: Gyrostabilizer (13 of 13)
# Modules from group: Gyrostabilizer (14 of 14)
type = "passive"

View File

@@ -1,7 +1,7 @@
# projectileWeaponSpeedMultiply
#
# Used by:
# Modules from group: Gyrostabilizer (13 of 13)
# Modules from group: Gyrostabilizer (14 of 14)
type = "passive"

View File

@@ -1,7 +1,7 @@
# reconShipCloakCpuBonus1
#
# Used by:
# Ships from group: Force Recon Ship (6 of 8)
# Ships from group: Force Recon Ship (7 of 9)
type = "passive"
runTime = "early"

View File

@@ -1,7 +1,7 @@
# remoteCapacitorTransmitterPowerNeedBonusEffect
#
# Used by:
# Ships from group: Logistics (3 of 6)
# Ships from group: Logistics (3 of 7)
type = "passive"

View File

@@ -0,0 +1,13 @@
# roleBonusWarpSpeed
#
# Used by:
# Ship: Cynabal
# Ship: Dramiel
# Ship: Leopard
# Ship: Machariel
# Ship: Victorieux Luxury Yacht
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("shipRoleBonusWarpSpeed"))

View File

@@ -3,6 +3,7 @@
# Used by:
# Structure Modules from group: Structure Citadel Service Module (2 of 2)
# Structure Modules from group: Structure Engineering Service Module (6 of 6)
# Structure Modules from group: Structure Navigation Service Module (3 of 3)
# Structure Modules from group: Structure Resource Processing Service Module (4 of 4)
# Structure Module: Standup Moon Drill I
type = "passive"

View File

@@ -1,7 +1,7 @@
# shieldTransportCpuNeedBonusEffect
#
# Used by:
# Ships from group: Logistics (3 of 6)
# Ships from group: Logistics (3 of 7)
type = "passive"

View File

@@ -0,0 +1,10 @@
# shipArmorEMResistancePBC2
#
# Used by:
# Ship: Drekavac
type = "passive"
def handler(fit, ship, context):
fit.ship.boostItemAttr("armorEmDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"),
skill="Precursor Battlecruiser")

View File

@@ -0,0 +1,10 @@
# shipArmorExplosiveResistancePBC2
#
# Used by:
# Ship: Drekavac
type = "passive"
def handler(fit, ship, context):
fit.ship.boostItemAttr("armorExplosiveDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"),
skill="Precursor Battlecruiser")

View File

@@ -0,0 +1,10 @@
# shipArmorKineticResistancePBC2
#
# Used by:
# Ship: Drekavac
type = "passive"
def handler(fit, ship, context):
fit.ship.boostItemAttr("armorKineticDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"),
skill="Precursor Battlecruiser")

View File

@@ -0,0 +1,10 @@
# shipArmorThermalResistancePBC2
#
# Used by:
# Ship: Drekavac
type = "passive"
def handler(fit, ship, context):
fit.ship.boostItemAttr("armorThermalDamageResonance", ship.getModifiedItemAttr("shipBonusPBC2"),
skill="Precursor Battlecruiser")

View File

@@ -1,8 +1,7 @@
# shipBonusDreadnoughtC2ShieldResists
#
# Used by:
# Ship: Caiman
# Ship: Phoenix
# Variations of ship: Phoenix (2 of 2)
type = "passive"

View File

@@ -6,5 +6,5 @@ type = "passive"
def handler(fit, ship, context):
fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Mining Drone",
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Drones"),
"miningAmount", ship.getModifiedItemAttr("shipBonusAC2"), skill="Amarr Cruiser")

View File

@@ -7,5 +7,5 @@ type = "passive"
def handler(fit, ship, context):
fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Mining Drone",
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"),
"miningAmount", ship.getModifiedItemAttr("shipBonusGC2"), skill="Gallente Cruiser")

View File

@@ -1,10 +0,0 @@
# shipBonusForceAuxiliaryA3CapCapacity
#
# Used by:
# Ship: Apostle
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("capacitorCapacity", src.getModifiedItemAttr("shipBonusForceAuxiliaryA3"),
skill="Amarr Carrier")

View File

@@ -1,8 +1,7 @@
# shipBonusForceAuxiliaryC2ShieldResists
#
# Used by:
# Ship: Loggerhead
# Ship: Minokawa
# Variations of ship: Minokawa (2 of 2)
type = "passive"

View File

@@ -1,10 +0,0 @@
# shipBonusForceAuxiliaryC3CapCapacity
#
# Used by:
# Ship: Minokawa
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("capacitorCapacity", src.getModifiedItemAttr("shipBonusForceAuxiliaryC3"),
skill="Caldari Carrier")

View File

@@ -1,10 +0,0 @@
# shipBonusForceAuxiliaryG3CapBoosterStrength
#
# Used by:
# Ship: Ninazu
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Capacitor Booster Charge", "capacitorBonus",
src.getModifiedItemAttr("shipBonusForceAuxiliaryG3"), skill="Gallente Carrier")

View File

@@ -1,10 +0,0 @@
# shipBonusForceAuxiliaryM3CapBoosterStrength
#
# Used by:
# Ship: Lif
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Capacitor Booster Charge", "capacitorBonus",
src.getModifiedItemAttr("shipBonusForceAuxiliaryM3"), skill="Minmatar Carrier")

View File

@@ -9,5 +9,5 @@ type = "passive"
def handler(fit, container, context):
fit.drones.filteredItemBoost(lambda drone: drone.item.group.name == "Mining Drone",
fit.drones.filteredItemBoost(lambda drone: drone.item.requiresSkill("Mining Drone Operation"),
"miningAmount", container.getModifiedItemAttr("rookieDroneBonus"))

View File

@@ -0,0 +1,7 @@
# shipBonusMutadaptiveRemoteRepairRangeRole3
#
# Used by:
# Ship: Rodiva
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "maxRange", src.getModifiedItemAttr("shipBonusRole3"))

View File

@@ -0,0 +1,7 @@
# shipBonusMutadaptiveRemoteRepAmounteliteBonusLogisitics2
#
# Used by:
# Ship: Zarmazd
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "armorDamageAmount", src.getModifiedItemAttr("eliteBonusLogistics2"), skill="Logistics Cruisers")

View File

@@ -0,0 +1,7 @@
# shipBonusMutadaptiveRemoteRepCapNeedeliteBonusLogisitics1
#
# Used by:
# Ship: Zarmazd
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "capacitorNeed", src.getModifiedItemAttr("eliteBonusLogistics1"), skill="Logistics Cruisers")

View File

@@ -0,0 +1,7 @@
# shipBonusMutadaptiveRemoteRepRangePC1
#
# Used by:
# Ship: Zarmazd
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "maxRange", src.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser")

View File

@@ -0,0 +1,7 @@
# shipBonusMutadaptiveRepAmountPC1
#
# Used by:
# Ship: Rodiva
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "armorDamageAmount", src.getModifiedItemAttr("shipBonusPC1"), skill="Precursor Cruiser")

View File

@@ -0,0 +1,7 @@
# shipBonusMutadaptiveRepCapNeedPC2
#
# Used by:
# Ship: Rodiva
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Mutadaptive Remote Armor Repairer", "capacitorNeed", src.getModifiedItemAttr("shipBonusPC2"), skill="Precursor Cruiser")

View File

@@ -2,7 +2,11 @@
#
# Used by:
# Ship: Damavik
# Ship: Drekavac
# Ship: Hydra
# Ship: Kikimora
# Ship: Leshak
# Ship: Tiamat
# Ship: Vedmak
type = "passive"

View File

@@ -0,0 +1,8 @@
# shipBonusNosNeutCapNeedRoleBonus2
#
# Used by:
# Ship: Rodiva
# Ship: Zarmazd
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capacitor Emission Systems"), "capacitorNeed", src.getModifiedItemAttr("shipBonusRole2"))

View File

@@ -0,0 +1,11 @@
# shipBonusPBC1DisintegratorDamage
#
# Used by:
# Ship: Drekavac
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Precursor Weapon"),
"damageMultiplier", ship.getModifiedItemAttr("shipBonusPBC1"),
skill="Precursor Battlecruiser")

View File

@@ -1,6 +1,7 @@
# shipbonusPCTDamagePC1
#
# Used by:
# Ship: Tiamat
# Ship: Vedmak
type = "passive"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Ship: Damavik
# Ship: Hydra
type = "passive"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Ship: Damavik
# Ship: Hydra
type = "passive"

View File

@@ -1,6 +1,7 @@
# shipbonusPCTTrackingPC2
#
# Used by:
# Ship: Tiamat
# Ship: Vedmak
type = "passive"

View File

@@ -0,0 +1,11 @@
# shipBonusPD1DisintegratorDamage
#
# Used by:
# Ship: Kikimora
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"),
"damageMultiplier", ship.getModifiedItemAttr("shipBonusPD1"),
skill="Precursor Destroyer")

View File

@@ -0,0 +1,11 @@
# shipBonusPD2DisintegratorMaxRange
#
# Used by:
# Ship: Kikimora
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Precursor Weapon"),
"maxRange", ship.getModifiedItemAttr("shipBonusPD2"),
skill="Precursor Destroyer")

View File

@@ -0,0 +1,8 @@
# shipBonusRemoteCapacitorTransferRangeRole1
#
# Used by:
# Ship: Rodiva
# Ship: Zarmazd
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Remote Capacitor Transmitter", "maxRange", src.getModifiedItemAttr("shipBonusRole1"))

View File

@@ -2,7 +2,11 @@
#
# Used by:
# Ship: Damavik
# Ship: Drekavac
# Ship: Hydra
# Ship: Kikimora
# Ship: Leshak
# Ship: Tiamat
# Ship: Vedmak
type = "passive"

View File

@@ -2,7 +2,11 @@
#
# Used by:
# Ship: Damavik
# Ship: Drekavac
# Ship: Hydra
# Ship: Kikimora
# Ship: Leshak
# Ship: Tiamat
# Ship: Vedmak
type = "passive"

View File

@@ -1,8 +1,7 @@
# shipBonusRole3XLTorpdeoVelocityBonus
#
# Used by:
# Ship: Komodo
# Ship: Leviathan
# Variations of ship: Leviathan (2 of 2)
type = "passive"

View File

@@ -1,7 +1,7 @@
# shipBonusRole5RemoteArmorRepairPowergridBonus
#
# Used by:
# Ships from group: Logistics (3 of 6)
# Ships from group: Logistics (3 of 7)
type = "passive"

View File

@@ -2,8 +2,14 @@
#
# Used by:
# Ship: Damavik
# Ship: Drekavac
# Ship: Hydra
# Ship: Kikimora
# Ship: Leshak
# Ship: Rodiva
# Ship: Tiamat
# Ship: Vedmak
# Ship: Zarmazd
type = "passive"

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