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)
 
(34 intermediate revisions by one other 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;
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
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');
        '<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 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');