Widget:Calculator/Magic/Aurum: Difference between revisions

From HighSpell Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(20 intermediate revisions by the same user not shown)
Line 1: Line 1:
<html>
<html>
<form id="aurum-controls">
<form id="aurum-controls" class="form-grid">
   Scroll Price: <input type="number" id="scrollPrice" value="100"><br>
   <label>
   Quantity: <input type="number" id="quantity" value="1"><br>
    <span><a href="/w/Alchemy_Scroll" title="Alchemy Scroll">Alchemy Scroll</a> Price:</span>
    <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>
<script>
function calculateProfits() {
function calculateProfits() {
   const scrollPrice = parseFloat(document.getElementById('scrollPrice').value);
   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>';
   const quantity = parseInt(document.getElementById('quantity').value);
 
  // 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 => {
   document.querySelectorAll('#aurum-table tbody tr').forEach(row => {
     const itemPrice = parseFloat(row.dataset.price);
     const aurumMinorValue = parseInt(row.dataset.aurumMinor);
     if (isNaN(itemPrice)) return;
     const aurumMajorValue = parseInt(row.dataset.aurumMajor);
 
    const aurumMinor = isNaN(aurumMinorValue) ? 0 : aurumMinorValue - scrollPrice;
    const aurumMajor = isNaN(aurumMajorValue) ? 0 : aurumMajorValue - scrollPrice;


    // Correct logic:
     const minorTotal = aurumMinor * quantity;
     const minorValue = itemPrice * 0.0375;
     const majorTotal = aurumMajor * quantity;
     const majorValue = itemPrice * 0.5;


     const minorProfit = minorValue - scrollPrice;
     function wrap(value) {
    const majorProfit = majorValue - (scrollPrice * 3);
      const formatted = value.toLocaleString("en-US");
     const totalProfit = majorProfit * quantity;
      return value < 0
        ? `<span style="color:#ee4231 !important">${formatted}</span> ${coinIcon}`
        : `${formatted} ${coinIcon}`;
     }


     // Update the row
     row.querySelector('.aurumMinorEach').innerHTML = wrap(aurumMinor);
     row.querySelector('.minorProfit').textContent = minorProfit.toFixed(2);
     row.querySelector('.aurumMajorEach').innerHTML = wrap(aurumMajor);
     row.querySelector('.majorProfit').textContent = majorProfit.toFixed(2);
     row.querySelector('.aurumMinorTotal').innerHTML = wrap(minorTotal);
     row.querySelector('.totalProfit').textContent = totalProfit.toFixed(2);
     row.querySelector('.aurumMajorTotal').innerHTML = wrap(majorTotal);
   });
   });
}
}
Line 30: Line 56:
document.getElementById('scrollPrice').addEventListener('input', calculateProfits);
document.getElementById('scrollPrice').addEventListener('input', calculateProfits);
document.getElementById('quantity').addEventListener('input', calculateProfits);
document.getElementById('quantity').addEventListener('input', calculateProfits);
 
document.addEventListener('DOMContentLoaded', calculateProfits);
calculateProfits(); // Initial call
</script>
</script>
</html>
</html>

Latest revision as of 15:57, 26 June 2025