Widget:Calculator/Magic/Aurum: Difference between revisions

From HighSpell Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
 
(12 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="350"><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) || 0;
   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) || 1;
 
  // 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);


    // Each values
     const aurumMinor = isNaN(aurumMinorValue) ? 0 : aurumMinorValue - scrollPrice;
     const minorEach = Math.round(itemPrice * 0.250125);
     const aurumMajor = isNaN(aurumMajorValue) ? 0 : aurumMajorValue - scrollPrice;
     const majorEach = Math.round(itemPrice * 0.375);


    // Total values
     const minorTotal = aurumMinor * quantity;
     const minorTotal = Math.round((minorEach - scrollPrice) * quantity);
     const majorTotal = aurumMajor * quantity;
     const majorTotal = Math.round((majorEach - (scrollPrice * 3)) * quantity);


     // Helper: wrap in red span if value < 0
     function wrap(value) {
    function wrapValue(value) {
      const formatted = value.toLocaleString("en-US");
       return value < 0
       return value < 0
         ? `<span style="color: #ee4231 !important;">${value}</span>`
         ? `<span style="color:#ee4231 !important">${formatted}</span> ${coinIcon}`
         : `${value}`;
         : `${formatted} ${coinIcon}`;
     }
     }


     row.querySelector('.aurumMinorEach').innerHTML = wrapValue(minorEach);
     row.querySelector('.aurumMinorEach').innerHTML = wrap(aurumMinor);
     row.querySelector('.aurumMajorEach').innerHTML = wrapValue(majorEach);
     row.querySelector('.aurumMajorEach').innerHTML = wrap(aurumMajor);
     row.querySelector('.aurumMinorTotal').innerHTML = wrapValue(minorTotal);
     row.querySelector('.aurumMinorTotal').innerHTML = wrap(minorTotal);
     row.querySelector('.aurumMajorTotal').innerHTML = wrapValue(majorTotal);
     row.querySelector('.aurumMajorTotal').innerHTML = wrap(majorTotal);
   });
   });
}
}

Latest revision as of 15:57, 26 June 2025