MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 52: | Line 52: | ||
'<button id="calcDropBtn">Calculate Drop Rate</button>' + | '<button id="calcDropBtn">Calculate Drop Rate</button>' + | ||
'</div>' + | '</div>' + | ||
'<div>Final Drop Rate: <span id="finalDrop">0</span></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 | // Calculation | ||
var btn = document.getElementById("calcDropBtn"); | var btn = document.getElementById("calcDropBtn"); | ||
btn.onclick = function () { | btn.onclick = function () { | ||
| Line 64: | Line 65: | ||
var vote = parseFloat(document.getElementById("voteBonus").value) || 0; | var vote = parseFloat(document.getElementById("voteBonus").value) || 0; | ||
var finalRate = base; | var finalRate = base; | ||
var stepsHTML = '<strong>Step-by-Step Drop Rate:</strong><br>'; | |||
// Apply Donator | |||
finalRate *= (1 - donator / 100); | finalRate *= (1 - donator / 100); | ||
stepsHTML += 'After Donator Bonus (' + donator + '%): ' + Math.round(finalRate) + '<br>'; | |||
// Apply Monster Slayer | |||
finalRate *= (1 - slayer / 100); | finalRate *= (1 - slayer / 100); | ||
stepsHTML += 'After Monster Slayer Bonus (' + slayer + '%): ' + Math.round(finalRate) + '<br>'; | |||
// Apply Collector's Ring | |||
finalRate *= (1 - ring / 100); | finalRate *= (1 - ring / 100); | ||
stepsHTML += 'After Collector\'s Ring Bonus (' + ring + '%): ' + Math.round(finalRate) + '<br>'; | |||
// Apply Skull Bonus | |||
finalRate *= (1 - skull / 100); | finalRate *= (1 - skull / 100); | ||
stepsHTML += 'After Skull Bonus (' + skull + '%): ' + Math.round(finalRate) + '<br>'; | |||
// Apply Voting Bonus | |||
finalRate *= (1 - vote / 100); | finalRate *= (1 - vote / 100); | ||
stepsHTML += 'After Voting Bonus (' + vote + '%): ' + Math.round(finalRate) + '<br>'; | |||
document.getElementById("finalDrop").textContent = Math.round(finalRate); | document.getElementById("finalDrop").textContent = Math.round(finalRate); | ||
document.getElementById("dropSteps").innerHTML = stepsHTML; | |||
}; | }; | ||
}); | }); | ||
Revision as of 03:15, 5 March 2026
// --- DROPRATE CALCULATOR ---
mw.hook('wikipage.content').add(function () {
var container = document.getElementById("dropCalcContainer");
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;
};
});