Aldriana / ShadowCraft-Engine

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

4.2 update #83

Closed dazer closed 13 years ago

dazer commented 13 years ago

Copy paste of the previous closed issue. I'm keeping this issue open to discus what needs to be done and why (new features, or more trinkets, or changes to the class that get released. Will be commenting on how I do that in the pull request.

Not much to change just yet, but there're some trinkets already datamined (and discussed in EJ). I'm pullin a request with the easiest ones and opening discussion on how to model the others.

-Hungerer: When using an ability causes your Energy or Focus to fall below 20% of your maximum, you will gain 1532/1730 haste rating for 15 sec. This cannot occur more often than once per minute. (Name of the buff is 'Devour')

Can be coded as an on use effect

-Ancient Petrified Seed: Increases your Agility by 1277/1441 for 15 sec. (1 Min Cooldown)

Straightforward 'on use' trinket

-Ricket's Magnetic Fireball: Calls down a meteor, burning all enemies within the area for 400 to 442 total Fire damage. (3 Min Cooldown)

Not sure how to go around this: it's not a proc so it shoud be included as a gear buff, but that class only covers stat boosts as of now. The use is worth like 2-3EP (it may as well not be worth it to model) but the trinket itself comes with a big chunk of agi so some users may want to have it.

-Matrix Restabilizer: Your melee and ranged attacks have a chance to grant 1532/1730 critical strike rating, haste rating, or mastery rating, whichever is currently highest. (The description doesn't say, but the uncategorized spell puts the duration at 30'').

Not sure how to go around this: interaction with other trinkets can force the modeler to proc the 'wrong' stat if we take the highest averaged stat, especially if the gearset has two of the stats close enough. Properly modeling the possible uptime of the 3 procs would require some serious refactoring I'm afraid. This could be seen as a proc bahaviour akin to hurricane/avalanche, I remember trying to approach that particular issue with no real success

-2T12: Your melee critical strikes deal 6% additional damage as Fire over 4 sec. (name of the damage proc is 'Burning Wounds')

Not entirely sure how to go around this: treating it as a proc like darkmoon card hurricane with a 'variable' damage (computed in the modeler); or special casing it completely in the modeler with its own get_uptime. I've already put together a fairly awfull hack for the best case scenario, but it's likely that the buff will munch itself, hence a proper proc handling is due. Also, we'd need some testing but I reckon it's fair to asume the proc to tick for 3% for a total of two ticks.

-4T12: Your Tricks of the Trade ability also causes you to gain a 25% increase to one of your combat ratings at random for 30 sec. (Names of the buffs are: master of flames, future on fire, fiery devastation)

Updating the stats (*= 3.25 / 3) in the modeler along with the crit bonus from T11 (and a check for tricks) sounds good enough to me as a ballpark figure. However, I'm not sure how much of an EP variance could the proc expose if we take into account the interaction with other procs. Also, implementing a delay on tricks to fish for procs could be an option to further delvelope the model.

dazer commented 13 years ago

Aldriana wrote:

Hungerer: I think ultimately this can (and should) be modeled properly as a proc; probably define it as a proc with a custom trigger type and I'll come up with logic as to how often your energy drops below the triggering threshhold at some point. In the meantime setting it up as 1/min on-use trinket is probably fine.

Ricket's: Probably is going to need a bit of custom coding, akin to rocket barrage.

Matrix Restabilizer: as we don't know the ICD yet anyway, I'm not going to worry about it; it will, however, need some fancy logic eventually, yes. I have some ideas as to how to tackle this, but it will take some doing to get absolutely right. If you want to put a rough approximation in for now, ignoring procs probably won't be too bad an estimate. It'll slightly overestimate the trinket, but not to an unreasonable extent.

2T12: Honestly, I think its pretty likely that it will work in accordance to the best-case scenario. I could be wrong, but it wouldn't surprise me at all - Ignite, which is fairly similar, stacks across crits. Regardlless, I suspect the best solution is to special case it into compute_damage, sort of like was originally done with Unheeded Warning (i.e., what appears in my branch - I realize that need to be updated, but for the moment it gives the right idea).

4T12: At the very least I'd include the + self.settings.response_time adjustment we use for tricks elsewhere - that is, 1 + .25 / 3 * 30 / * (30 + self.settings.response_time). You're right that ideally we should account for the delay in Tricks triggering, but, eh.

In terms of its interaction with other procs, I'm pretty sure that that can be totally ignored. The averaging is no worse here than it is in the first place for stat procs, so I'd just go with it and call it good.

Thanks for working on this - I've been meaning to get back to this but I just haven't had time. Hopefully I will within the next couple of weeks.`

dazer commented 13 years ago

EDIT: reading the discussion on EJ and what the masteries of SV hunters and Enh. shaman are, I understand that the 'modifiers to its damage' line is no rogue related. Made a commit to model a no crit override. However, the proc itself has been reported to be a melee attack, with 200% crit, and hit/dodge on the melee table, but it goes through armor just like any spell; do we have a consensus on this issue?

Darkmoon Card: Hurricane damage done when triggered has been increased by 40%, however, it can no longer deal critical strikes and no longer receives any modifiers to its damage from the equipping player.

I'm not completely sure what the 'modifiers to its damage[...]' really means. I understand things like vendetta, killing spree, and tricks from other rogues could lie within this category. If that is the case we could special case it in the dps_breakdown methods like this:

for i in damage_breakdown:
    if damage_breakdown[i] == 'lightning_strike':
        pass
    else:
        damage_breakdown *= vendetta_multiplier

The same should be done with killing spree. However, we'd need to contact Antiarc, as he is computing the damage from tricks provided by another rogue on his side and this trinket should not benefit from that either.

I'm fairly happy with most of the modeling for the other trinkets/sets (Ricket's/Aella's true behaviours are unknown yet). If something is out of whack or you feel should be done differently don't hesitate to say so.

dazer commented 13 years ago

EDIT3: the contents of this post are obsolete now. Hemo is fully supported in my fork and the most interesting conclusions are in the 4.2 Changes Discusion thread at EJ. The only thing I omitted there is that, as comented in the pull request, the model for subtlety now shows a higher dps than those for combat and assassination (even in t11heroic gear).

I don't have any particular interest but, with the new buff to hemo, I think it'd be useful to start supporting its usage in a subtlety cycle. I'd imagine the buff would change the 1.1 part of the formula like so (1.1 + 0.4) * 1.45 + .4 (granted we didn't test the dagger/non dagger logic, but this is the worst case scenario, I believe).

For a ilvl 272 weapon and 22100AP: Backstab hits for ~12.3k, hemo_dagger ~9.3k and hemo_axe~9.7k) Damage per energy: backstab ~309 (~337 with glyph and ~0.7 crit rate), hemo_dagger ~322 and hemo_axe~337 These numbers are only non crit strikes so new hemorrhage's dpe would still be lower than that of backstab but it'd generate more CP per second. The tradeoff seems to be less dps from backstab (ambush with a non-dagger may be inferior too but not by much) for a bit higher eviscrate dps, higher IP application rate and higher proc uptime. However, backstab, as of now, almost doubles the damage output of eviscerate and is significantly ahead of IP so the whole thing may have a hard time to beat backstabing.

I imagine hemo usage, if we are to model it, would be akin to that of RvS: always/never/sometimes: -'sometimes' would be to use every 60''/24''. Note that this would be superior only if the glyph's damage is enough to overcome that of shadow dance (unlikely with dagger main hand but not completely outworldly). -'always' (use it as the only CP generator) would open the possibility to use slow non daggers, free the backstab glyph for the eviscerate one (hemorrhage glyph does not tick when hemorrhage's frequency is higer than 1/3 sec., which is most of the time). Also, puncturing wounds would be obsolete and that coupled with coup de grace could free up space for more survavility talents, offensive ones like aggression, or precision (to get some more rating stats), or SnD for cycle stability, etc.

From the little testing I've done on the spec I don't think it could * ever * come out ahead (my wildest guess puts it about 6% behind, best case scenario); but I see some benefits in supporting it if it proves to be decent enough (relatively speaking). Admitedly the comunity is not using the spec very much, but numbers are increasing and I think it'd be good for those users to have some values to gauge the benefits of using hemorrhage for the bleed debuff ('sometimes') or the impact of using the spec in fights where backstab is not generaly an option (Ragnaros, although that's not totaly true). Any thoughts? I may be trying to believe the spec is useful too hard, then again it is expected to scale with gear a lot better and it wouldn't surprise me if it eventually comes out ahead of the other two.

Edit: the disucssion over at EJ has pointed out SS as a filler too. I imagime if hemo with non daggers could be competitive then SS should be too. That was ruled out somewhen in the past but I don't really recall where. Evidence so far pictures backstab to be the go-to filler and maybe there's no strong support for hemo/ss to be properly modeled.

Hacking the model a bit I was able to get some figures for hemo as the filler: it drops from backstab ~25100 to hemo_axe ~23200 and hemo_dagger ~23000 (~8-9% drop overall). The talents need to be switched around to get 3/3 precision and 2/3 ruthlessness to get those numbers plus the glyph of eviscerate takes the place of backstab; I didn't bother to model the hemo dot.

Edit2: as comented in EJ Sinister Calling seems to be adding multiplicatively to Hemorrhage and Backstab (see http://elitistjerks.com/f78/t105429-cataclysm_mechanics_testing/p3/#post1761904 for a test that got overlooked). The 4.2 buff is expected to behave multiplicatively too, both from the wording and some tests the guys at AJ claim to have done. Will push a commit accordingly.

dazer commented 13 years ago

Although the update to 4.2 is still a work in progress, all that has been covered here is already written and pulled. So this should probably be closed too.