JSFiddle - React, Tailwind, and code Playground
by Kamran Ayub
HTML
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<table class="table">
<tr>
<th>Word Score</th>
<th>Level</th>
<th>Attack</th>
<th>Defense</th>
<th>Power</th>
</tr>
<tbody id="tests">
</tbody>
</table>
CSS
th {
font-weight: bold;
}
.power {
font-weight: bold;
}
JavaScript
var calc = function(score, level, attack, defense){
score *= 3;
// base
var b = (((2 * level + 10) / 250)*(attack / defense)*(score))+2;
// modifier
var m = 1.5 * 3 * 1 * getRandomArbitrary(0.85, 1);
return Math.floor(b * m)
};
var getRandomArbitrary = function(min, max) {
return Math.random() * (max - min) + min;
}
var tests = [
{ score: 8, level: 1, attack: 10, defense: 10 },
{ score: 8, level: 2, attack: 15, defense: 10 },
{ score: 8, level: 3, attack: 23, defense: 10 },
{ score: 8, level: 50, attack: 210, defense: 190 },
{ score: 20, level: 50, attack: 210, defense: 190 }
];
tests.forEach(function(test) {
var $tr = $("<tr>");
var dmg = calc(test.score, test.level, test.attack, test.defense);
$tr.append("<td class='score'>" + test.score + "</td>");
$tr.append("<td class='level'>" + test.level + "</td>");
$tr.append("<td class='attack'>" + test.attack + "</td>");
$tr.append("<td class='defense'>" + test.defense + "</td>");
$tr.append("<td class='power'>" + dmg + "</td>");
$("#tests").append($tr);
});