pyfa-org / Pyfa

Python fitting assistant, cross-platform fitting tool for EVE Online
GNU General Public License v3.0
1.61k stars 409 forks source link

All ammo types into graph on one click #2035

Open PeterGabriel2 opened 5 years ago

PeterGabriel2 commented 5 years ago

Feature request

It would be cool if I could compare multiple ammo on current ship and current weapon in graph on "one click".

Expected behavior:

It should be possible to add new series (line) into graph based on selected ammo. Just select an ammo by menu and add series (line) with current fit + selected ammo.

Actual behavior:

If I want compare what the best damage and range is I have to do this: I have to do many copies of the same fit but with different ammo. For example for Executioner with Dual Light Beam Laser II I have to create let say 7 fits with crystals (Mulifrequency S, Imperial Navy Mulifrequency S, Radio S, Glem S, Aurora S, Xray S, Infra S, ...) then I have to drag and drop those fits into graph.

Detailed steps to reproduce:

With this new feature It should be like this:

Possible problems

If selected fit contains more than 1 type of weapon: (for example 4 energy turrets, 2 missile launchers, 1 rocket launcher) then take only one - the primary weapon - (it is weapon where count of the same weapons is highest). This solution is enough make this problem solved - because in practice you want compare only 1 weapon with this tool - the strongest one.

Fits involved in EFT format (Edit > To Clipboard > EFT):

any fit

DarkFenX commented 5 years ago

I considered it as a few people requested it already. This might be very complex to implement and/or very costly performance-wise, because:

However, I did not look into details, maybe it might be possible with some set of hacks like I used for scram application, battery/caprech effect on cap regen in cap column, etc. Those are very specific and are rather cheap to calculate.

PeterGabriel2 commented 5 years ago

Thanks for reply Dark.

I would not be worried with cost of CPU because when I compare time needed for CPU versus time needed to do this all work manually by user then I can say that CPU cost is nothing.

But the second point - DB session/ORM - yes it can be difficult. I believe so. But maybe if so, then creating a solution with "temporary fit" marked by some "isTemporary=true" attribute can be affordable hack? All fits with this attribute can be deleted automatically when graph is closed/open and manually if graph is still open and fits are removed one by one.

I think when SW is old then hacks are only (economically reasonable) way :-)

DarkFenX commented 5 years ago

FYI it's quite often requested feature, so i started to work on it in ammo_graph branch. My idea is the following:

So far I've completed this concept and coded context menu entry, dialog frame and grabbing correct modules/drones/fighters (which turned out to be not so trivial). When I finalize UI and integrate it with graphs code, we will see what kind of performance disaster it will be.

DarkFenX commented 4 years ago

This is how it looks so far:

image

image

I am yet to add custom drone/fighter set picker, but this should give understanding of how it will look.

And yeah, no actual calculation support has been added yet, but I think UI is a bigger challenge for me.

DarkFenX commented 4 years ago

I got stuck with making decent UI for drones.

Today I decided to merge the ammo_graph branch to re-use functionality implemented for it, in another feature related to adding ammo.

I will try to finalize it at some point, but for now it will be disabled.