User:Nefastu/Coeff
From Guild Wars 2 Wiki
Jump to navigationJump to search
Calculation[edit]
coefficient = tooltip damage * 2597 / power / weapon strength
wiki damage = weapon strength * power * coeff / 2597
| Weapon type | Tooltip weapon strength | Wiki weapon strength | ||||
|---|---|---|---|---|---|---|
| Min | Max | Avg | Min | Max | Avg | |
| One-handed | ||||||
| Axe | 621 | 759 | 690 | 857 | 1048 | 952.5 |
| Dagger | 669 | 711 | 690 | 924 | 981 | 952.5 |
| Mace | 649 | 731 | 690 | 895 | 1010 | 952.5 |
| Pistol | 635 | 745 | 690 | 876 | 1029 | 952.5 |
| Scepter | 649 | 731 | 690 | 895 | 1010 | 952.5 |
| Sword | 656 | 725 | 690.5 | 905 | 1000 | 952.5 |
| Offhand only | ||||||
| Focus | 603 | 640 | 621.5 | 832 | 883 | 857.5 |
| Shield | 584 | 658 | 621 | 806 | 909 | 857.5 |
| Torch | 571 | 671 | 621 | 789 | 926 | 857.5 |
| Warhorn | 590 | 652 | 621 | 814 | 900 | 857 |
| Two-handed | ||||||
| Greatsword | 721 | 797 | 759 | 995 | 1100 | 1047.5 |
| Hammer | 714 | 805 | 759.5 | 985 | 1111 | 1048.0 |
| Longbow | 667 | 783 | 725 | 920 | 1080 | 1000 |
| Rifle | 714 | 873 | 793.5 | 986 | 1205 | 1095.5 |
| Short bow | 656 | 725 | 690.5 | 905 | 1000 | 952.5 |
| Staff | 714 | 805 | 759.5 | 985 | 1111 | 1048.0 |
| Aquatic | ||||||
| Aquatic | 656 | 725 | 690.5 | 905 | 1000 | 952.5 |
| Bundles, Transforms | ||||||
| Banners | 690.5? | 690.5? | ||||
| Kits | 690.5? | 690.5? | ||||
| Transforms | 690.5? | 690.5? | ||||
Tool[edit]
Save the content below as a .html on your computer and open it with your browser.
<html>
<head>
<title>GW2W Skill Coefficient Utility</title>
<script>
//weapon strengths by weapon type, [level 77 fine, level 78 exotic, level 80 exotic, level 80 ascended]
var strength = {
//one-handed
'Axe': [690.0, 922.5, 952.5, 1000],
'Dagger': [690.0, 922.5, 952.5, 1000],
'Mace': [690.0, 922.5, 952.5, 1000],
'Pistol': [690.0, 922.5, 952.5, 1000],
'Scepter': [690.0, 922.5, 952.5, 1000],
'Sword': [690.5, 922.5, 952.5, 1000],
//off-hand only
'Focus': [621.5, 830.0, 857.5, 900],
'Shield': [621.0, 830.5, 857.5, 900],
'Torch': [621.0, 830.5, 857.5, 900],
'Warhorn': [621.0, 830.5, 857.0, 900],
//two-handed
'Greatsword': [759.0, 1014.5, 1047.5, 1100],
'Hammer': [759.5, 1015.0, 1048.0, 1100],
'Longbow': [725.0, 968.5, 1000.0, 1050],
'Rifle': [793.5, 1061.0, 1095.5, 1150],
'Short bow': [690.5, 922.5, 952.5, 1000],
'Staff': [759.5, 1015.0, 1048.0, 1100],
//aquatic
'Aquatic': [690.5, 922.5, 952.5, 1000],
//utility skills/skills without a set weapon
'Utility': [690.5, 690.5, 690.5, 690.5],
'Bundle': [690.5, 922.5, 922.5, 922.5],
'Transform': [690.5, 772.5, 772.5, 772.5]
};
//init values
var damage = 0;
var power = 1000;
var hits = 1;
var weapon = "Sword";
var rarity = 2; //defaults to level 80 exotic
var rarity_s = 0; //defaults to tooltip value (level 77 fine)
var coeff = 0;
var coeff_singlehit = 0;
var calcdamage = 0;
var round_coeff = 5;
var round_calcdamage = 2;
function update_coeff(){
if (damage == 0 || power == 0) return;
coeff = round(damage * 2597 / power / strength[weapon][rarity_s], round_coeff);
if(hits>1){
coeff_singlehit = round(damage / hits * 2597 / power / strength[weapon][rarity_s], round_coeff);
document.getElementById('single-coeff').value = coeff_singlehit;
}
document.getElementById('coeff').value = coeff;
update_dmg();
}
function update_dmg(){
if(hits > 1){
calcdamage = hits * round(strength[weapon][rarity] * 1000 * coeff_singlehit / 2597, round_calcdamage);
}else{
calcdamage = round(strength[weapon][rarity] * 1000 * coeff / 2597, round_calcdamage);
}
document.getElementById('calc-dmg').value = calcdamage;
update_skillfact();
}
function update_skillfact(){
var tmp = "";
if(hits > 1){
var tmp = "|strikes=" + hits;
}
var skillfact = "{{skill fact|damage|" + calcdamage + "|coefficient=" + coeff + tmp + "}}";
document.getElementById('skillfact').value = skillfact;
}
function hide_show_single_damage_coeff(){
if(hits>1){
document.getElementById('div-single-coeff').style.display = 'block';
}else{
document.getElementById('div-single-coeff').style.display = 'none';
}
}
function c1(input){ power = input; update_coeff();} //required field: power
function c2(input){ damage = input; update_coeff();} //required field: damage
function c3(input){ //optional field: number of hits
if(input > 0){
hits = input;
}else{
hits = 1;
}
update_coeff();
hide_show_single_damage_coeff();
}
function c4(input){ weapon = input; update_coeff();} //required radio button selection: weapon type
function c5(input){ rarity = input; update_dmg();} //required radio button selection: weapon rarity
function c6(input){ coeff = input; update_dmg();} //optional field: calculated coefficient modification
function c7(input){ calcdamage = input; update_skillfact();} //optional field: calculated damage modification
function c8(input){ round_coeff = input; update_coeff();} //optional field: number of decimal places for calculated coefficient
function c9(input){ round_calcdamage = input; update_dmg();} //optional field: number of decimal places for calculated damage
function cA(input){ coeff_singlehit = input; update_dmg();} //optional field: calculated single hit coefficient modification
function cB(input){ rarity_s = input; update_coeff();} //optional field: damage fact weapon strength
function round(number, x){
return Math.round(number*Math.pow(10, x))/Math.pow(10, x);
}
function toggle_strength_table(input){
if(input == "show"){
var table = "<button onclick='toggle_strength_table(\"hide\");'>Hide weapon strength table</button><br/>" +
"<table><thead><tr>" +
"<th>Weapon type</th>" +
"<th style=\"color:#62A4DA;\">77 Fine</th>" +
"<th style=\"color:#ffa405;\">78 Exotic (PvP)</th>" +
"<th style=\"color:#ffa405;\">80 Exotic</th>" +
"<th style=\"color:#fb3e8d;\">80 Ascended</th></tr>" +
"</thead><tbody>";
for (var key in strength){
table += "<tr><th>" + key + "</th>";
for (var i = 0; i < strength[key].length; i++){
table += "<th>" + strength[key][i] + "</th>";
}
table += "</tr>";
}
table += "</tbody></table>";
document.getElementById('strength-table').innerHTML = table;
}
if(input == "hide"){
document.getElementById('strength-table').innerHTML = "<button onclick='toggle_strength_table(\"show\");'>Show weapon strength table</button>";
}
}
function toggle_info(){
if (document.getElementById("info").style.display == "block"){
document.getElementById("info").style.display = "none";
}else{
document.getElementById("info").style.display = "block";
}
}
</script>
<style>
table {
border-collapse: collapse;
}
td, th {
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
input {
margin: 5px;
}
input[type="number"]{
width:40px;
}
</style>
</head>
<body>
<div id="strength-table" style="float:right;align-right;"><button onclick='toggle_strength_table("show");'>Show weapon strength table</button></div>
<h2>Skill coefficient utility for the Guild Wars 2 Wiki <button onclick="toggle_info();">Show/Hide info</button></h2>
<div id="info" style="display:block;"><p>
<b>Ensure no modifiers from traits that alter damage are active.</b><br/>
Transform weapon strengths are based on two tests:
<a href="https://wiki.gw2.org.cn/index.php?title=User:Nefastu/Sandbox3&oldid=1288229">test #1</a>,
<a href="https://wiki.gw2.org.cn/index.php?title=User:Nefastu/Sandbox3&oldid=1292189">test #2</a><br/>
<i>Used equations:<br/>
Skill coefficient = Tooltip damage * 2597 / Power / Weapon strength<br/>
Damage done = Weapon strength * Power * Skill coefficient / 2597</i><br/>
</p></div>
<h3>Required fields</h3>
What are you looking at? <label><input type="radio" name="rarity_s" onclick="cB(0);" checked> Chat link I posted for myself</label><br/>
My own skill bar: <label><input type="radio" name="rarity_s" onclick="cB(2);"> With an exotic weapon, </label>
<label><input type="radio" name="rarity_s" onclick="cB(3);"> with an ascended weapon, </label>
<label><input type="radio" name="rarity_s" onclick="cB(1);"> standing in Heart of the Mists</label><br/>
<input type="text" id="power" placeholder="Power" value="1000" onkeyup="c1(this.value);"></input> Your power<br/>
<input type="text" id="damage" placeholder="Damage" onkeyup="c2(this.value);"></input> Damage value from tooltip<br/>
<input type="text" id="hits" placeholder="Number of hits" onkeyup="c3(this.value);"></input> Number of hits (putting a value greater than 1 will calcute the damage based on a single hit)<br/>
<table>
<thead>
<tr><th>One-handed</th><th>Off-hand only</th><th>Two-handed</th><th>Utility/Other</th></tr>
</thead>
<tbody>
<tr>
<th><label><input type="radio" name="weapon" onclick="c4('Axe');"> Axe</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Focus');"> Focus</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Greatsword');"> Greatsword</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Aquatic');"> Aquatic</label></th>
</tr>
<tr>
<th><label><input type="radio" name="weapon" onclick="c4('Dagger');"> Dagger</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Shield');"> Shield</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Hammer');"> Hammer</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Utility');"> Utility</label></th>
</tr>
<tr>
<th><label><input type="radio" name="weapon" onclick="c4('Mace');"> Mace</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Torch');"> Torch</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Longbow');"> Longbow</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Bundle');"> Bundle</label></th>
</tr>
<tr>
<th><label><input type="radio" name="weapon" onclick="c4('Pistol');"> Pistol</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Warhorn');"> Warhorn</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Rifle');"> Rifle</label></th>
<th><label><input type="radio" name="weapon" onclick="c4('Transform');"> Transform</label></th>
</tr>
<tr>
<th><label><input type="radio" name="weapon" onclick="c4('Scepter');"> Scepter</label></th><th></th>
<th><label><input type="radio" name="weapon" onclick="c4('Short bow');"> Short bow</label></th><th></th>
</tr>
<tr>
<th><label><input type="radio" name="weapon" onclick="c4('Sword');" checked> Sword</label></th><th></th>
<th><label><input type="radio" name="weapon" onclick="c4('Staff');"> Staff</label></th><th></th>
</tr>
</tbody>
</table><br/>
<b>Weapon level:
<label style="color:#62A4DA;"><input type="radio" name="quality" onclick="c5(0);"> Level 77 Fine ('Unequipped')</label>
<label style="color:#ffa405;"><input type="radio" name="quality" onclick="c5(1);"> Level 78 Exotic</label>
<label style="color:#ffa405;"><input type="radio" name="quality" onclick="c5(2);" checked> Level 80 Exotic</label>
<label style="color:#fb3e8d;"><input type="radio" name="quality" onclick="c5(3);"> Level 80 Ascended</label></b>
<h3>Calculated coefficient and damage</h3>
Coefficient <br/>
<input type="text" id="coeff" onkeyup="c6(this.value);" placeholder="Coefficient"></input> rounded to
<input type="number" onkeyup="c8(this.value);" onchange="c8(this.value);" value="5" min="0" max="10"></input> decimal places<br/>
<div id="div-single-coeff" style="display:none;"><input type="text" id="single-coeff" onkeyup="cA(this.value);"></input> single damage coefficient<br/></div>
Calculated damage<br/>
<input type="text" id="calc-dmg" onkeyup="c7(this.value);" placeholder="Calculated damage"></input> rounded to
<input type="number" onkeyup="c9(this.value);" onchange="c9(this.value);" value="2" min="0" max="10"></input> decimal places
<h3>Damage skill fact</h3>
<input type="text" id="skillfact" size="50" placeholder="{{skill fact|..."></input> <br/>
</body>
</html>