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)
 
(33 intermediate revisions by one other user not shown)
Line 1: Line 1:
// --- DROPRATE CALCULATOR (Table Version) ---
mw.loader.load('/index.php?title=MediaWiki:DropCalc.js&action=raw&ctype=text/javascript');
mw.hook('wikipage.content').add(function () {
mw.loader.load('/index.php?title=MediaWiki:SlayerPointsCalc.js&action=raw&ctype=text/javascript');
    var container = document.getElementById("dropCalcContainer");
mw.loader.load('/index.php?title=MediaWiki:BingoSheet.js&action=raw&ctype=text/javascript');
    if (!container) return;
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');
    // Build calculator HTML using a table
mw.loader.load('/index.php?title=MediaWiki:SmoothiesDebtCalculator.js&action=raw&ctype=text/javascript');
    container.innerHTML = `
mw.loader.load('/index.php?title=MediaWiki:VoteBoostToggle.js&action=raw&ctype=text/javascript');
        <table style="border-collapse:collapse;margin:10px 0;width:400px;">
            <tr>
                <td>Base Drop Rate:</td>
                <td><input type="number" id="baseRate" value="1000" style="width:80px;"></td>
            </tr>
            <tr>
                <td>Donator Rank Bonus:</td>
                <td>
                    <select id="donatorBonus">
                        <option value="0">None</option>
                        <option value="15">Donator 15%</option>
                        <option value="25">Super Donator 25%</option>
                        <option value="30">Extreme Donator 30%</option>
                        <option value="35">Legendary Donator 35%</option>
                        <option value="40">Royal Donator 40%</option>
                        <option value="45">Divine Donator 45%</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Monster Slayer Perk:</td>
                <td>
                    <select id="slayerBonus">
                        <option value="0">None</option>
                        <option value="10">10%</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Collector's Ring Bonus:</td>
                <td>
                    <select id="ringBonus">
                        <option value="0">None</option>
                        <option value="3">3%</option>
                        <option value="6">6%</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Skull Bonus:</td>
                <td>
                    <select id="skullBonus">
                        <option value="0">None</option>
                        <option value="20">20%</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>Voting Bonus:</td>
                <td>
                    <select id="voteBonus">
                        <option value="0">None</option>
                        <option value="20">20%</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td colspan="2" style="text-align:center;">
                    <button id="calcDropBtn" style="margin-top:10px;">Calculate Drop Rate</button>
                </td>
            </tr>
        </table>
 
        <div style="margin-top:10px;font-weight:bold;">
            Final Drop Rate: <span id="finalDrop">0</span>
        </div>
        <table id="dropSteps" style="margin-top:10px;border-collapse:collapse;width:400px;font-size:90%;color:#555;"></table>
    `;
 
    // Calculation
    var btn = document.getElementById("calcDropBtn");
    btn.onclick = function () {
        var base = parseFloat(document.getElementById("baseRate").value) || 0;
        var donator = parseFloat(document.getElementById("donatorBonus").value) || 0;
        var slayer = parseFloat(document.getElementById("slayerBonus").value) || 0;
        var ring = parseFloat(document.getElementById("ringBonus").value) || 0;
        var skull = parseFloat(document.getElementById("skullBonus").value) || 0;
        var vote = parseFloat(document.getElementById("voteBonus").value) || 0;
 
        var finalRate = base;
        var stepsTable = document.getElementById("dropSteps");
        stepsTable.innerHTML = `
            <tr style="background:#eee;"><th>Bonus</th><th>Percentage</th><th>Drop Rate</th></tr>
        `;
 
        // Helper to add a row for each step
        function addStep(name, perc) {
            finalRate *= (1 - perc / 100);
            var row = document.createElement("tr");
            row.innerHTML = `<td>${name}</td><td>${perc}%</td><td>${Math.round(finalRate)}</td>`;
            stepsTable.appendChild(row);
        }
 
        addStep("Donator Bonus", donator);
        addStep("Monster Slayer", slayer);
        addStep("Collector's Ring", ring);
        addStep("Skull Bonus", skull);
        addStep("Voting Bonus", vote);
 
        document.getElementById("finalDrop").textContent = Math.round(finalRate);
    };
});

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');