This is a damage calculator for martial weapons.
It includes support for
- All martial weapon types.
- All sane, max, damage-related weapon mod combinations.
- All sane mastery levels.
- Input monster armor level -OR- guess monster armor level from level, class, race, and damage type.
- Critical hits are taken into account. Complete calculation of critical hits.
- Armor penetration from sundering mods and/or Strength.
- Double Strikes for auto attacks.
- IAS.
- Overall DPS calculation for auto attacks.
Usage:
Put the appropriate inputs into the fields and hit the "Calculate" button.
Advanced Usage:
Find a "sundering vs vamp" thread and post a link to the calculator.
Please report errors/bugs in this thread. (There's sure to be a few.)
I'd greatly appreciate it if someone with actual html-writing rights on a wiki or PvX or something would stick this on a page somewhere. (Or, better yet, you endow me with rights to go stick it on a page somewhere.)
In the meantime, anyone can use it by copy/pasting the contents of the HMTL Code box into Notepad and saving the result as a html file.
Changelog:
1.1 - fixed double strikes
1.0 - original release
Sreenshot:
HTML Code:
<html> <head> <title>Chthon's Guild Wars Martial Weapon Base Damage Calculator - V1.0</title> <script type="text/javascript"> <!-- function roundNumber(num, dec) { var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec); return result; } function isInt(value){ if((parseFloat(value) == parseInt(value)) && !isNaN(value)){ return true; } else { return false; } } function calccriteye(input){ if (input == 0) return 0.03; if (input == 1) return 0.04; if (input == 2) return 0.05; if (input == 3) return 0.05; if (input == 4) return 0.06; if (input == 5) return 0.07; if (input == 6) return 0.08; if (input == 7) return 0.09; if (input == 8) return 0.09; if (input == 9) return 0.10; if (input == 10) return 0.11; if (input == 11) return 0.12; if (input == 12) return 0.13; if (input == 13) return 0.13; if (input == 14) return 0.14; if (input == 15) return 0.15; if (input == 16) return 0.16; if (input == 17) return 0.17; if (input == 18) return 0.17; if (input == 19) return 0.18; if (input == 20) return 0.19; } function calcfearme(input){ if (input == 0) return 0.05; if (input == 1) return 0.07; if (input == 2) return 0.08; if (input == 3) return 0.10; if (input == 4) return 0.12; if (input == 5) return 0.13; if (input == 6) return 0.15; if (input == 7) return 0.17; if (input == 8) return 0.18; if (input == 9) return 0.20; if (input == 10) return 0.22; if (input == 11) return 0.23; if (input == 12) return 0.25; if (input == 13) return 0.27; if (input == 14) return 0.28; if (input == 15) return 0.30; if (input == 16) return 0.32; if (input == 17) return 0.33; if (input == 18) return 0.35; if (input == 19) return 0.37; if (input == 20) return 0.38; } function calcgfte(input){ if (input == 0) return 0.30; if (input == 1) return 0.35; if (input == 2) return 0.39; if (input == 3) return 0.44; if (input == 4) return 0.49; if (input == 5) return 0.53; if (input == 6) return 0.58; if (input == 7) return 0.63; if (input == 8) return 0.67; if (input == 9) return 0.72; if (input == 10) return 0.77; if (input == 11) return 0.81; if (input == 12) return 0.86; if (input == 13) return 0.91; if (input == 14) return 0.95; if (input >= 15) return 1; } function dostuff(){ var weapontype = document.getElementById("weapontype").value; var mastery = Number(document.getElementById("weaponmastery").value); var critstrikes = Number(document.getElementById("critstrikes").value); var strength = Number(document.getElementById("strength").value); var tactics = Number(document.getElementById("tactics").value); var command = Number(document.getElementById("command").value); var mlvl = Number(document.getElementById("mlvl").value); var mclass = document.getElementById("mclass").value; var basemindmg; var nocritmindmg; var snocritmindmg; var basemaxdmg; var nocritmaxdmg; var snocritmaxdmg; var nocritaveragedmg; var snocritaveragedmg; var finalaveragedmg; var custombonus; var inherentbonus; var slayingbonus; var baseline; var armor; var earmor; var racebonus; var vampbonus; var sunderflag; var elementalflag; var physicalflag; var classbonus; var critbonus; var critdmg; var scritdmg; var basecrit; var anticrit; var finalcrit; var nsncweight; var nsycweight; var ysncweight; var ysycweight; var criteyebonus; var wotabonus; var wotmbonus; var siphonbonus; var fearmebonus; var gftebonus; var attackperiod; var attackperiodmultiplier; var doublestrikechance; var finalanswer; var msg = ""; critbonus = 20; if (weapontype == "sword"){ basemindmg = 15; basemaxdmg = 22; attackperiod = 1.33; vampbonus = 3; } else if (weapontype == "axe"){ basemindmg = 6; basemaxdmg = 28; attackperiod = 1.33; vampbonus = 3; } else if (weapontype == "hammer"){ basemindmg = 19; basemaxdmg = 35; attackperiod = 1.75; vampbonus = 5; } else if (weapontype == "flatbow"){ basemindmg = 15; basemaxdmg = 28; attackperiod = 2.0; vampbonus = 5; } else if (weapontype == "longbow"){ basemindmg = 15; basemaxdmg = 28; attackperiod = 2.4; vampbonus = 5; } else if (weapontype == "hornbow"){ basemindmg = 15; basemaxdmg = 28; attackperiod = 2.7; vampbonus = 5; } else if (weapontype == "dagger"){ basemindmg = 7; basemaxdmg = 17; attackperiod = 1.33; vampbonus = 3; } else if (weapontype == "scythe"){ basemindmg = 9; basemaxdmg = 41; attackperiod = 1.5; critbonus= 5; vampbonus = 5; } else if (weapontype == "spear"){ basemindmg = 14; basemaxdmg = 27; attackperiod = 1.5; vampbonus = 3; } else{ alert("Error: Unknown weapon type."); } if (document.getElementById("customized").checked == true) custombonus = 1.2; else custombonus = 1.0; if (document.getElementById("15over50").checked == true) inherentbonus = 1.15; else inherentbonus = 1.0; if (document.getElementById("slaying").checked == true) slayingbonus = 1.2; else slayingbonus = 1.0; if (document.getElementById("prefix").value != "vampiric") vampbonus = 0; if (document.getElementById("prefix").value == "sundering") sunderflag = true; else sunderflag = false; if ( (document.getElementById("convert").value == "elemental") || ((document.getElementById("prefix").value == "elemental") && (document.getElementById("convert").value != "holyetc")) ) elementalflag = true; else elementalflag = false; if ( (document.getElementById("prefix").value != "elemental") && (document.getElementById("convert").value == "none") ) physicalflag = true; else physicalflag = false; if (mastery < 13) baseline = 5 * mastery; else baseline = 60 + (2 * (mastery - 12)); if (document.getElementById("criteye").checked == true) criteyebonus = calccriteye(critstrikes); else criteyebonus = 0; if ((document.getElementById("wota").checked == true) && (weapontype == "dagger") ) wotabonus = (5 + (2 * critstrikes))/100; else wotabonus = 0; if ((document.getElementById("wotm").checked == true) && (weapontype != "dagger") ) wotmbonus = (3 + (2 * critstrikes))/100; else wotmbonus = 0; if (document.getElementById("siphon").checked == true) siphonbonus = 0.33; else siphonbonus = 0; if ( ((strength > 0) && (!sunderflag)) || ((strength < 1) && (sunderflag)) ){ msg = msg + "Note:\nArmor penetration is known to have rounding errors.\nThe results may be off by one damage per hit.\n\n"; } if ((strength > 0) && (sunderflag)) msg = msg + "Note:\nArmor penertration stacking is known to be buggy.\nThe results may be a little off.\n\n"; if ((document.getElementById("fearme").checked == true) && (weapontype != "flatbow") && (weapontype != "longbow") && (weapontype != "hornbow") && (weapontype != "spear")){ fearmebonus = calcfearme(tactics); msg = msg + "Note:\n\"Fear Me!\" only affects stationary foes.\nThese results assume every foe is stationary.\n\n"; } else fearmebonus = 0; if (strength > 0) msg = msg + "Note:\nStrength only affects attack skills.\nThe DPS results will not be accurate.\nSet Strength to 0 for accurate DPS results.\n\n" if (document.getElementById("gfte").checked == true){ gftebonus = calcgfte(command); msg = msg + "Note:\n\"Go for the Eyes!\" only affects one attack.\nThe DPS results will not be accurate.\nUncheck \"Go for the Eyes!\" for accurate DPS results.\n\n"; } else gftebonus = 0; if (document.getElementById("attacktimemultiplier").value != "other") attackperiodmultiplier = Number(document.getElementById("attacktimemultiplier").value); else { if (isNaN(document.getElementById("otherias").value)){ alert("You are a RED ENGINE GORED ENGINE GORED ENGINE GORED ENGINE GOtard who cannot follow directions.\nResults will assume 0% IAS."); attackperiodmultiplier = 0; } else attackperiodmultiplier = roundNumber(1.0 - (Number(document.getElementById("otherias").value)), 2); if (attackperiodmultiplier < 0){ alert("You are a RED ENGINE GORED ENGINE GORED ENGINE GORED ENGINE GOtard who cannot follow directions.\nResults will assume 0% IAS."); attackperiodmultiplier = 0; } } if (!isInt(document.getElementById("racebonus").value)){ alert("You are a RED ENGINE GORED ENGINE GORED ENGINE GORED ENGINE GOtard who cannot follow directions.\nResults will assume 0 race bonus/penalty."); racebonus = 0; } else { racebonus = Number(document.getElementById("racebonus").value); if (document.getElementById("racepolarityminus").checked == true) racebonus = racebonus * -1; } if (document.getElementById("armorinput").checked == true){ if (!isInt(document.getElementById("useral").value)){ alert("You are a RED ENGINE GORED ENGINE GORED ENGINE GORED ENGINE GOtard who cannot follow directions.\nResults will assume 60 armor."); armor = 60; } else { armor = Number(document.getElementById("useral").value); } } else { if (mclass == "caster") classbonus = 0; if (mclass == "warrior"){ if (physicalflag) classbonus = 40; else classbonus = 20; } if (mclass == "ranger"){ if (elementalflag) classbonus = 40; else classbonus = 10; } if (mclass == "assassin") classbonus = 10; if (mclass == "dervish") classbonus = 10; if (mclass == "paragon") classbonus = 20; armor = (3*mlvl) + classbonus + racebonus; if (armor < 0) armor = 0; } if (strength > 0) earmor = Math.round(armor * (1 - (strength/100))); else earmor = armor; nocritmindmg = Math.round((basemindmg * custombonus * inherentbonus * slayingbonus * Math.pow(2, ((baseline - earmor)/40))) + vampbonus); document.getElementById("nsncmin").innerHTML = nocritmindmg; nocritmaxdmg = Math.round((basemaxdmg * custombonus * inherentbonus * slayingbonus * Math.pow(2, ((baseline - earmor)/40))) + vampbonus); document.getElementById("nsncmax").innerHTML = nocritmaxdmg; nocritaveragedmg = roundNumber(((nocritmindmg + nocritmaxdmg)/2), 3); document.getElementById("nsncave").innerHTML = nocritaveragedmg; critdmg = Math.round((basemaxdmg * custombonus * inherentbonus * slayingbonus * Math.pow(2, (((baseline + critbonus) - earmor)/40))) + vampbonus); document.getElementById("nsycave").innerHTML = critdmg; if (sunderflag){ document.getElementById("nsnclabel").style.display = "inline"; document.getElementById("nsyclabel").style.display = "inline"; document.getElementById("ysncrow").style.display = "table-row"; document.getElementById("ysycrow").style.display = "table-row"; if (strength > 0) earmor = Math.round(armor * (1 - ((strength/100) + 0.20))); else earmor = Math.round(armor * (1 - 0.20)); snocritmindmg = Math.round((basemindmg * custombonus * inherentbonus * slayingbonus * Math.pow(2, ((baseline - earmor)/40))) + vampbonus); document.getElementById("ysncmin").innerHTML = snocritmindmg; snocritmaxdmg = Math.round((basemaxdmg * custombonus * inherentbonus * slayingbonus * Math.pow(2, ((baseline - earmor)/40))) + vampbonus); document.getElementById("ysncmax").innerHTML = snocritmaxdmg; snocritaveragedmg = roundNumber(((snocritmindmg + snocritmaxdmg)/2), 3); document.getElementById("ysncave").innerHTML = snocritaveragedmg; scritdmg = Math.round((basemaxdmg * custombonus * inherentbonus * slayingbonus * Math.pow(2, (((baseline + critbonus) - earmor)/40))) + vampbonus); document.getElementById("ysycave").innerHTML = scritdmg; } else { document.getElementById("nsnclabel").style.display = "none"; document.getElementById("nsyclabel").style.display = "none"; document.getElementById("ysncrow").style.display = "none"; document.getElementById("ysycrow").style.display = "none"; } // basecrit formula: (0.01*Mastery) + ((1 - (0.01*Mastery)) * 0.5 * 2^(((8*AttackerLvl) + (4*Mastery) + (6 * Min{Mastery, ((AttackerLvl + 4)/2)}) - (15* DefenderLvl) - 100) / 40)) minus a flat penalty for non-martial weapons misterd = mastery; if (misterd > 12) misterd = 12; basecrit = (0.01*mastery) + ((1 - (0.01*mastery)) * 0.5 * Math.pow(2, (((8*20) + (4*mastery) + (6 * misterd) - (15* mlvl) - 100) / 40))); anticrit = (1 - basecrit) * (1 - (critstrikes/100)) * ( 1 - criteyebonus) * (1 - wotabonus) * ( 1 - wotmbonus) * (1 - siphonbonus) * (1 - fearmebonus) * (1 - gftebonus); finalcrit = roundNumber((1 - anticrit), 4); if (finalcrit > 1) finalcrit = 1; if (finalcrit > 0.66) msg = msg + "Note:\nCritical hit chances greater than 66% are subject to an unknown (presumably) asymptotic limiting function that prevents them from ever reaching 100%.\nYour actual chance to critical hit is slightly lower than the results displayed.\n\n"; if (sunderflag){ nsncweight = (1 - finalcrit) * 0.8; nsycweight = finalcrit * 0.8; ysncweight = (1 - finalcrit) * 0.2; ysycweight = finalcrit * 0.2; document.getElementById("nsncchance").innerHTML = roundNumber(nsncweight * 100, 4) + "%"; document.getElementById("nsycchance").innerHTML = roundNumber(nsycweight * 100, 4) + "%"; document.getElementById("ysncchance").innerHTML = roundNumber(ysncweight * 100, 4) + "%"; document.getElementById("ysycchance").innerHTML = roundNumber(ysycweight * 100, 4) + "%"; finalaveragedmg = (nsncweight * nocritaveragedmg) + (nsycweight * critdmg) + (ysncweight * snocritaveragedmg) + (ysycweight * scritdmg); } else { document.getElementById("nsncchance").innerHTML = roundNumber((1 - finalcrit) * 100, 4) + "%"; document.getElementById("nsycchance").innerHTML = roundNumber(finalcrit * 100, 4) + "%"; finalaveragedmg = ((1 - finalcrit) * nocritaveragedmg) + (finalcrit * critdmg) } document.getElementById("finalaverage").innerHTML = roundNumber(finalaveragedmg, 3); if (weapontype == "dagger"){ doublestrikechance = 0.02 + (0.02 * mastery); if (document.getElementById("locust").checked == true) doublestrikechance += 0.5; if (strength > 0){ msg = msg + "Note:\nStrength only applies to attack skills, while double strikes only apply to auto attacks.\nDouble strikes will be set to 0%.\nSet Strength to 0 to see the effect of double strikes.\n\n"; doublestrikechance = 0; } finalaveragedmg = finalaveragedmg * (1 + doublestrikechance); document.getElementById("doublestrike").style.display = "table-row"; document.getElementById("doublestrikechance").innerHTML = roundNumber(doublestrikechance * 100, 4) + "%"; } else { document.getElementById("doublestrike").style.display = "none"; } finalanswer = finalaveragedmg / (attackperiod * attackperiodmultiplier); document.getElementById("finaldps").innerHTML = roundNumber(finalanswer, 3); if (msg.length > 1) alert(msg); } //--> </script> </head> <body> <div style="width: 800px; margin-left: auto; margin-right: auto; margin-top: 20px;"> <div style="float: left; width: 388px; height: 700px; padding: 5px; border: black solid 1px;"> <h2 style="text-align: center;">Player</h2> Player is assumed to be level 20.<BR> <BR> <span style="font-weight: bold;">Weapon</span> <form> Type: <select id="weapontype"> <option value="sword" selected="selected">Sword</option> <option value="axe">Axe</option> <option value="hammer">Hammer</option> <option value="flatbow">Flatbow/Shortbow</option> <option value="longbow">Longbow/ Recurve Bow</option> <option value="hornbow">Hornbow</option> <option value="dagger">Dagger</option> <option value="scythe">Scythe</option> <option value="spear">Spear</option> </select> <BR> <input type="checkbox" id="customized" value="customized" checked="checked"/> Customized <input type="checkbox" id="15over50" value="15over50" checked="checked"/> 15^50 <BR> Prefix: <select id="prefix"> <option value="vampiric" selected="selected">Vampiric</option> <option value="sundering">Sundering</option> <option value="elemental">Elemental</option> <option value="other">Other</option> </select> <input type="checkbox" id="slaying" value="slaying"/> Slaying Suffix<BR> Weapon is assumed to be max for its type.<BR> Attribute requirment is assumed to met. </form> <span style="font-weight: bold;">Attributes</span> <form> <select id="weaponmastery"> <option value="7.0">7</option> <option value="8.0">8</option> <option value="9.0">9</option> <option value="10.0">10</option> <option value="11.0">11</option> <option value="12.0">12</option> <option value="13.0">13</option> <option value="14.0" selected="selected">14</option> <option value="15.0">15</option> <option value="16.0">16</option> <option value="17.0">17</option> <option value="18.0">18</option> <option value="19.0">19</option> <option value="20.0">20</option> </select> Applicable Weapon Mastery<BR> <select id="critstrikes"> <option value="0.0" selected="selected">0</option> <option value="1.0">1</option> <option value="2.0">2</option> <option value="3.0">3</option> <option value="4.0">4</option> <option value="5.0">5</option> <option value="6.0">6</option> <option value="7.0">7</option> <option value="8.0">8</option> <option value="9.0">9</option> <option value="10.0">10</option> <option value="11.0">11</option> <option value="12.0">12</option> <option value="13.0">13</option> <option value="14.0">14</option> <option value="15.0">15</option> <option value="16.0">16</option> <option value="17.0">17</option> <option value="18.0">18</option> <option value="19.0">19</option> <option value="20.0">20</option> </select> Critical Strikes<BR> <select id="strength"> <option value="0.0" selected="selected">0</option> <option value="1.0">1</option> <option value="2.0">2</option> <option value="3.0">3</option> <option value="4.0">4</option> <option value="5.0">5</option> <option value="6.0">6</option> <option value="7.0">7</option> <option value="8.0">8</option> <option value="9.0">9</option> <option value="10.0">10</option> <option value="11.0">11</option> <option value="12.0">12</option> <option value="13.0">13</option> <option value="14.0">14</option> <option value="15.0">15</option> <option value="16.0">16</option> <option value="17.0">17</option> <option value="18.0">18</option> <option value="19.0">19</option> <option value="20.0">20</option> </select> Strength<BR> <select id="tactics"> <option value="0.0" selected="selected">0</option> <option value="1.0">1</option> <option value="2.0">2</option> <option value="3.0">3</option> <option value="4.0">4</option> <option value="5.0">5</option> <option value="6.0">6</option> <option value="7.0">7</option> <option value="8.0">8</option> <option value="9.0">9</option> <option value="10.0">10</option> <option value="11.0">11</option> <option value="12.0">12</option> <option value="13.0">13</option> <option value="14.0">14</option> <option value="15.0">15</option> <option value="16.0">16</option> <option value="17.0">17</option> <option value="18.0">18</option> <option value="19.0">19</option> <option value="20.0">20</option> </select> Tactics<BR> </form> <span style="font-weight: bold;">Crit-Boosting Skills</span> <form> <input type="checkbox" id="criteye" value="criteye"/> Critical Eye<Br> <input type="checkbox" id="wota" value="wota"/> Way of the Assassin<Br> <input type="checkbox" id="wotm" value="wotm"/> Way of the Master<Br> <input type="checkbox" id="siphon" value="siphon"/> Siphon Strength<Br> <input type="checkbox" id="fearme" value="fearme"/> "Fear Me!"<Br> <input type="checkbox" id="gfte" value="gfte"/> "Go for the Eyes!" @ <select id="command"> <option value="0.0" selected="selected">0</option> <option value="1.0">1</option> <option value="2.0">2</option> <option value="3.0">3</option> <option value="4.0">4</option> <option value="5.0">5</option> <option value="6.0">6</option> <option value="7.0">7</option> <option value="8.0">8</option> <option value="9.0">9</option> <option value="10.0">10</option> <option value="11.0">11</option> <option value="12.0">12</option> <option value="13.0">13</option> <option value="14.0">14</option> <option value="15.0">15</option> <option value="16.0">16</option> <option value="17.0">17</option> <option value="18.0">18</option> <option value="19.0">19</option> <option value="20.0">20</option> </select> Command<BR> </form> <form> <span style="font-weight: bold;">Damage Type Conversion from Skills</span> <BR> <select id="convert"> <option value="none" selected="selected">None</option> <option value="elemental">Elemental</option> <option value="holyetc">Holy/Dark/Chaos</option> </select> </form> <form> <span style="font-weight: bold;">Increased Attack Speed:</span> <select id="attacktimemultiplier"> <option value="1.0">None</option> <option value="0.85">15%</option> <option value="0.8">20%</option> <option value="0.75">25%</option> <option value="0.67" selected="selected">33%</option> <option value="other">Other</option> </select> <BR> Value for "other": <input type="text" id="otherias" value="0.0"/> <BR> (Enter a decimal value; example: 0.25 for 25%IAS) </form> <form> <span style="font-weight: bold;">Double Strikes</span><BR> <input type="checkbox" id="locust" value="locust"/> Locust's Fury<Br> </form> </div> <div style="float: right; width: 388px; height: 700px; padding: 5px; border: black solid 1px;"> <h2 style="text-align: center;">Monster</h2> <form> <span style="font-weight: bold;">Level:</span> <select id="mlvl"> <option value="20.0" selected="selected">20</option> <option value="21.0">21</option> <option value="22.0">22</option> <option value="23.0">23</option> <option value="24.0">24</option> <option value="25.0">25</option> <option value="26.0">26</option> <option value="27.0">27</option> <option value="28.0">28</option> <option value="29.0">29</option> <option value="30.0">30</option> <option value="31.0">31</option> <option value="32.0">32</option> <option value="33.0">33</option> <option value="34.0">34</option> <option value="35.0">35</option> <option value="36.0">36</option> <option value="37.0">37</option> <option value="38.0">38</option> <option value="39.0">39</option> <option value="40.0">40</option> </select> <BR> </form> <form> <span style="font-weight: bold;">Class:</span> <select id="mclass"> <option value="caster" selected="selected">Caster</option> <option value="warrior">Warrior</option> <option value="ranger">Ranger</option> <option value="assassin">Assassin</option> <option value="dervish">Dervish</option> <option value="paragon">Paragon</option> </select> <BR> </form> <form> <span style="font-weight: bold;">Racial Bonus/Penalty</span><BR> <input type="radio" name="racepolarity" id="racepolarityplus" value="plus" checked /> + <input type="radio" name="racepolarity" id="racepolarityminus" value="minus"/> - Value: <input type="text" id="racebonus" value="0"/> <BR> (Enter an integer.) <BR> </form> <form> <span style="font-weight: bold;">Armor Level</span><BR> <input type="radio" name="armorchoice" id="armorguess" value="guess" checked /> Guess AL based on level, class, race, & damage type.<BR> <input type="radio" name="armorchoice" id="armorinput" value="give" /> Use this AL value: <input type="text" id="useral" value="60"/><BR> (Enter an integer.) <BR> </form> </div> <div style="clear:both; width: 788px; padding: 5px; border: black solid 1px;"> <input type="submit" value="Calculate" style="width: 100px; margin-left: 344px;" onclick="dostuff()"/> </div> <div style="clear:both; width: 788px; padding: 5px; border: black solid 1px;"> <h2 style="text-align: center;">Results</h2> <table cellpadding="5" border="1" width="100%"> <tr> <th> </th> <th>Chance to Occur</th> <th>Min Damage</th> <th>Max Damage</th> <th>Average Damage</th> </tr> <tr> <th><span style="display: none;" id="nsnclabel">No Sundering, </span>No Critical Hit</th> <td align="right" id="nsncchance"> </td> <td align="right" id="nsncmin"> </td> <td align="right" id="nsncmax"> </td> <td align="right" id="nsncave"> </td> </tr> <tr> <th><span style="display: none;" id="nsyclabel">No Sundering, </span>Critical Hit</th> <td align="right" id="nsycchance"> </td> <td align="right" id="nsycmin"> </td> <td align="right" id="nsycmax"> </td> <td align="right" id="nsycave"> </td> </tr> <tr id="ysncrow" style="display: none;"> <th>Sundering, No Critical Hit</th> <td align="right" id="ysncchance"> </td> <td align="right" id="ysncmin"> </td> <td align="right" id="ysncmax"> </td> <td align="right" id="ysncave"> </td> </tr> <tr id="ysycrow" style="display: none;"> <th>Sundering, Critical Hit</th> <td align="right" id="ysycchance"> </td> <td align="right" id="ysycmin"> </td> <td align="right" id="ysycmax"> </td> <td align="right" id="ysycave"> </td> </tr> </table> <table cellpadding="5" border="1"> <tr> <th>Overall Average Damage per Hit</th> <td align="right" id="finalaverage"> </td> </tr> <tr id="doublestrike" style="display:none;"> <th>Chance to Double Strike</th> <td align="right" id="doublestrikechance"> </td> </tr> <tr> <th>Overall Average Damage per Second</th> <td align="right" id="finaldps"> </td> </tr> </table> </div> </div> </body> </html>