Ever since we reached Patchwerk in July I've been playing around with numbers for sustained dps a lot. To this end I ended up writing a perl script at work to calculate a Frost mage's dps. It handles all the relevant dps talents (though if you use Arcane Instability you need to add it via modifiers), and I even have it working with Winter's Chill. To handle WC it essentially takes the timing of the frostbolts, checks if each bolt applies the debuff via a simple rand roll and then refreshes if necessary. It has helped me evaluate potential gear upgrades (What to prioritize, etc) so I figured it might be useful to someone here. I'm currently writing a similar thing for fire but ignite handling is a bit tricky, I'm likely going to need to thread it and allow for multiple mage calculations for that one to be fun. It becomes even more complicated if you decide that a fire mage will begin scorching to preserve mana at a particular amount or to try to keep an ignite going as some do, so I've been slow on finishing that one up.
Anyhow, a usage example:
Assuming +567 dmg, 10% crit, 7% hit, 3 points in elemental precision, 3 points in winter's chill, mob level 63, 3 points in piercing ice
baksu:~ chris$ ./frostbolt -c10 -d567 -e3 -h7 -l3 -n100000 -p3 -w3
Damage Range: 1035.302 - 1077.702
-- Results over 100000 bolts --
Total DPS: 486
Total +hit: 13
Chance to hit a +3 mob: 96%
There may be a few minor discrepancies in my max values for +hit or such, but when I run the numbers and then look at my dps on Patchwerk it's almost identical so I'm mostly pleased*.
Ah, sorry I didn't clarify. Things like CoE and such are easy enough to add in by hand so I was doing it myself. Good point though, I could potentially add that easily. Enigma and Netherwind should be pretty easy to add as well.
Surprised to see this bumped. I haven't updated it much because I was pondering creating an interface for it, but the interest overall seemed low so I hadn't worked with it much. I'll probably take a look this weekend and add CoE, NW, Arcane Instability and possibly crit from int.
As for wowequip, is it taking into account mob level? If it is then I can check to see where my calcs are a bit off, assuming the example above is correct.