Closed falcon397 closed 5 years ago
Yeah I should get this fixed.
I should note that: 1) You can find the charge in the market browser and right click -> Set as Damage Pattern to work around this. 2) Even though you cannot put in 7.7 / 7.7 into the input boxes (at this time), the damage pattern calcs actually work on percentages. So you can effectively convert this to 50 / 50 and it'll work the same (for example, Void S does 15.4 damage total, 50% of which is Therm, 50% of which is Kin)
Yeah, #2 is close to solving my problem, but not quite, I'm trying to make a comprehensive damage pattern and target resist import for my corp.
On Sun, Jan 17, 2016, 7:37 AM blitzmann notifications@github.com wrote:
Yeah I should get this fixed.
I should note that: 1) You can find the charge in the market browser and right click -> Set as Damage Pattern to work around this. 2) Even though you cannot put in 7.7 / 7.7 into the input boxes (at this time), the damage pattern calcs actually work on percentages. So you can effectively convert this to 50 / 50 and it'll work the same (for example, Void S does 15.4 damage total, 50% of which is Therm, 50% of which is Kin)
— Reply to this email directly or view it on GitHub https://github.com/DarkFenX/Pyfa/issues/505#issuecomment-172342139.
################Damage Patterns###################
DamageProfile=[Pure] EM,100,0,0,0 DamageProfile=[Pure] Thermal,0,100,0,0 DamageProfile=[Pure] Kinetic,0,0,100,0 DamageProfile=[Pure] Explosive,0,0,0,100 DamageProfile=[Hybrids] Iron,0,2,3,0 DamageProfile=[Hybrids] Tungsten,0,2,4,0 DamageProfile=[Hybrids] Iridium,0,3,4,0 DamageProfile=[Hybrids] Lead,0,3,5,0 DamageProfile=[Hybrids] Thorium,0,4,5,0 DamageProfile=[Hybrids] Uranium,0,4,6,0 DamageProfile=[Hybrids] Plutonium,0,5,6,0 DamageProfile=[Hybrids] Antimatter,0,5,7,0 DamageProfile=[Hybrids] Javelin,0,8,6,0 DamageProfile=[Hybrids] Spike,0,4,4,0 DamageProfile=[Hybrids] Null,0,6,5,0 DamageProfile=[Hybrids] Void,0,7.7,7.7,0 DamageProfile=[Lasers] Radio,5,0,0,0 DamageProfile=[Lasers] Microwave,4,2,0,0 DamageProfile=[Lasers] Infrared,5,2,0,0 DamageProfile=[Lasers] Standard,5,3,0,0 DamageProfile=[Lasers] Ultraviolet,6,3,0,0 DamageProfile=[Lasers] Xray,6,4,0,0 DamageProfile=[Lasers] Gamma,7,4,0,0 DamageProfile=[Lasers] Multifrequency,7,5,0,0 DamageProfile=[Lasers] Conflagration,7.7,7.7,0,0 DamageProfile=[Lasers] Scorch,9,2,0,0 DamageProfile=[Lasers] Aurora,5,3,0,0 DamageProfile=[Lasers] Gleam,7,7,0,0 DamageProfile=[Projectiles] Carbonized Lead,0,0,4,1 DamageProfile=[Projectiles] Nuclear,0,0,1,4 DamageProfile=[Projectiles] Proton,3,0,2,0 DamageProfile=[Projectiles] Depleted Uranium,0,3,2,3 DamageProfile=[Projectiles] Titanium Sabot,0,0,6,2 DamageProfile=[Projectiles] Fusion,0,0,2,10 DamageProfile=[Projectiles] Phased Plasma,0,10,2,0 DamageProfile=[Projectiles] EMP,9,0,1,2 DamageProfile=[Projectiles] Quake,0,0,5,9 DamageProfile=[Projectiles] Tremor,0,0,3,5 DamageProfile=[Projectiles] Barrage,0,0,5,6 DamageProfile=[Projectiles] Hail,0,0,3,11 DamageProfile = [Asteroid] Angel Cartel,23,7,26,44 DamageProfile = [Asteroid] Blood Raiders,55,45,0,0 DamageProfile = [Asteroid] Guristas,0,17,83,0 DamageProfile = [Asteroid] Rogue Drone,10,18,28,44 DamageProfile = [Asteroid] Sansha's Nation,58,42,0,0 DamageProfile = [Asteroid] Serpentis,0,53,47,0 DamageProfile = [Deadspace] Angel Cartel,6,9,26,59 DamageProfile = [Deadspace] Blood Raiders,53,47,0,0 DamageProfile = [Deadspace] Guristas,0,19,81,0 DamageProfile = [Deadspace] Rogue Drone,8,34,32,26 DamageProfile = [Deadspace] Sansha's Nation,57,43,0,0 DamageProfile = [Deadspace] Serpentis,0,62,38,0 DamageProfile = [Mission] Amarr Empire,56,43,1,0 DamageProfile = [Mission] Caldari State,0,31,69,0 DamageProfile = [Mission] CONCORD,26,12,20,42 DamageProfile = [Mission] Gallente Federation,0,58,42,0 DamageProfile = [Mission] Khanid,56,40,4,0 DamageProfile = [Mission] Minmatar Republic,14,5,23,58 DamageProfile = [Mission] Mordu,2,32,66,0 DamageProfile = [Mission] Thukker,0,37,7,56 DamageProfile = [Other] Friendlies,13,46,35,6 DamageProfile = [Other] The Law,36,29,24,11 DamageProfile = [Other] Sleepers,29,29,21,21 DamageProfile = [Other] Incursion Sansha's Nation,16,13,36,35
################Target Resists###################
TargetResists = [Asteroid] Angel Cartel,50.0,42.0,34.0,26.0 TargetResists = [Asteroid] Blood Raiders,27.0,35.0,44.0,53.0 TargetResists = [Asteroid] Guristas,51.0,34.0,26.0,43.0 TargetResists = [Asteroid] Rogue Drone,29.0,37.0,46.0,55.0 TargetResists = [Asteroid] Sansha's Nation,30.0,38.0,46.0,55.0 TargetResists = [Asteroid] Serpentis,43.0,35.0,27.0,52.0 TargetResists = [Deadspace] Angel Cartel,57.0,48.0,39.0,30.0 TargetResists = [Deadspace] Blood Raiders,28.0,38.0,47.0,56.0 TargetResists = [Deadspace] Guristas,57.0,38.0,29.0,48.0 TargetResists = [Deadspace] Rogue Drone,33.0,39.0,47.0,55.0 TargetResists = [Deadspace] Sansha's Nation,28.0,37.0,47.0,56.0 TargetResists = [Deadspace] Serpentis,47.0,38.0,29.0,56.0 TargetResists = [Mission] Amarr Empire,26.0,34.0,43.0,51.0 TargetResists = [Mission] CONCORD,42.0,41.0,42.0,42.0 TargetResists = [Mission] Caldari State,54.0,37.0,29.0,46.0 TargetResists = [Mission] Gallente Federation,45.0,36.0,28.0,54.0 TargetResists = [Mission] Khanid,26.0,29.0,37.0,42.0 TargetResists = [Mission] Minmatar Republic,55.0,45.0,38.0,29.0 TargetResists = [Mission] Mordu,42.0,35.0,32.0,35.0 TargetResists = [Mission] Thukker,30.0,27.0,32.0,31.0 TargetResists = [Other] Friendlies,31.0,29.0,32.0,36.0 TargetResists = [Other] Incursion Sansha's Nation,53.0,53.0,53.0,54.0 TargetResists = [Other] Sleepers,30.0,30.0,30.0,30.0 TargetResists = [Other] The Law,31.0,35.0,38.0,40.0
Right, but I'm writing an import for all ammo types as well as for target resists, and I'm organizing then into folders. I tried to download your source code and do it myself, but I'm a c# guy, not really python, so without a debugger I'm useless, and I didn't feel like loading up a Linux vm, tracking down the libraries you're using and installing those, just to find what looks like a data type mismatch, that's just a guess though.
On Sun, Jan 17, 2016, 7:37 AM blitzmann notifications@github.com wrote:
Yeah I should get this fixed.
I should note that: 1) You can find the charge in the market browser and right click -> Set as Damage Pattern to work around this. 2) Even though you cannot put in 7.7 / 7.7 into the input boxes (at this time), the damage pattern calcs actually work on percentages. So you can effectively convert this to 50 / 50 and it'll work the same (for example, Void S does 15.4 damage total, 50% of which is Therm, 50% of which is Kin)
— Reply to this email directly or view it on GitHub https://github.com/DarkFenX/Pyfa/issues/505#issuecomment-172342139.
There are now profiles for NPC ships as well as all the ammo types in markets included by default in Pyfa.
@falcon397 if you don't see them, click on the Help
menu and select Import Database Defaults
. (Make sure you're on the current version first.)
Yeah, #2 is close to solving my problem, but not quite, I'm trying to make a comprehensive damage pattern and target resist import for my corp.
I think you missed the point @blitzmann was making. The damage profiles work off percentages, so if you enter 7.7 kin
and 7.7 therm
this is the exact same as 77 kin
and 77 therm
. It doesn't care about the absolute value, only the percentage.
. @blitzmann you should be able to close this issue as it's been resolved multiple ways now. :)
Gonna leave this open for now until I can get around to it. There are workarounds, but we should handle decimals. :)
Yeah, the database obviously handles decimals (floats!) but if you try and edit it via the GUI it drops them.
My results of a brief digging: gui\patternEditor.py
line 128:
setattr(self, "%sEdit"%type, IntCtrl(self, wx.ID_ANY, 0, wx.DefaultPosition, defSize))
IntCtrl is the thing (subclass of TextCtrl with IntValidator attached) that doesn't allow decimal points in input, I believe. Few words about IntCtrl and decimal points, but I don't see any FloatCtrl in my wxPython installation folder (...Python27\Lib\site-packages\wx-3.0-msw\wx\lib
). Probably it can be replaced by simple TextCtrl with manually written float validator attached, or by wx.lib.masked.numctrl.NumCrtl()
... Are there any negative consequences possible of floating numbers input in that dialog?
This topic has an example of FloatValidator btw... Maybe I can try to fix this? If you @blitzmann say
we should handle decimals. :)
Maybe I can try to fix this?
PLEASE. I'm terrible at wxPython, so if you want to take that on, my hats off to you. @blitzmann is rather busy right now with other things anyway, so if you feel comfortable taking it on, submit and PR and we can review it.
I am also not an expert in wxWidgets, but I can try in a free time. Sadly I have a free time only at weekends :(
Looks into this some to give you a bit more info. Some info:
The database field itself is and int. See https://github.com/pyfa-org/Pyfa/blob/master/eos/db/saveddata/damagePattern.py
So right off that bat we need to do a migration script for current databases to upgrade them to FLOAT.
Not only that, but we are doing IntCtrl: https://github.com/pyfa-org/Pyfa/blob/master/gui/patternEditor.py#L126
I am not sure if there is an equivalent float ctrl. And then finally we convert the type again to INT ensure it's an int here: https://github.com/pyfa-org/Pyfa/blob/master/gui/patternEditor.py#L126
EDIT: sorry, didn't realize the new comments above. You already figured most of this out.
Take a look at the target resist editor. That allows floats, and does custom validation in a janky way to not allow letters to be saved (you can still input them though), I don't know about wx.lib.masked.numctrl.NumCrtl()
, might be useful. But yeah, however you do it works for me, I don't see any problem with either way. Just submit a PR whenever you're ready. :)
The database field itself is an int
So, the issue is deeper than just a GUI input limiation, I also have to fix the database and make a migration script then.. I didn't expect to touch anything inside eos/ :)
So, the issue is deeper than just a GUI input limiation, I also have to fix the database and make a migration script then..
Yep. :)
I'm starting to recall that I also wanted to change these to floats, but then found out that it was a little more cumbersome and decided to leave it alone. Then I promptly forgot about it ;D
Done in 4f784e2eea65aab180dc3eef8e9e9f7af0ecf467
I cannot input decimal points into the fields in the damage pattern editor. I then tried to setup the damage patterns in a text file and attempted to copy them into the application. This matters because some damage types require decimal places of at least one significant digit (for example hybrid void S does 7.7 kin/therm damage).