MediaWiki:Common.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
 
(28 intermediate revisions by the same user not shown)
Line 1: Line 1:
// --- DROPRATE CALCULATOR ---
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;
 
    // Build calculator HTML
    container.innerHTML =
        '<div style="margin:10px 0;">' +
            '<label>Base Drop Rate: <input type="number" id="baseRate" value="1000" style="width:80px;"></label><br><br>' +
 
            '<label>Donator Rank Bonus: ' +
                '<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>' +
            '</label><br><br>' +
 
            '<label>Monster Slayer Perk: ' +
                '<select id="slayerBonus">' +
                    '<option value="0">None</option>' +
                    '<option value="10">10%</option>' +
                '</select>' +
            '</label><br><br>' +
 
            '<label>Collector\'s Ring Bonus: ' +
                '<select id="ringBonus">' +
                    '<option value="0">None</option>' +
                    '<option value="3">3%</option>' +
                    '<option value="6">6%</option>' +
                '</select>' +
            '</label><br><br>' +
 
            '<label>Skull Bonus: ' +
                '<select id="skullBonus">' +
                    '<option value="0">None</option>' +
                    '<option value="20">20%</option>' +
                '</select>' +
            '</label><br><br>' +
 
            '<label>Voting Bonus: ' +
                '<select id="voteBonus">' +
                    '<option value="0">None</option>' +
                    '<option value="20">20%</option>' +
                '</select>' +
            '</label><br><br>' +
 
            '<button id="calcDropBtn">Calculate Drop Rate</button>' +
        '</div>' +
        '<div>Final Drop Rate: <span id="finalDrop">0</span></div>' +
        '<div id="dropSteps" style="margin-top:10px;font-size:90%;color:#555;"></div>';
 
    // 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 stepsHTML = '<strong>Step-by-Step Drop Rate:</strong><br>';
 
        // Apply Donator
        finalRate *= (1 - donator / 100);
        stepsHTML += 'After Donator Bonus (' + donator + '%): ' + Math.round(finalRate) + '<br>';
 
        // Apply Monster Slayer
        finalRate *= (1 - slayer / 100);
        stepsHTML += 'After Monster Slayer Bonus (' + slayer + '%): ' + Math.round(finalRate) + '<br>';
 
        // Apply Collector's Ring
        finalRate *= (1 - ring / 100);
        stepsHTML += 'After Collector\'s Ring Bonus (' + ring + '%): ' + Math.round(finalRate) + '<br>';
 
        // Apply Skull Bonus
        finalRate *= (1 - skull / 100);
        stepsHTML += 'After Skull Bonus (' + skull + '%): ' + Math.round(finalRate) + '<br>';
 
        // Apply Voting Bonus
        finalRate *= (1 - vote / 100);
        stepsHTML += 'After Voting Bonus (' + vote + '%): ' + Math.round(finalRate) + '<br>';
 
        document.getElementById("finalDrop").textContent = Math.round(finalRate);
        document.getElementById("dropSteps").innerHTML = stepsHTML;
    };
});

Latest revision as of 02:04, 7 March 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');