- added 1/800 block value per point in Armored to the Teeth to NxtStat Armor - this slightly increases the value of AC on gear
- Shield Bash deals damage equal to 20% of AP and has 36 innate threat
- Sunder's threat is 18% of AP
- introduced the ability for you to be crit if you don't have enough defense (gear changes made this possible)
- when you can be crit, worst case calculation assumes you get crit three times as often as the rate implies
- NxtStat Strength wasn't being improved by Vitality
- NxtStat Strength and BV weren't being improved by Eternal Earthstorm
- Created a new sheet “Numbers” this is to provide a place for complex calculations that nobody cares to see, but that need
to be centralized for sheet maintainability
- removed Grace of Air from the options page
- improved Strength of Earth is now 3 ranks for 5/10/15%
- Draenei had too much of a hit bonus (used 22.1 instead of 15.77 - oops)
- allowed unbuffed threat gen to gain from mongoose procs and parry-haste
- added a few more threat cycles for BT/MS
- since I have 3.0 values for SS damage at 70, and SS damage and threat at 80, I'm going to interpolate SS threat at 70 as
scaling at the same rate as the damage
- same deal for revenge
- implemented improved Windfury talent
- slightly reduced Inspiration uptime from priests/shamans
- removed Justified Killing entirely
- added Damage Shield to DPS and TPS calculations
New version of the sheet coming tomorrow, but I wanted to post the patch I made to my php sword and board simulation script to model revenge being added to SnB. This is the new Revenge section.
} elseif ($rev_counter > 3 && $userev && mt_rand(0,7) < 6) { // 80% chance for revenge to be lit up
$totals['revs']++;
$rev_counter = 0;
if (mt_rand(0,9) < $talent) {
$ss_up = 1;
$ss_free = 1;
}
// echo 'Rv';
} else {
Yep, in fact I was kind of waiting on the new damage numbers for Shield Slam and Revenge, but it could be another day or two so I'll just post a new version. Here's the changelist:
- added diminishing returns to dodge and parry (pretty big nerf) - DR on miss can't be easily tested but may exist
- added column to cycle list for free shield slams from sword & board, makes the calculation a little less confusing
- base warrior dodge seems to have changed in the expansion, I'll use the value from EJ pending another look
- when your attack misses or is dodged or parried, it only costs 1/5 of the rage
- Damage Shield can crit and can't be avoided (apparently)
- changed mob block value to 54, seems to be constant across bosses on WWS
- Heroic Strike got a damage buff
- slight correction to Shield Slam damage calculation
- added Blessing of Kings to NxtStat Agility threat calculation, slightly increases value
- changed Armored to the Teeth to 2/4/6 AP per 360 armor
- Revenge can now trigger the Sword and Board bonus
- removed Sunwell debuff entirely
- decided to make block rating count fully for worst case calculation, since if you finish out the attack table with block rating, it could make a big difference in smoothing out your damage intake
- added Shattered Sun Pendant of Resolve procs (gave it 20% uptime)
I can't find anything stronger than a "probably has DR". If somebody has even a rough guess at C for misses, please point it out and I'll put it in the sheet right away.
I updated my simulator to be a little more elegant about changing the lag number. It now tracks the SS and Rev cooldowns in terms of seconds instead of GCDs. I also increased the uptime for Revenge a bit, however this is still just a guess, no theorycrafting behind it.
<?php
// optional parameters
$n = 5000000; // number of GCDs in the simulation
$cycle = 120; // length (in seconds) of the period of combat or cycle length
$talent = 3; // number of talent points in sword & board
$userev = 1; // whether to use revenge in your rotation when it's up
$lag = 50; // number of milliseconds to add to the GCD to account for lag
// variables for the simulation
$ss_up = 0;
$ss_free = 0;
$ss_counter = 0;
$rev_counter = 0;
$totals = array(
'freeslams' => 0,
'slams' => 0,
'devas' => 0,
'revs' => 0
);
// run the simulation
for ($i = 0; $i < $n; $i++) {
$rev_counter += 1.5+$lag/1000;
$ss_counter += 1.5+$lag/1000;
if ($ss_up || $ss_counter >= 6) {
if ($ss_free) $totals['freeslams']++;
$totals['slams']++;
$ss_up = 0;
$ss_free = 0;
$ss_counter = 0;
// echo 'SS<br/>';
} elseif ($rev_counter >= 5 && $userev && mt_rand(0,9) < 9) { // 90% chance for revenge to be lit up
$totals['revs']++;
$rev_counter = 0;
if (mt_rand(0,9) < $talent) {
$ss_up = 1;
$ss_free = 1;
}
// echo 'Rv';
} else {
$totals['devas']++;
if (mt_rand(0,9) < $talent) {
$ss_up = 1;
$ss_free = 1;
}
// echo 'Dv';
}
}
// print the results
$factor = $n*(1.5+$lag/1000)/$cycle;
echo 'In a '.$cycle.'s cycle with '.$lag.'ms lag between moves:<br/>';
echo 'Shield Slams: '.sprintf('%.1f',$totals['slams']/$factor).'<br/>';
echo 'Free Slams: '.sprintf('%.1f',$totals['freeslams']/$factor).'<br/>';
echo 'Devastates: '.sprintf('%.1f',$totals['devas']/$factor).'<br/>';
if ($userev) echo 'Revenges: '.sprintf('%.1f',$totals['revs']/$factor).'<br/>';
?>
Okey, seems I have asked too quick. What I'm meaning is, when shield block is up, you are not blocking for double amount. For example, if you block without shield block for 500, then it's not 1000 with shield block up. It's less. How is that calculated?
I still don't think I understand what you're asking. In my sheet you do block exactly double when you have Shield Block up. Are you saying that you have evidence from the beta to suggest that it doesn't work that way?
After involving a warrior friend in beta, we came up with the following.
He has 755 base block value before shield mastery and meta gem. After calculating in these two multipliers he has 1019 block value. If he blocks without shield block, he stops 1019 damage. If he blocks with shield block up, he stops 1774 damage.
1774 = 1019 + 755 => Amount blocked while shield block is active = block value + base block value
If anyone wants to verify oder falsify this, you are welcome!
Very interesting results Rhi, thanks! I'll put this in the next release of the sheet (not the one I'm about to post), and I'll keep my eye on the situation. If you're interested in doing more testing, it'd be nice to know what happens when you have Shield Block up and get a Critical Block.
- increased damage for Revenge and Shield Slam
- Revenge at 80 now has 121 innate threat (I scaled it down for lvl 70)
- implemented Armor Penetration as a rating
- combined Faerie Fire and Recklessness, they no longer stack and provide the same bonus
- reordered talents to make a little more sense, moved TC to prot, TM to arms, etc etc
- added Concussion Blow talent
- added Concussion Blow as another threat ability, used at every cooldown (it's more rage efficient than HS and doesn't trigger GCD)
Very interesting results Rhi, thanks! I'll put this in the next release of the sheet (not the one I'm about to post), and I'll keep my eye on the situation. If you're interested in doing more testing, it'd be nice to know what happens when you have Shield Block up and get a Critical Block.
This is how it works:
Shield Mastery +30%
Glyph of Blocking +10%
Shield Block +100%
These bonuses are all additive. With all 3 up at the same time, you have 240% of your base block value. Critical blocks are always double whatever current block value you have. A crit block with all 3 bonuses would be for 480% of your base block value.
- assumed a 10% miss/parry rate for Sword & Board simulations, it changes the cycles a little since a miss/parry won't proc SnB
- NxtStat Agility was still increasing BV via Armored to the Teeth, removed that
- Shield Block does not scale with Shield Mastery or Meta Gems
- added RevBoardPlus cycles, where you'd prioritize Revenge over non-free Shield Slams - this will only apply if your lag between moves is greater than 167ms
- changed special attacks to a two-roll system (hit/miss then block/crit/normal)
- Concussion Blow triggers global cooldown again
- gave Taurens 5% base health for Endurance
- made an attempt at moving combat rating conversions into the Numbers sheet
- Night Elves get 2% miss
- corrected the DR calculation for parry, was mistakenly using the dodge cap
- added a preliminary DR calculation for miss, guessing at a cap of 50 until we can nail it down with experiments
- broke down the blocking calculations a little more, should better handle crit block in cases where the hit is being fully blocked
- crit block can no longer affect the “worst case” damage in (“Max DPS In”)
- adjusted Shield Slam damage during Shield Block uptime, was still assuming double the talented value (damage went down)
- adjusted Damage Shield in a similar manner
- allowed Shield Bash to benefit from enrage (still unsure how much damage this ability really does)
- Enrage Modifier wasn't needed on the stats sheet, removed it and targeted everything at Imp. Def. Talent modifier
- separated melee haste from buffs/haste rating from hasted swings due to parry - allows me to get a more accurate parry haste estimate without creating a feedback loop
- allowing expertise to reduce worst case damage, since filling it out will make a significant difference to parry-haste gibs
- added a NxtStat calculation for weapon speed (both tanking and threat sections), it's tricky though as it depends on whether you're maxed out on heroic strikes
- when calculating boss' parry haste, assuming you do 2 instant attacks every 3 seconds (makes expertise look really good)
- removed weapon speed from consideration when looking at weapons, it's impossible to find an optimum and the effect is minimal
- added 15 hit rating to gloves enchant - it was spell hit before, but after 3.0 will just be plain old hit rating
- added all the paladin items we can now acquire that used to suck but now are reasonable choices
- gave the hyjal rep ring a dynamic value for its proc, gave it 20% uptime
- created section on the Options sheet for major glyphs
- added Major Glyph - Glyph of Heroic Strike
- added Major Glyph - Glyph of Revenge (this one was tough but I'm happy with the implementation)
- skipping Mortal Strike and Blocking Glyphs as they can't be created until the xpac hits
- increased Puncture to 3 ranks, they mentioned making it 2 in a blue post once but never followed through
- finished adding the possibility of hit rating on gems, earlier attempt was incomplete
- repaired the popup menus on the GemChoices sheet to show all the gems
Ok, here's a new release, possibly the last I'll do for 3.0@70 - I want to get started converting it to Level 80.
- made eternal earthstorm and shield mastery additive rather than multiplicative
- Shield Bash no longer deals damage, has 36 innate threat
- added Blessing of Sanctuary - assuming “up to 3%” means before block is subtracted
- roughly tried to determine BoSanc's value, looks like if you have a choice you'll want Kings if it's 6% or better, Sanc otherwise
- added a stat summary to the top of the fitting room sheet, for quick comparisons between gear/buffs
- corrected mongoose when being improved by undertalented Blessing of Kings
- enchant chest - defense grants 16 defense, not 15
- took a sample of armory profiles and derived new agi->dodge and agi->crit ratios, along with new base values
- no change made but noted that the armory does not display armored to the teeth in AP total, spreadsheet matches in-game value
- removed Shield Bash as a threat move, added Thunderclap in its place (also added talent)
- Thunderclap crits do 150% damage, not 200%
- Thunderclap is affected by Imp. Def. Stance enrage
- added ring enchants
- changed Sunder threat to 345 + 5% AP
- giving thunderclap the same base miss as everything else - from WWS reports it does not seem to be more than 9-10%
- made sharpening stone +damage contribute to threat calculations
- weapon dps on the stats page was still trying to parse text, changed it to read the data field
- updated definitions for RedGems and YellowGems variables
- significant formatting cleanup for MS Excel (I usually use NeoOffice / OpenOffice)
- on the gem choices sheet, started comparing ISERROR() to FALSE() in NeoOffice instead of 0, helps with MS compatibility