At the moment it's still privative, and many core functions need to be added, but it's quite modular and easily adjustable in its current state to model even extremely weird situations. I made special care to avoid build-in constants and instead import very nearly everything from an external text file, which makes fixing it rather easy.
More to come later as I further refine the model, but it's in (rather good) working condition now. It's got a fully functional counter, hit table, and all the architecture needed in order to incorporate later changes. I'll post a version of it later, once I can tinker with it a bit more and update it with some of the additions I plan on creating tomorrow.
Things to do (short-term)
Correctly model damage. Yeah, yeah, yeah, it's kind of important but sue me. =p Actually a moderately trivial step at this point, as the architecture is all established.Windfury hasn't been modeled yet, but all I have to do is to add in three lines of code. I'll do it tommorow, it's actually pretty simple to model (especially now that it can only trigger off mainhand attacks).- Model additional abilities - Mortal Strike, Slam and Heroic Strike.
- Model multi-target damage (Cleave, Whirlwind, Sweeping Strikes).
- Properly model weapon skill.
Correctly model rage use/generation. Generation is intergral to the damage note above, and once that has been established a rage spending pattern can be written into the code.- Correctly model threat - actually quite trivial, as it's a semi-simple matter of flat modifiers on the numbers given by damage plus bonus threat for certain abilities.
- Complete talent support.
Things to do (medium term)
- Replace the current method of entering stat/gear information with a more modular system - editing a text file, then running the program is clunky at best when you're trying to make minute changes. This will likely involve learning GUI elements, but it's something I can start working on once I've added in all the base information I want. Currently looking at a system where you can store default information in a text file and load it, then edit it and rewrite if you so choose. Hopefully will be combined with multiple 'save slots' for ease of use.
- Writing in different attack patterns is difficult, but far from impossible. What might be interesting is writing a module that would adjust the spending pattern (say, using Hamstring over Heroic Strike between certain rage thresholds on a high-hit, lower-crit set of gear in order to generate more Flurries).
- Correctly model threat versus rage efficiency versus overall damage - now this one is a bit more interesting. Comparing the differences between HS spam vs. Cleave spam vs. Hamstring spam vs. doing _nothing_ and the effect on your threat cap/threat generation? Something to consider Things to do (long term)
- Gear Database. At the moment you have to enter your stats in by hand (and the talent support is almost completely unfinished), although the base architecture is still there. This one is largely grunt work, and it's certainly possible to go without it, so I'm not going to sweat it quite yet.
- One of the biggest features I want to add (related to the gear database) is a system to determine the effects of gear upgrades and prioritize based upon that. Similar theory to the threat generation aspect, really. A simple test would be adding certain stats and seeing the effect, especially if they're semi-constant (gems, anyone?).
- Enchants, trinket procs, weapon procs. Far, far more complicated, and something I will have to tackle eventually, but this is where you start getting into real trouble and bogged down with details that you may or may not be able to verify without extensive testing yourself. As a practical matter this is the bit I'm least excited about, but I'll get to it.
Edited, Sep 20th 2007 8:16pm by RPZip