MediaWiki:Common.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
(add vote boost for drop rate calcs)
 
(66 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
mw.loader.load('/index.php?title=MediaWiki:DropCalc.js&action=raw&ctype=text/javascript');
 
mw.loader.load('/index.php?title=MediaWiki:SlayerPointsCalc.js&action=raw&ctype=text/javascript');
// --- DISABLED FANDOM DARK THEME BLOCK (INVALID JS) ---
mw.loader.load('/index.php?title=MediaWiki:BingoSheet.js&action=raw&ctype=text/javascript');
/*
mw.loader.load('/index.php?title=MediaWiki:TeamBingo.js&action=raw&ctype=text/javascript');
mw.loader.implement("wgl.theme.dark@zm8jm", null, {
mw.loader.load('/index.php?title=MediaWiki:Tierlist.js&action=raw&ctype=text/javascript');
    "css": ["html:has(body.wgl-theme-dark){color-scheme:dark}body.wgl-theme-dark{...}"]
mw.loader.load('/index.php?title=MediaWiki:SmoothiesDebtCalculator.js&action=raw&ctype=text/javascript');
});
mw.loader.load('/index.php?title=MediaWiki:VoteBoostToggle.js&action=raw&ctype=text/javascript');
*/
// --- END DISABLED BLOCK ---
 
// Dropdown-based Tier Assignment
mw.loader.using('jquery').then(function () {
    console.log("✅ Dropdown-based Tier Assignment is running");
 
    document.addEventListener('DOMContentLoaded', function () {
        function moveItemToTier(itemId, tierId) {
            var item = document.getElementById(itemId);
            var targetTier = document.getElementById(tierId);
            if (item && targetTier) {
                targetTier.appendChild(item);
            }
        }
 
        var selectors = document.querySelectorAll('.tier-selector');
        for (var i = 0; i < selectors.length; i++) {
            selectors[i].addEventListener('change', function () {
                var selectedTier = this.value;
                var itemId = this.id;
                moveItemToTier(itemId, selectedTier);
            });
        }
    });
});
 
// Bingo JS
mw.loader.using('mediawiki.util', function () {
    document.addEventListener("DOMContentLoaded", function () {
        console.log("✅ Bingo JS Loaded");
 
        var tiles = document.querySelectorAll(".bingo-table td .lighttable-cell");
        for (var i = 0; i < tiles.length; i++) {
            (function(tile){
                var id = tile.dataset.key || tile.id;
                if (!id) return;
 
                if (localStorage.getItem(id) === "selected") {
                    tile.classList.add("bingo-selected");
                }
 
                tile.addEventListener("click", function () {
                    tile.classList.toggle("bingo-selected");
                    if (tile.classList.contains("bingo-selected")) {
                        localStorage.setItem(id, "selected");
                    } else {
                        localStorage.removeItem(id);
                    }
                });
            })(tiles[i]);
        }
    });
});
 
// Skill XP calculator
document.addEventListener("DOMContentLoaded", function() {
    var tables = document.querySelectorAll(".skill-info-calc");
    for (var i = 0; i < tables.length; i++) {
        (function(table){
            var xpPerAction = parseInt(table.querySelector("span.total-xp").textContent);
            var numActionsElem = table.querySelector(".num-actions");
            var totalXPElem = table.querySelector(".total-xp");
 
            table.querySelector(".increase").addEventListener("click", function() {
                var actions = parseInt(numActionsElem.textContent) + 1;
                numActionsElem.textContent = actions;
                totalXPElem.textContent = actions * xpPerAction;
            });
 
            table.querySelector(".decrease").addEventListener("click", function() {
                var actions = parseInt(numActionsElem.textContent) - 1;
                if (actions < 0) actions = 0;
                numActionsElem.textContent = actions;
                totalXPElem.textContent = actions * xpPerAction;
            });
        })(tables[i]);
    }
});
 
// Simple calculator
document.addEventListener("DOMContentLoaded", function() {
    var calc = document.getElementById("calc");
    if (!calc) return;
 
    var btn = document.getElementById("calcButton");
    btn.addEventListener("click", function() {
        var a = parseFloat(document.getElementById("num1").value);
        var b = parseFloat(document.getElementById("num2").value);
        var op = document.getElementById("op").value;
        var result;
 
        if (isNaN(a) || isNaN(b)) {
            result = "Enter valid numbers";
        } else {
            switch (op) {
                case "+": result = a + b; break;
                case "-": result = a - b; break;
                case "*": result = a * b; break;
                case "/": result = b !== 0 ? a / b : "∞"; break;
                default: result = "Error";
            }
        }
 
        document.getElementById("result").textContent = " " + result;
    });
});
document.addEventListener("DOMContentLoaded", function() {
  const btn = document.getElementById("calcButton");
  if (!btn) return;
 
  btn.addEventListener("click", function() {
    const a = parseFloat(document.getElementById("num1").textContent);
    const b = parseFloat(document.getElementById("num2").textContent);
    const op = document.getElementById("op").textContent;
    let result;
 
    if (isNaN(a) || isNaN(b)) {
      result = "Enter valid numbers";
    } else {
      switch(op) {
        case "+": result = a + b; break;
        case "-": result = a - b; break;
        case "*": result = a * b; break;
        case "/": result = b !== 0 ? a / b : "∞"; break;
        default: result = "Error";
      }
    }
 
    document.getElementById("result").textContent = result;
  });
});
document.addEventListener("DOMContentLoaded", function() {
  const btn = document.getElementById("calcButton");
  if (!btn) return;
 
  btn.addEventListener("click", function() {
    const a = parseFloat(document.getElementById("num1").textContent);
    const b = parseFloat(document.getElementById("num2").textContent);
    const op = document.getElementById("op").textContent.trim();
    let result;
 
    if (isNaN(a) || isNaN(b)) {
      result = "Enter valid numbers";
    } else {
      switch(op) {
        case "+": result = a + b; break;
        case "-": result = a - b; break;
        case "*": result = a * b; break;
        case "/": result = b !== 0 ? a / b : "∞"; break;
        default: result = "Invalid operation";
      }
    }
 
    document.getElementById("result").textContent = result;
  });
});
document.addEventListener("DOMContentLoaded", function() {
  const num1 = document.getElementById("num1");
  const num2 = document.getElementById("num2");
  const op = document.getElementById("op");
  const result = document.getElementById("result");
  const btn = document.getElementById("calcButton");
 
  // Click handlers for number buttons
  document.querySelectorAll("[data-num1]").forEach(b => {
    b.addEventListener("click", () => num1.textContent = b.dataset.num1);
  });
  document.querySelectorAll("[data-num2]").forEach(b => {
    b.addEventListener("click", () => num2.textContent = b.dataset.num2);
  });
  document.querySelectorAll("[data-op]").forEach(b => {
    b.addEventListener("click", () => op.textContent = b.dataset.op);
  });
 
  btn.addEventListener("click", () => {
    const a = parseFloat(num1.textContent);
    const b = parseFloat(num2.textContent);
    let res;
 
    switch(op.textContent) {
      case "+": res = a + b; break;
      case "-": res = a - b; break;
      case "*": res = a * b; break;
      case "/": res = b !== 0 ? a / b : "∞"; break;
      default: res = "Error";
    }
 
    result.textContent = res;
  });
});
// Runs only on pages containing #calcContainer
document.addEventListener("DOMContentLoaded", function() {
    const container = document.getElementById("calcContainer");
    if (!container) return;
 
    // Build calculator HTML dynamically
    container.innerHTML = `
        <div style="margin:10px 0;">
            <label>Num1: <input type="number" id="num1" value="0" style="width:60px;"></label>
            <label>Num2: <input type="number" id="num2" value="0" style="width:60px;"></label>
            <label>Operation:
                <select id="op">
                    <option value="+">+</option>
                    <option value="-">-</option>
                    <option value="*">*</option>
                    <option value="/">/</option>
                </select>
            </label>
            <button id="calcButton">Calculate</button>
        </div>
        <div>Result: <span id="result">0</span></div>
    `;
 
    // Add calculator functionality
    const btn = document.getElementById("calcButton");
    btn.addEventListener("click", function() {
        const a = parseFloat(document.getElementById("num1").value);
        const b = parseFloat(document.getElementById("num2").value);
        const op = document.getElementById("op").value;
        let result;
 
        if (isNaN(a) || isNaN(b)) {
            result = "Enter valid numbers";
        } else {
            switch(op) {
                case "+": result = a + b; break;
                case "-": result = a - b; break;
                case "*": result = a * b; break;
                case "/": result = b !== 0 ? a / b : "∞"; break;
                default: result = "Error";
            }
        }
        document.getElementById("result").textContent = result;
    });
});

Latest revision as of 21:24, 18 July 2026

mw.loader.load('/index.php?title=MediaWiki:DropCalc.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=MediaWiki:SlayerPointsCalc.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=MediaWiki:BingoSheet.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=MediaWiki:TeamBingo.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=MediaWiki:Tierlist.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=MediaWiki:SmoothiesDebtCalculator.js&action=raw&ctype=text/javascript');
mw.loader.load('/index.php?title=MediaWiki:VoteBoostToggle.js&action=raw&ctype=text/javascript');