Clicker Heroes - Relic Salvage Calculator

by JeffC

HTML

<p>
  Use this calculator to determine if you should upgrade a relic before salvaging it.
</p>
<table>
  <tr>
    <td class="right">Rarity: </td>
    <td>
      <select id="rarity" onchange="calc(this);">
        <option value="1">Common</option>
        <option value="1.5">Uncommon</option>
        <option value="2">Rare</option>
        <option value="2.5">Epic</option>
        <option value="3">Fabled</option>
        <option value="3.5">Mythical</option>
        <option value="4.4">Legendary</option>
      </select>
    </td>
    <td class="spacing"></td>
    <td class="right">Current level value: </td>
    <td>
      <input id="current" disabled>
    </td>
  </tr>
  <tr>
    <td class="right">Current relic level: </td>
    <td>
      <input id="level" size="3" onchange="calc(this);">
    </td>
    <td class="spacing"></td>
    <td class="right">Next level value: </td>
    <td>
      <input id="nextLevel" disabled>
    </td>
  </tr>
  <tr>
    <td class="right">Levels gained on upgrade: </td>
    <td>
      <input id="levelsGained" size="3" onchange="calc(this);">
    </td>
    <td class="spacing"></td>
    <td class="right">Value difference: </td>
    <td>
      <input id="diff" disabled>
    </td>
  </tr>
  <tr>
    <td class="right">Cost of upgrade: </td>
    <td>
      <input id="upgradeCost" size="5" onchange="calc(this);">
    </td>
    <td class="spacing"></td>
    <td colspan="2">If Value difference is greater than 0, upgrade it!</td>
  </tr>
</table>

CSS

.spacing {
  width: 50px;
}

.right {
  text-align: right;
}

JavaScript

function calc(e) {
  sel = document.getElementById("rarity");
  rarity = parseInt(sel.options[sel.selectedIndex].value);
  currentLevel = parseInt(document.getElementById("level").value);
  levelsGained = parseInt(document.getElementById("levelsGained").value);
  upgradeCost = parseInt(document.getElementById("upgradeCost").value);
  currentValue = rarity * currentLevel * 5;
  nextLevelValue = rarity * (currentLevel + levelsGained) * 5;
  document.getElementById("current").value = currentValue;
  document.getElementById("nextLevel").value = nextLevelValue;
  document.getElementById("diff").value = nextLevelValue - currentValue - upgradeCost;
}