Aldriana / ShadowCraft-Engine

Calculations backend for ShadowCraft, a WoW theorycraft project.
GNU Lesser General Public License v3.0
37 stars 22 forks source link

Updated proc/activated ability data #6

Closed raconzor closed 13 years ago

raconzor commented 13 years ago

Other areas of the framework that need work?

Note that the most recent commit was a revert of part of the agi->crit conversion move contained in an earlier commit that I had already pushed.

Two notes - http://elitistjerks.com/f78/t105429-cataclysm_mechanics_testing/ has the miss/dodge rates as 8/17/29/6.5 which I suspect is a typo but want to confirm.

Also, the way that calc/rogue/init.py and calc/rogue/Aldriana/init.py import their parents is apparently not technically valid - if you try to run those files on their own it fails. From what I read, the /calcs folder needs to be included in sys.path in these files for this to work. In case I'm missing something, I did not make this change.

Aldriana commented 13 years ago

It is a typo in that thread - should be 8/17/27/6.5. I've fixed it.

Re: imports. I honestly don't have a lot of familiarity with setting up this sort of project so its entirely possible that some other stuff needs to be added to make it work correctly/well. Feel free to figure out what that is - for the next little while I'm going to focus on building out a working assassination model, so as what's here is working for the moment I'm personally not going to worry about it overly much.

In terms of other stuff that needs work from a framework perspective:

1) As another general "how do we set this up" point, at some point we'll need to figure out how to do i18n on this. I know in general you import gettext, wrap strings in _(), set up some files to hold translations, etc. - but I'm not entirely clear on the details, so at some point that should be figured out.

2) Once that's done, going through and putting legitimate error messages instead of bare asserts is probably a good idea. Seems to me that we should define an InvalidInputsException (or something like that) and make a point to mostly raise those, so calling programs can easily distinguish between those and stuff breaking. Also note that i18n-ing the error messages in those exceptions so they can be displayed directly would probably make sense.

3) There's some sort of data-entry-ish tasks around putting the rest of the talents and glyphs in. Not terribly hard, but needs to be done at some point.

4) There are probably some other todos floating around in comments, but I don't remember off the top of my head what all of them are.

5) I was thinking about it today, and I think we need to tweak... something, somewhere... to more easily enable EP calculations; there's a few that you can't easily compute by just externally toggling a stat on and off, notably hit and expertise cap related stuff. So the calculations... somewhere... need to be tweaked to allow EP values for yellow hit, spell hit, white hit, and expertise to be generated by manually hacking the right computed values to be the right amount higher, even if that doesn't exactly correspond to a real hit/expertise value.

6) A real test framework might be good at some point - i.e., rather than just having one file that we throw a few sanity checks into, having a real unit test framework that can be used for regression testing seems useful.

7) At some point the calcs.rogue.RogueDamageCalculator level functions need to be built out - in the short term, damage functions in terms of AP and mastery for Envenom, Rupture, Venomous Wounds, IP, and DP would be useful, and eventually we'll want Evis, SS, RvS, Hemo, Main Gauche, etc. as well. Even an autoattack damage function isn't inherently ridiculous. Mastery detection functions akin to the Assassin's Resolve one seems like a good idea. There are probably others as well, but those are the first handful that spring to mind.

Also, if you think of something that you think would help, by all means propose it - I'm sure there's plenty of stuff I haven't thought of in addition to above list of things that I have.

raconzor commented 13 years ago

In the interest of promoting further collaboration, I'm going to push these out as separate issues, and probably claim 1 or 2 for now.