Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doubled modifiers from ship not showing in Affected By #154

Closed
blitzmann opened this issue Aug 17, 2014 · 3 comments
Closed

Doubled modifiers from ship not showing in Affected By #154

blitzmann opened this issue Aug 17, 2014 · 3 comments

Comments

@blitzmann
Copy link
Collaborator

https://forums.eveonline.com/default.aspx?g=posts&m=4920037#post4920037

@blitzmann
Copy link
Collaborator Author

Checked on SISI with my alt - shows the same stats between pyfa and SISI.

This could be a bug with multiple modifications of the same attribute not showing up (possible related to work done with #101?). Although, I thought I had specifically checked for this possible regression when working on it.

EDIT: checked with pyfa 1.1.22 which was released before changes in #101 were made, still shows at 1 RoF modification of -25%

@blitzmann blitzmann changed the title Claymore ROF issues Claymore ROF issues / display of modifiers Aug 17, 2014
@blitzmann
Copy link
Collaborator Author

So, this extends past the Claymore as I thought and seems to affect any ship which modifies any attribute twice. The harpy is another example where the optimal range of Small Hybrids is modified by the Assault Frigate and Caldari Frigate skills.

Additionally, if the two skills are at a different level, both modifiers show up. This leads me to believe it's an issue with adding the same modifier information to a set() or dict().

EDIT: it does seem to be a set() issue. from eos.modifiedAttributeDict:

affs.add((modifier, operation, bonus, used)) 

affs is a set of affectors. When dealing with ship bonuses that affect the same attribute with the same modifier, it tries to add it twice:

(<eos.saveddata.ship.Ship object at 0x0825F710>, '*', 0.75, True)
(<eos.saveddata.ship.Ship object at 0x0825F710>, '*', 0.75, True)

Being a set, it disregards the second one because it is not unique.

A fix could be simply switching to a list - I'd have to find all instances of such tho, and make sure there is no regression (EOS may be using set-specific methods for calculation, in which case this issue will probably not get fixed soon)

@blitzmann blitzmann changed the title Claymore ROF issues / display of modifiers Doubled modifiers from ship not showing in Affected By Aug 18, 2014
@blitzmann
Copy link
Collaborator Author

Actually, from what I remember and with playing around with it today, the affector code doesn't actually affect the calculations at all. It simply keeps up with what is affecting what, for the sole use in the Affected By tab. I have a fix pending after I test it a bit more thoroughly

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant