MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
document.addEventListener("DOMContentLoaded", function() { | document.addEventListener("DOMContentLoaded", function() { | ||
var container = document.getElementById("calcContainer"); | var container = document.getElementById("calcContainer"); | ||
if (!container) return; | if (!container) return; | ||
// Build HTML | // Build calculator HTML (ES5-compatible) | ||
container.innerHTML = | container.innerHTML = | ||
<label>Base Drop Rate: <input type="number" id="baseRate" value="1000" style="width:80px;"></label><br><br> | '<div style="margin:10px 0;">' + | ||
'<label>Base Drop Rate: <input type="number" id="baseRate" value="1000" style="width:80px;"></label><br><br>' + | |||
'<label>Donator Bonus: ' + | |||
'<select id="donatorBonus">' + | |||
'<option value="0">None</option>' + | |||
'<option value="0.10">Bronze (10%)</option>' + | |||
'<option value="0.25">Divine (25%)</option>' + | |||
'<option value="0.50">Legendary (50%)</option>' + | |||
'</select>' + | |||
'</label><br><br>' + | |||
'<label>Vote Bonus: ' + | |||
'<select id="voteBonus">' + | |||
'<option value="0">None</option>' + | |||
'<option value="0.05">Vote (5%)</option>' + | |||
'<option value="0.10">Vote+ (10%)</option>' + | |||
'</select>' + | |||
'</label><br><br>' + | |||
'<label>Skull Bonus: ' + | |||
'<select id="skullBonus">' + | |||
'<option value="0">None</option>' + | |||
'<option value="0.10">Skull (10%)</option>' + | |||
'<option value="0.20">Skull+ (20%)</option>' + | |||
'</select>' + | |||
'</label><br><br>' + | |||
'<button id="calcButton">Calculate Drop Rate</button><br><br>' + | |||
'<div>Final Drop Rate: <span id="finalRate">0</span></div>' + | |||
'</div>'; | |||
// Calculation logic | |||
var btn = document.getElementById("calcButton"); | var btn = document.getElementById("calcButton"); | ||
btn.addEventListener("click", function() { | btn.addEventListener("click", function() { | ||
var base = parseFloat(document.getElementById("baseRate").value) || 0; | var base = parseFloat(document.getElementById("baseRate").value) || 0; | ||
var donator = parseFloat(document.getElementById("donatorBonus").value) || 0; | var donator = parseFloat(document.getElementById("donatorBonus").value) || 0; | ||
var finalRate = base * (1 - donator); | var vote = parseFloat(document.getElementById("voteBonus").value) || 0; | ||
var skull = parseFloat(document.getElementById("skullBonus").value) || 0; | |||
// Multiplicative bonuses: subtract percentage from 1 | |||
var finalRate = base * (1 - donator) * (1 - vote) * (1 - skull); | |||
document.getElementById("finalRate").textContent = finalRate.toFixed(2); | document.getElementById("finalRate").textContent = finalRate.toFixed(2); | ||
}); | }); | ||
}); | }); | ||
Revision as of 02:49, 5 March 2026
document.addEventListener("DOMContentLoaded", function() {
var container = document.getElementById("calcContainer");
if (!container) return;
// Build calculator HTML (ES5-compatible)
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 Bonus: ' +
'<select id="donatorBonus">' +
'<option value="0">None</option>' +
'<option value="0.10">Bronze (10%)</option>' +
'<option value="0.25">Divine (25%)</option>' +
'<option value="0.50">Legendary (50%)</option>' +
'</select>' +
'</label><br><br>' +
'<label>Vote Bonus: ' +
'<select id="voteBonus">' +
'<option value="0">None</option>' +
'<option value="0.05">Vote (5%)</option>' +
'<option value="0.10">Vote+ (10%)</option>' +
'</select>' +
'</label><br><br>' +
'<label>Skull Bonus: ' +
'<select id="skullBonus">' +
'<option value="0">None</option>' +
'<option value="0.10">Skull (10%)</option>' +
'<option value="0.20">Skull+ (20%)</option>' +
'</select>' +
'</label><br><br>' +
'<button id="calcButton">Calculate Drop Rate</button><br><br>' +
'<div>Final Drop Rate: <span id="finalRate">0</span></div>' +
'</div>';
// Calculation logic
var btn = document.getElementById("calcButton");
btn.addEventListener("click", function() {
var base = parseFloat(document.getElementById("baseRate").value) || 0;
var donator = parseFloat(document.getElementById("donatorBonus").value) || 0;
var vote = parseFloat(document.getElementById("voteBonus").value) || 0;
var skull = parseFloat(document.getElementById("skullBonus").value) || 0;
// Multiplicative bonuses: subtract percentage from 1
var finalRate = base * (1 - donator) * (1 - vote) * (1 - skull);
document.getElementById("finalRate").textContent = finalRate.toFixed(2);
});
});