|
|
| (27 intermediate revisions by the same 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;
| |
| | |
| // Build calculator HTML using a table
| |
| container.innerHTML = `
| |
| <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);
| |
| };
| |
| });
| |