initial hardcore tables

This commit is contained in:
Your Name
2026-06-13 17:43:19 -04:00
parent 2d48838fe6
commit 30fc283aa0
6 changed files with 88195 additions and 33 deletions
+28 -21
View File
@@ -51,7 +51,8 @@
}
function rareModifierEnabled() {
return RARE_MODIFIER_VERSIONS.has(currentVersion());
const selectedMode = qs("#drops-mode")?.value || "peeps";
return selectedMode === "peeps" && RARE_MODIFIER_VERSIONS.has(currentVersion());
}
function currentRareModifier() {
@@ -306,7 +307,8 @@
if (!box) return;
const rows = sortedRows(visibleRows());
const tableLabel = state.table?.label || "Peeps";
const tableLabel = state.table?.label || "BB";
const groupLabel = state.table?.groupLabel || "Peeps";
const totalPages = Math.max(1, Math.ceil(rows.length / state.pageSize));
state.page = Math.min(Math.max(1, state.page), totalPages);
@@ -343,7 +345,7 @@
box.innerHTML = `
<div class="drops-summary">
<div>
<strong>Peeps ${esc(tableLabel)} drop table</strong>
<strong>${esc(groupLabel)} ${esc(tableLabel)} drop table</strong>
<span>${rows.length.toLocaleString()} matching rows.${rangeText}</span>
${modifierNote}
</div>
@@ -367,24 +369,29 @@
`;
}
async function loadPeeps() {
setStatus("Loading Peeps drop tables...");
async function loadDropGroup() {
const selectedMode = qs("#drops-mode")?.value || "peeps";
const groupPath = selectedMode === "hardcore" ? "hardcore" : "peeps";
const groupLabel = selectedMode === "hardcore" ? "Hardcore" : "Peeps";
if (!state.index) {
state.index = await fetchJson("generated/drops/peeps/index.json");
setStatus(`Loading ${groupLabel} drop tables...`);
state.index = await fetchJson(`generated/drops/${groupPath}/index.json`);
if (selectedMode === "peeps") {
populateVersions(state.index);
}
const version = qs("#drops-version")?.value || "v1";
const version = selectedMode === "hardcore" ? "bb" : currentVersion();
const table = (state.index.tables || []).find((entry) => entry.version === version);
if (!table) {
setStatus("No drop table is configured for that version.", "error");
setStatus(`No ${groupLabel} drop table is configured.`, "error");
return;
}
state.table = table;
state.rows = await fetchJson(`generated/drops/peeps/${table.path}`);
state.table = { ...table, groupLabel };
state.rows = await fetchJson(`generated/drops/${groupPath}/${table.path}`);
state.filters.mode = "";
state.filters.episode = "";
@@ -408,18 +415,18 @@
async function updateMode() {
const mode = qs("#drops-mode")?.value || "peeps";
const peepsControls = qs("#drops-peeps-controls");
const versionSelect = qs("#drops-version");
const versionLabel = document.querySelector('label[for="drops-version"]');
const v2Note = qs("#drops-v2-note");
const hardcoreNote = qs("#drops-hardcore-note");
if (mode === "hardcore") {
if (peepsControls) peepsControls.hidden = true;
setStatus("Hardcore drop tables coming next.");
return;
}
if (peepsControls) peepsControls.hidden = false;
if (versionSelect) versionSelect.hidden = mode === "hardcore";
if (versionLabel) versionLabel.hidden = mode === "hardcore";
if (v2Note) v2Note.hidden = true;
if (hardcoreNote) hardcoreNote.hidden = mode !== "hardcore";
try {
await loadPeeps();
await loadDropGroup();
} catch (err) {
setStatus(err?.message || "Unable to load drop table.", "error");
}
@@ -427,7 +434,7 @@
document.addEventListener("DOMContentLoaded", () => {
qs("#drops-mode")?.addEventListener("change", updateMode);
qs("#drops-version")?.addEventListener("change", loadPeeps);
qs("#drops-version")?.addEventListener("change", loadDropGroup);
qs("#drops-rare-modifier")?.addEventListener("change", () => {
state.page = 1;
state.page = 1;