Compare commits

..

222 Commits

Author SHA1 Message Date
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
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
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
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
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
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
Ryan Holmes
0c971a127c Fix loggerhead drone bonus (#1348) (#1358) 2018-01-02 01:43:55 -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
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
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
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
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
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
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
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
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
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
581 changed files with 15684 additions and 4637 deletions

1
.gitignore vendored
View File

@@ -117,3 +117,4 @@ ENV/
# Pycharm project settings
.idea
eos.iml
gitversion

View File

@@ -1,11 +1,13 @@
# Submit a bug report bug report or feature request
<!--
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

View File

@@ -52,7 +52,7 @@ 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)
* [EVE forum thread](https://forums.eveonline.com/default.aspx?g=posts&t=466425)
* [EVE forum thread](https://forums.eveonline.com/t/27156)
* [EVE University guide using pyfa](http://wiki.eveuniversity.org/Guide_to_using_PYFA)
* [EVE Online website](http://www.eveonline.com/)

View File

@@ -19,10 +19,10 @@ debug = False
saveInRoot = False
# Version data
version = "1.29.2"
version = "1.35.0"
tag = "Stable"
expansionName = "YC119.5"
expansionVersion = "1.0"
expansionName = "YC120.2"
expansionVersion = "1.1"
evemonMinVersion = "4081"
pyfaPath = None

View File

@@ -47,7 +47,7 @@ mapper(Item, items_table,
properties={
"group" : relation(Group, backref="items"),
"icon" : relation(Icon),
"_Item__attributes": relation(Attribute, collection_class=attribute_mapped_collection('name')),
"_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(MetaType,
primaryjoin=metatypes_table.c.typeID == items_table.c.typeID,

View File

@@ -317,7 +317,7 @@ def getVariations(itemids, groupIDs=None, where=None, eager=None):
vars = gamedata_session.query(Item).options(*processEager(eager)).join((groups_table, joinon)).filter(
filter).all()
return vars
return vars
@cachedQuery(1, "attr")

View File

@@ -16,23 +16,27 @@ 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:
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 Exception:
pass
saveddata_session.commit()
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

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

@@ -7,5 +7,5 @@ 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 (?, ?, ?, ?, ?, ?, ?)',
saveddata_engine.execute('INSERT INTO damagePatterns (ID, name, emAmount, thermalAmount, kineticAmount, explosiveAmount, ownerID) VALUES (?, ?, ?, ?, ?, ?, ?)',
(1, "Uniform", 25, 25, 25, 25, None))

View File

@@ -18,35 +18,38 @@
# ===============================================================================
from sqlalchemy import Table, Column, ForeignKey, Integer, Boolean, DateTime
from sqlalchemy.ext.associationproxy import association_proxy
from sqlalchemy.orm import mapper, relation
import datetime
from eos.db import saveddata_meta
from eos.saveddata.booster import Booster
from eos.saveddata.boosterSideEffect import BoosterSideEffect
boosters_table = Table("boosters", saveddata_meta,
Column("ID", Integer, primary_key=True),
Column("itemID", Integer),
Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False),
Column("active", Boolean),
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now),
Column("ID", Integer, primary_key=True),
Column("itemID", Integer),
Column("fitID", Integer, ForeignKey("fits.ID"), nullable=False),
Column("active", Boolean),
Column("created", DateTime, nullable=True, default=datetime.datetime.now),
Column("modified", DateTime, nullable=True, onupdate=datetime.datetime.now),
)
# Legacy booster side effect code, should disable but a mapper relies on it.
activeSideEffects_table = Table("boostersActiveSideEffects", saveddata_meta,
Column("boosterID", ForeignKey("boosters.ID"), primary_key=True),
Column("effectID", Integer, primary_key=True))
booster_side_effect_table = Table("boosterSideEffects", saveddata_meta,
Column("boosterID", Integer, ForeignKey("boosters.ID"), primary_key=True, index=True),
Column("effectID", Integer, nullable=False, primary_key=True),
Column("active", Boolean, default=False)
)
class ActiveSideEffectsDummy(object):
def __init__(self, effectID):
self.effectID = effectID
mapper(ActiveSideEffectsDummy, activeSideEffects_table)
mapper(Booster, boosters_table,
properties={"_Booster__activeSideEffectDummies": relation(ActiveSideEffectsDummy)})
properties={
"_Booster__sideEffects": relation(
BoosterSideEffect,
backref="booster",
cascade='all, delete, delete-orphan'),
}
)
Booster._Booster__activeSideEffectIDs = association_proxy("_Booster__activeSideEffectDummies", "effectID")
mapper(BoosterSideEffect, booster_side_effect_table)

View File

@@ -25,8 +25,10 @@ from eos.saveddata.price import Price
prices_table = Table("prices", saveddata_meta,
Column("typeID", Integer, primary_key=True),
Column("price", Float),
Column("price", Float, default=0.0),
Column("time", Integer, nullable=False),
Column("failed", Integer))
mapper(Price, prices_table)
mapper(Price, prices_table, properties={
"_Price__price": prices_table.c.price,
})

View File

@@ -17,6 +17,8 @@
# along with eos. If not, see <http://www.gnu.org/licenses/>.
# ===============================================================================
import sys
from sqlalchemy.sql import and_
from sqlalchemy import desc, select
@@ -539,5 +541,10 @@ def remove(stuff):
def commit():
with sd_lock:
saveddata_session.commit()
saveddata_session.flush()
try:
saveddata_session.commit()
saveddata_session.flush()
except Exception:
saveddata_session.rollback()
exc_info = sys.exc_info()
raise exc_info[0], exc_info[1], exc_info[2]

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Modules named like: Memetic Algorithm Bank (8 of 8)
# Implant: Neural Lace 'Blackglass' Net Intrusion 920-40
# Implant: Poteque 'Prospector' Environmental Analysis EY-1005
# Implant: Poteque 'Prospector' Hacking HC-905
type = "passive"

View File

@@ -0,0 +1,9 @@
# agilityBonus
#
# Used by:
# Subsystems named like: Propulsion Interdiction Nullifier (4 of 4)
type = "passive"
def handler(fit, src, context):
fit.ship.increaseItemAttr("agility", src.getModifiedItemAttr("agilityBonusAdd"))

View File

@@ -1,9 +1,7 @@
# ammoInfluenceCapNeed
#
# Used by:
# Items from category: Charge (466 of 913)
# Charges from group: Frequency Crystal (185 of 185)
# Charges from group: Hybrid Charge (209 of 209)
# Items from category: Charge (478 of 925)
type = "passive"

View File

@@ -1,7 +1,7 @@
# ammoInfluenceRange
#
# Used by:
# Items from category: Charge (571 of 913)
# Items from category: Charge (572 of 925)
type = "passive"

View File

@@ -1,9 +1,8 @@
# ammoSpeedMultiplier
#
# Used by:
# Charges from group: Festival Charges (22 of 22)
# Charges from group: Festival Charges (23 of 23)
# Charges from group: Interdiction Probe (2 of 2)
# Charges from group: Survey Probe (3 of 3)
type = "passive"

View File

@@ -7,7 +7,7 @@
# Charges from group: Advanced Blaster Charge (8 of 8)
# Charges from group: Advanced Pulse Laser Crystal (8 of 8)
# Charges from group: Advanced Railgun Charge (8 of 8)
# Charges from group: Projectile Ammo (129 of 129)
# Charges from group: Projectile Ammo (128 of 128)
type = "passive"

View File

@@ -6,4 +6,4 @@ type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("warmScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength"))
fit.ship.increaseItemAttr("warpScrambleStatus", module.getModifiedItemAttr("warpScrambleStrength"))

View File

@@ -1,9 +1,9 @@
# armorHPBonusAddPassive
#
# Used by:
# Subsystems from group: Defensive Systems (16 of 16)
# Subsystems from group: Defensive Systems (9 of 12)
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd"))
fit.ship.increaseItemAttr("armorHP", module.getModifiedItemAttr("armorHPBonusAdd") or 0)

View File

@@ -1,10 +1,15 @@
# boosterArmorHpPenalty
#
# Used by:
# Implants from group: Booster (12 of 48)
# Implants from group: Booster (12 of 54)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Armor Capacity"
# Attribute that this effect targets
attr = "boosterArmorHPPenalty"
def handler(fit, booster, context):
fit.ship.boostItemAttr("armorHP", booster.getModifiedItemAttr("boosterArmorHPPenalty"))
fit.ship.boostItemAttr("armorHP", booster.getModifiedItemAttr(attr))

View File

@@ -5,9 +5,14 @@
# Implants named like: Mindflood Booster (3 of 4)
# Implants named like: Sooth Sayer Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Armor Repair Amount"
# Attribute that this effect targets
attr = "boosterArmorRepairAmountPenalty"
def handler(fit, booster, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Armor Repair Unit",
"armorDamageAmount", booster.getModifiedItemAttr("boosterArmorRepairAmountPenalty"))
"armorDamageAmount", booster.getModifiedItemAttr(attr))

View File

@@ -4,8 +4,13 @@
# Implants named like: Blue Pill Booster (3 of 5)
# Implants named like: Exile Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Cap Capacity"
# Attribute that this effect targets
attr = "boosterCapacitorCapacityPenalty"
def handler(fit, booster, context):
fit.ship.boostItemAttr("capacitorCapacity", booster.getModifiedItemAttr("boosterCapacitorCapacityPenalty"))
fit.ship.boostItemAttr("capacitorCapacity", booster.getModifiedItemAttr(attr))

View File

@@ -1,10 +1,15 @@
# boosterMaxVelocityPenalty
#
# Used by:
# Implants from group: Booster (12 of 48)
# Implants from group: Booster (12 of 54)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Velocity"
# Attribute that this effect targets
attr = "boosterMaxVelocityPenalty"
def handler(fit, booster, context):
fit.ship.boostItemAttr("maxVelocity", booster.getModifiedItemAttr("boosterMaxVelocityPenalty"))
fit.ship.boostItemAttr("maxVelocity", booster.getModifiedItemAttr(attr))

View File

@@ -4,9 +4,14 @@
# Implants named like: Exile Booster (3 of 4)
# Implants named like: Mindflood Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Missile Explosion Radius"
# Attribute that this effect targets
attr = "boosterMissileAOECloudPenalty"
def handler(fit, booster, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
"aoeCloudSize", booster.getModifiedItemAttr("boosterMissileAOECloudPenalty"))
"aoeCloudSize", booster.getModifiedItemAttr(attr))

View File

@@ -3,9 +3,14 @@
# Used by:
# Implants named like: Blue Pill Booster (3 of 5)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Missile Explosion Velocity"
# Attribute that this effect targets
attr = "boosterAOEVelocityPenalty"
def handler(fit, booster, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
"aoeVelocity", booster.getModifiedItemAttr("boosterAOEVelocityPenalty"))
"aoeVelocity", booster.getModifiedItemAttr(attr))

View File

@@ -4,9 +4,14 @@
# Implants named like: Crash Booster (3 of 4)
# Implants named like: X Instinct Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Missile Velocity"
# Attribute that this effect targets
attr = "boosterMissileVelocityPenalty"
def handler(fit, booster, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"),
"maxVelocity", "boosterMissileVelocityPenalty")
"maxVelocity", booster.getModifiedItemAttr(attr))

View File

@@ -9,7 +9,7 @@ type = "passive"
def handler(fit, container, context):
level = container.level if "skill" in context else 1
attrs = ("boosterTurretFalloffPenalty", "boosterTurretOptimalRange", "boosterTurretTrackingPenalty")
attrs = ("boosterTurretFalloffPenalty", "boosterTurretOptimalRangePenalty", "boosterTurretTrackingPenalty")
for attr in attrs:
fit.boosters.filteredItemBoost(lambda booster: True, attr,
container.getModifiedItemAttr("boosterAttributeModifier") * level)

View File

@@ -0,0 +1,20 @@
# boosterShieldBoostAmountPenaltyShieldSkills
#
# Used by:
# Implants named like: Crash Booster (3 of 4)
# Implants named like: Frentix Booster (3 of 4)
# Implants named like: Mindflood Booster (3 of 4)
type = "boosterSideEffect"
# User-friendly name for the side effect
displayName = "Shield Boost"
# Attribute that this effect targets
attr = "boosterShieldBoostAmountPenalty"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Shield Operation"), "shieldBonus",
src.getModifiedItemAttr("boosterShieldBoostAmountPenalty"))
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Capital Shield Operation"), "shieldBonus",
src.getModifiedItemAttr("boosterShieldBoostAmountPenalty"))

View File

@@ -1,10 +1,15 @@
# boosterShieldCapacityPenalty
#
# Used by:
# Implants from group: Booster (12 of 48)
# Implants from group: Booster (12 of 54)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Shield Capacity"
# Attribute that this effect targets
attr = "boosterShieldCapacityPenalty"
def handler(fit, booster, context):
fit.ship.boostItemAttr("shieldCapacity", booster.getModifiedItemAttr("boosterShieldCapacityPenalty"))
fit.ship.boostItemAttr("shieldCapacity", booster.getModifiedItemAttr(attr))

View File

@@ -4,9 +4,14 @@
# Implants named like: Drop Booster (3 of 4)
# Implants named like: X Instinct Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Turret Falloff"
# Attribute that this effect targets
attr = "boosterTurretFalloffPenalty"
def handler(fit, booster, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
"falloff", booster.getModifiedItemAttr("boosterTurretFalloffPenalty"))
"falloff", booster.getModifiedItemAttr(attr))

View File

@@ -5,9 +5,14 @@
# Implants named like: Mindflood Booster (3 of 4)
# Implants named like: Sooth Sayer Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Turret Optimal Range"
# Attribute that this effect targets
attr = "boosterTurretOptimalRangePenalty"
def handler(fit, booster, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
"maxRange", booster.getModifiedItemAttr("boosterTurretOptimalRange"))
"maxRange", booster.getModifiedItemAttr(attr))

View File

@@ -4,9 +4,14 @@
# Implants named like: Exile Booster (3 of 4)
# Implants named like: Frentix Booster (3 of 4)
type = "boosterSideEffect"
activeByDefault = False
# User-friendly name for the side effect
displayName = "Turret Tracking"
# Attribute that this effect targets
attr = "boosterTurretTrackingPenalty"
def handler(fit, booster, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Gunnery"),
"trackingSpeed", booster.getModifiedItemAttr("boosterTurretTrackingPenalty"))
"trackingSpeed", booster.getModifiedItemAttr(attr))

View File

@@ -1,11 +1,9 @@
# capacitorCapacityAddPassive
#
# Used by:
# Subsystems from group: Engineering Systems (16 of 16)
# Subsystem: Tengu Offensive - Magnetic Infusion Basin
# Items from category: Subsystem (20 of 48)
type = "passive"
def handler(fit, module, context):
fit.ship.increaseItemAttr("capacitorCapacity",
module.getModifiedItemAttr("capacitorCapacity"))
fit.ship.increaseItemAttr("capacitorCapacity", module.getModifiedItemAttr("capacitorCapacity") or 0)

View File

@@ -1,9 +1,10 @@
# capacityAddPassive
#
# Used by:
# Subsystems from group: Defensive Systems (16 of 16)
# Subsystems named like: Defensive Covert Reconfiguration (4 of 4)
# Subsystem: Legion Defensive - Nanobot Injector
type = "passive"
def handler(fit, subsystem, context):
fit.ship.increaseItemAttr("capacity", subsystem.getModifiedItemAttr("capacity") or 0)
fit.ship.increaseItemAttr("capacity", subsystem.getModifiedItemAttr("cargoCapacityAdd") or 0)

View File

@@ -8,6 +8,5 @@ type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"),
"maxRange",
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Leadership"), "maxRange",
src.getModifiedItemAttr("areaOfEffectBonus") * src.level)

View File

@@ -4,10 +4,10 @@
# Ships from group: Carrier (4 of 4)
# Ships from group: Combat Battlecruiser (13 of 13)
# Ships from group: Command Ship (8 of 8)
# Ships from group: Force Auxiliary (5 of 5)
# Ships from group: Force Auxiliary (6 of 6)
# Ships from group: Supercarrier (6 of 6)
# Ships from group: Titan (6 of 6)
# Subsystems named like: Defensive Warfare Processor (4 of 4)
# Ships from group: Titan (7 of 7)
# Subsystems named like: Offensive Support Processor (4 of 4)
# Ship: Orca
# Ship: Rorqual
type = "passive"

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Ship: Enforcer
# Ship: Marshal
# Ship: Pacifier
type = "passive"

View File

@@ -1,7 +1,7 @@
# covertCynoCpuPenalty
#
# Used by:
# Subsystems from group: Offensive Systems (12 of 16)
# Subsystems from group: Defensive Systems (8 of 12)
type = "passive"

View File

@@ -1,14 +1,14 @@
# covertOpsAndReconOpsCloakModuleDelayBonus
#
# Used by:
# Ships from group: Black Ops (4 of 4)
# 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: Expedition Frigate (2 of 2)
# Ships from group: Force Recon Ship (7 of 7)
# Ships from group: Stealth Bomber (4 of 4)
# Ships from group: Force Recon Ship (8 of 8)
# Ships from group: Stealth Bomber (5 of 5)
# Ships named like: Stratios (2 of 2)
# Subsystems named like: Offensive Covert Reconfiguration (4 of 4)
# Subsystems named like: Defensive Covert Reconfiguration (4 of 4)
# Ship: Astero
# Ship: Rabisu
type = "passive"

View File

@@ -1,7 +1,7 @@
# covertOpsCloakCpuPenalty
#
# Used by:
# Subsystems from group: Offensive Systems (12 of 16)
# Subsystems from group: Defensive Systems (8 of 12)
type = "passive"

View File

@@ -8,4 +8,4 @@ runTime = "early"
def handler(fit, ship, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Cloaking"),
"cpu", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops")
"cpu", ship.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops")

View File

@@ -5,7 +5,9 @@
# Ship: Astero
# Ship: Enforcer
# Ship: Pacifier
# Ship: Victor
# Ship: Victorieux Luxury Yacht
# Ship: Virtuoso
type = "passive"
runTime = "early"

View File

@@ -1,8 +1,8 @@
# covertOpsCpuBonus1
#
# Used by:
# Ships from group: Stealth Bomber (4 of 4)
# Subsystems named like: Offensive Covert Reconfiguration (4 of 4)
# Ships from group: Stealth Bomber (4 of 5)
# Subsystems named like: Defensive Covert Reconfiguration (4 of 4)
type = "passive"

View File

@@ -0,0 +1,10 @@
# covertOpsStealthBomberSiegeMissileLauncherCPUNeedBonus
#
# Used by:
# Ship: Virtuoso
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredItemMultiply(lambda mod: mod.item.group.name == "Missile Launcher Torpedo",
"cpu", ship.getModifiedItemAttr("stealthBomberLauncherCPU"))

View File

@@ -1,7 +1,7 @@
# covertOpsStealthBomberSiegeMissileLauncerPowerNeedBonus
# covertOpsStealthBomberSiegeMissileLauncherPowerNeedBonus
#
# Used by:
# Ships from group: Stealth Bomber (4 of 4)
# Ships from group: Stealth Bomber (5 of 5)
type = "passive"

View File

@@ -1,8 +1,8 @@
# covertOpsStealthBomberTargettingDelayBonus
#
# Used by:
# Ships from group: Black Ops (4 of 4)
# Ships from group: Stealth Bomber (4 of 4)
# Ships from group: Black Ops (5 of 5)
# Ships from group: Stealth Bomber (5 of 5)
# Ship: Caedes
# Ship: Chremoas
# Ship: Endurance

View File

@@ -1,7 +1,7 @@
# cpuOutputAddCpuOutputPassive
#
# Used by:
# Items from category: Subsystem (40 of 80)
# Subsystems from group: Offensive Systems (8 of 12)
type = "passive"

View File

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

View File

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

View File

@@ -1,8 +1,7 @@
# damageControl
#
# Used by:
# Variations of module: Damage Control I (16 of 16)
# Module: Civilian Damage Control
# Modules from group: Damage Control (22 of 27)
type = "passive"

View File

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

View File

@@ -0,0 +1,18 @@
# doomsdayAOEECM
#
# Used by:
# Module: ECM Jammer Burst Projector
from eos.modifiedAttributeDict import ModifiedAttributeDict
type = "projected", "active"
def handler(fit, module, context, **kwargs):
if "projected" in context:
# jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str))
strModifier = 1 - module.getModifiedItemAttr("scan{0}StrengthBonus".format(fit.scanType)) / fit.scanStrength
if 'effect' in kwargs:
strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])
fit.ecmProjectedStr *= strModifier

View File

@@ -1,8 +1,7 @@
# droneBandwidthAddPassive
#
# Used by:
# Subsystems from group: Engineering Systems (13 of 16)
# Subsystems from group: Offensive Systems (16 of 16)
# Subsystems from group: Offensive Systems (12 of 12)
type = "passive"

View File

@@ -1,7 +1,7 @@
# droneCapacityAdddroneCapacityPassive
#
# Used by:
# Items from category: Subsystem (42 of 80)
# Subsystems from group: Offensive Systems (12 of 12)
type = "passive"

View File

@@ -3,6 +3,7 @@
# Used by:
# Implants named like: Zainou 'Gypsy' CPU Management EE (6 of 6)
# Modules named like: Processor Overclocking Unit (8 of 8)
# Subsystems named like: Core Electronic Efficiency Gate (2 of 2)
# Implant: Genolution Core Augmentation CA-2
# Skill: CPU Management
type = "passive"

View File

@@ -1,7 +1,7 @@
# eliteBonusBlackOpsCloakVelocity2
#
# Used by:
# Ships from group: Black Ops (4 of 4)
# Ships from group: Black Ops (5 of 5)
type = "passive"

View File

@@ -0,0 +1,10 @@
# eliteBonusBlackOpsScramblerRange4
#
# Used by:
# Ship: Marshal
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Warp Scrambler", "maxRange",
src.getModifiedItemAttr("eliteBonusBlackOps4"), stackingPenalties=True, skill="Black Ops")

View File

@@ -0,0 +1,9 @@
# eliteBonusBlackOpsWarpVelocity1
#
# Used by:
# Ship: Marshal
type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusBlackOps1"), stackingPenalties=True, skill="Black Ops")

View File

@@ -0,0 +1,10 @@
# eliteBonusBlackOpsWebRange3
#
# Used by:
# Ship: Marshal
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name == "Stasis Web", "maxRange",
src.getModifiedItemAttr("eliteBonusBlackOps3"), stackingPenalties=True, skill="Black Ops")

View File

@@ -7,4 +7,4 @@ type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"),
"emDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops")
"emDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops")

View File

@@ -2,10 +2,11 @@
#
# Used by:
# Ship: Hound
# Ship: Virtuoso
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"),
"explosiveDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"),
"explosiveDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"),
skill="Covert Ops")

View File

@@ -7,5 +7,5 @@ type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"),
"kineticDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"),
"kineticDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"),
skill="Covert Ops")

View File

@@ -2,10 +2,11 @@
#
# Used by:
# Ship: Nemesis
# Ship: Virtuoso
type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Bomb Deployment"),
"thermalDamage", ship.getModifiedItemAttr("eliteBonusCoverOps1"),
"thermalDamage", ship.getModifiedItemAttr("eliteBonusCovertOps1"),
skill="Covert Ops")

View File

@@ -7,5 +7,5 @@ type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.group.name in ("Energy Nosferatu", "Energy Neutralizer"),
"falloffEffectiveness", src.getModifiedItemAttr("eliteBonusCoverOps1"),
"falloffEffectiveness", src.getModifiedItemAttr("eliteBonusCovertOps1"),
stackingPenalties=True, skill="Covert Ops")

View File

@@ -7,5 +7,5 @@ type = "passive"
def handler(fit, ship, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.group.name == "Scanner Probe",
"baseSensorStrength", ship.getModifiedItemAttr("eliteBonusCoverOps2"),
"baseSensorStrength", ship.getModifiedItemAttr("eliteBonusCovertOps2"),
skill="Covert Ops")

View File

@@ -6,4 +6,4 @@ type = "passive"
def handler(fit, src, context):
fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusCoverOps1"), skill="Covert Ops")
fit.ship.boostItemAttr("warpSpeedMultiplier", src.getModifiedItemAttr("eliteBonusCovertOps1"), skill="Covert Ops")

View File

@@ -0,0 +1,10 @@
# eliteBonusCovertOpsSHTDamage3
#
# Used by:
# Ship: Virtuoso
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Small Hybrid Turret"), "damageMultiplier",
src.getModifiedItemAttr("eliteBonusCovertOps3"), skill="Covert Ops")

View File

@@ -1,7 +1,4 @@
# eliteBonusGunshipDroneCapacity2
#
# Used by:
# Ship: Ishkur
# Not used by any item
type = "passive"

View File

@@ -0,0 +1,7 @@
# Not used by any item
type = "passive"
def handler(fit, src, context):
fit.drones.filteredItemBoost(lambda mod: mod.item.requiresSkill("Drones"), "trackingSpeed",
src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates")

View File

@@ -0,0 +1,10 @@
# eliteBonusGunshipEMMissileDamage1
#
# Used by:
# Ship: Jaguar
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "emDamage",
src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -0,0 +1,10 @@
# eliteBonusGunshipExplosionVelocity2
#
# Used by:
# Ship: Jaguar
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "aoeVelocity",
src.getModifiedItemAttr("eliteBonusGunship2"), stackingPenalties=True, skill="Assault Frigates")

View File

@@ -0,0 +1,10 @@
# eliteBonusGunshipExplosiveMissileDamage1
#
# Used by:
# Ship: Jaguar
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "explosiveDamage",
src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -0,0 +1,10 @@
# eliteBonusGunshipKineticMissileDamage1
#
# Used by:
# Ship: Jaguar
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "kineticDamage",
src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -1,7 +1,4 @@
# eliteBonusGunshipProjectileDamage2
#
# Used by:
# Ship: Jaguar
# Not used by any item
type = "passive"

View File

@@ -1,7 +1,4 @@
# eliteBonusGunshipProjectileOptimal1
#
# Used by:
# Ship: Jaguar
# Not used by any item
type = "passive"

View File

@@ -0,0 +1,10 @@
# eliteBonusGunshipThermalMissileDamage1
#
# Used by:
# Ship: Jaguar
type = "passive"
def handler(fit, src, context):
fit.modules.filteredChargeBoost(lambda mod: mod.charge.requiresSkill("Missile Launcher Operation"), "thermalDamage",
src.getModifiedItemAttr("eliteBonusGunship1"), skill="Assault Frigates")

View File

@@ -0,0 +1,10 @@
# eliteCovertOpsBonusArmorRepAmount4
#
# Used by:
# Ship: Virtuoso
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount",
src.getModifiedItemAttr("eliteBonusCovertOps4"), skill="Covert Ops")

View File

@@ -0,0 +1,10 @@
# eliteReconBonusArmorRepAmount3
#
# Used by:
# Ship: Victor
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Repair Systems"), "armorDamageAmount",
src.getModifiedItemAttr("eliteBonusReconShip3"), skill="Recon Ships")

View File

@@ -0,0 +1,10 @@
# eliteReconBonusMHTDamage1
#
# Used by:
# Ship: Victor
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemBoost(lambda mod: mod.item.requiresSkill("Medium Hybrid Turret"), "damageMultiplier",
src.getModifiedItemAttr("eliteBonusReconShip1"), skill="Recon Ships")

View File

@@ -4,6 +4,7 @@
# Ship: Huginn
# Ship: Moracha
# Ship: Rapier
# Ship: Victor
type = "passive"

View File

@@ -12,7 +12,7 @@ def handler(fit, src, context, **kwargs):
amount = src.getModifiedItemAttr("powerTransferAmount")
time = src.getModifiedItemAttr("duration")
if 'effect' in kwargs:
if 'effect' in kwargs and "projected" in context:
amount *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])
if "projected" in context:

View File

@@ -3,6 +3,7 @@
# Used by:
# Implants named like: Inherent Implants 'Squire' Power Grid Management EG (6 of 6)
# Modules named like: Ancillary Current Router (8 of 8)
# Subsystems named like: Core Augmented Reactor (4 of 4)
# Implant: Genolution Core Augmentation CA-1
# Skill: Power Grid Management
type = "passive"

View File

@@ -1,7 +1,7 @@
# entosisDurationMultiply
#
# Used by:
# Items from market group: Ships > Capital Ships (28 of 37)
# Items from market group: Ships > Capital Ships (31 of 40)
type = "passive"

View File

@@ -11,13 +11,14 @@ displayName = "ECM"
prefix = "fighterAbilityECM"
type = "projected", "active"
grouped = True
def handler(fit, module, context, **kwargs):
if "projected" not in context:
return
# jam formula: 1 - (1- (jammer str/ship str))^(# of jam mods with same str))
strModifier = 1 - module.getModifiedItemAttr("{}Strength{}".format(prefix, fit.scanType)) / fit.scanStrength
strModifier = 1 - (module.getModifiedItemAttr("{}Strength{}".format(prefix, fit.scanType)) * module.amountActive) / fit.scanStrength
if 'effect' in kwargs:
strModifier *= ModifiedAttributeDict.getResistance(fit, kwargs['effect'])

View File

@@ -9,11 +9,12 @@ from eos.modifiedAttributeDict import ModifiedAttributeDict
displayName = "Energy Neutralizer"
prefix = "fighterAbilityEnergyNeutralizer"
type = "active", "projected"
grouped = True
def handler(fit, src, context, **kwargs):
if "projected" in context:
amount = src.getModifiedItemAttr("{}Amount".format(prefix))
amount = src.getModifiedItemAttr("{}Amount".format(prefix)) * src.amountActive
time = src.getModifiedItemAttr("{}Duration".format(prefix))
if 'effect' in kwargs:

View File

@@ -14,7 +14,8 @@ runTime = "late"
def handler(fit, module, context):
module.boostItemAttr("maxVelocity", module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSpeedBonus"))
module.boostItemAttr("maxVelocity", module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSpeedBonus"),
stackingPenalties=True)
module.boostItemAttr("signatureRadius",
module.getModifiedItemAttr("fighterAbilityMicroWarpDriveSignatureRadiusBonus"),
stackingPenalties=True)

View File

@@ -6,13 +6,13 @@ effects, and thus this effect file contains some custom information useful only
# User-friendly name for the ability
displayName = "Stasis Webifier"
prefix = "fighterAbilityStasisWebifier"
type = "active", "projected"
grouped = True
def handler(fit, src, context):
if "projected" not in context:
return
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("{}SpeedPenalty".format(prefix)))
fit.ship.boostItemAttr("maxVelocity", src.getModifiedItemAttr("{}SpeedPenalty".format(prefix)) * src.amountActive,
stackingPenalties=True)

View File

@@ -8,9 +8,10 @@ effects, and thus this effect file contains some custom information useful only
displayName = "Warp Disruption"
prefix = "fighterAbilityWarpDisruption"
type = "active", "projected"
grouped = True
def handler(fit, src, context):
if "projected" not in context:
return
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("{}PointStrength".format(prefix)))
fit.ship.increaseItemAttr("warpScrambleStatus", src.getModifiedItemAttr("{}PointStrength".format(prefix)) * src.amountActive)

View File

@@ -2,6 +2,7 @@
#
# Used by:
# Modules named like: Memetic Algorithm Bank (8 of 8)
# Implant: Neural Lace 'Blackglass' Net Intrusion 920-40
# Implant: Poteque 'Prospector' Environmental Analysis EY-1005
# Implant: Poteque 'Prospector' Hacking HC-905
# Skill: Hacking

View File

@@ -0,0 +1,9 @@
# hackingVirusStrengthBonus
#
# Used by:
# Implant: Neural Lace 'Blackglass' Net Intrusion 920-40
type = "passive"
def handler(fit, src, context):
fit.modules.filteredItemIncrease(lambda mod: mod.item.requiresSkill("Hacking"), "virusStrength", src.getModifiedItemAttr("virusStrengthBonus"))

View File

@@ -1,8 +1,7 @@
# hardPointModifierEffect
#
# Used by:
# Subsystems from group: Engineering Systems (16 of 16)
# Subsystems from group: Offensive Systems (16 of 16)
# Subsystems from group: Offensive Systems (12 of 12)
type = "passive"

View File

@@ -1,7 +1,4 @@
# massAddPassive
#
# Used by:
# Items from category: Subsystem (80 of 80)
# Not used by any item
type = "passive"

View File

@@ -1,7 +1,7 @@
# maxTargetRangeAddPassive
#
# Used by:
# Subsystems from group: Electronic Systems (16 of 16)
# Subsystems named like: Propulsion Interdiction Nullifier (4 of 4)
type = "passive"

View File

@@ -1,7 +1,4 @@
# maxVelocityAddPassive
#
# Used by:
# Subsystems from group: Propulsion Systems (16 of 16)
# Not used by any item
type = "passive"

View File

@@ -0,0 +1,13 @@
# mediumRemoteRepFittingAdjustment
#
# Used by:
# Variations of module: Medium Remote Armor Repairer I (12 of 12)
# Variations of module: Medium Remote Shield Booster I (11 of 11)
# Module: Medium Ancillary Remote Armor Repairer
# Module: Medium Ancillary Remote Shield Booster
type = "passive"
def handler(fit, module, context):
module.multiplyItemAttr("power", module.getModifiedItemAttr("mediumRemoteRepFittingMultiplier"))
module.multiplyItemAttr("cpu", module.getModifiedItemAttr("mediumRemoteRepFittingMultiplier"))

View File

@@ -3,7 +3,7 @@
# Used by:
# Ships from group: Covert Ops (7 of 7)
# Ships named like: Stratios (2 of 2)
# Subsystems named like: Electronics Emergent Locus Analyzer (4 of 4)
# Subsystems named like: Defensive Covert Reconfiguration (4 of 4)
# Ship: Astero
# Ship: Heron
# Ship: Imicus

View File

@@ -1,8 +1,8 @@
# miningInfoMultiplier
#
# Used by:
# Charges from group: Mining Crystal (30 of 30)
# Charges named like: Mining Crystal (32 of 32)
# Charges from group: Mining Crystal (40 of 40)
# Charges named like: Mining Crystal (42 of 42)
type = "passive"

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