Widget:Calculator/Magic/Aurum: Difference between revisions

Created page with "<html> <form oninput="profit.value = parseFloat(price.value) * parseFloat(quantity.value)"> Price: <input name="price" type="number" step="any"><br> Quantity: <input name="quantity" type="number" step="any"><br> Profit: <output name="profit"></output> </form> </html>"
 
No edit summary
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
<html>
<html>
<form oninput="profit.value = parseFloat(price.value) * parseFloat(quantity.value)">
<form id="aurum-controls" class="form-grid">
   Price: <input name="price" type="number" step="any"><br>
   <label>
   Quantity: <input name="quantity" type="number" step="any"><br>
    <span><a href="/w/Alchemy_Scroll" title="Alchemy Scroll">Alchemy Scroll</a> Price:</span>
  Profit: <output name="profit"></output>
    <input type="number" id="scrollPrice" value="350" min="1" max="1000">
  </label>
   <label>
    <span>Quantity:</span>
    <input type="number" id="quantity" value="1" min="1" max="99999">
  </label>
</form>
</form>
<script>
function calculateProfits() {
  const coinIcon = ' <span class="noviewer" typeof="mw:File"><span><img src="/w/images/thumb/9/9a/Coins_icon.png/16px-Coins_icon.png" decoding="async" width="16" height="16" class="mw-file-element" srcset="/w/images/thumb/9/9a/Coins_icon.png/24px-Coins_icon.png 1.5x, /w/images/9/9a/Coins_icon.png 2x"></span></span>';
  // Scroll Price
  const scrollInput = document.getElementById('scrollPrice');
  let scrollPrice = parseFloat(scrollInput.value);
  if (isNaN(scrollPrice) || scrollPrice < 0) {
    scrollPrice = 1;
    scrollInput.value = 1;
  }
  // Quantity
  const quantityInput = document.getElementById('quantity');
  let quantity = parseInt(quantityInput.value);
  if (isNaN(quantity) || quantity < 1) {
    quantity = 1;
    quantityInput.value = 1;
  }
  document.querySelectorAll('#aurum-table tbody tr').forEach(row => {
    const aurumMinorValue = parseInt(row.dataset.aurumMinor);
    const aurumMajorValue = parseInt(row.dataset.aurumMajor);
    const aurumMinor = isNaN(aurumMinorValue) ? 0 : aurumMinorValue - scrollPrice;
    const aurumMajor = isNaN(aurumMajorValue) ? 0 : aurumMajorValue - scrollPrice;
    const minorTotal = aurumMinor * quantity;
    const majorTotal = aurumMajor * quantity;
    function wrap(value) {
      const formatted = value.toLocaleString("en-US");
      return value < 0
        ? `<span style="color:#ee4231 !important">${formatted}</span> ${coinIcon}`
        : `${formatted} ${coinIcon}`;
    }
    row.querySelector('.aurumMinorEach').innerHTML = wrap(aurumMinor);
    row.querySelector('.aurumMajorEach').innerHTML = wrap(aurumMajor);
    row.querySelector('.aurumMinorTotal').innerHTML = wrap(minorTotal);
    row.querySelector('.aurumMajorTotal').innerHTML = wrap(majorTotal);
  });
}
document.getElementById('scrollPrice').addEventListener('input', calculateProfits);
document.getElementById('quantity').addEventListener('input', calculateProfits);
document.addEventListener('DOMContentLoaded', calculateProfits);
</script>
</html>
</html>