Add Clear inventory button
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
const DISCLAIMER_KEY = "sotf-inventory-disclaimer-v1";
|
||||
const SAVES_PATH = "%USERPROFILE%\\AppData\\LocalLow\\Endnight\\SonsOfTheForest\\Saves";
|
||||
const INVENTORY_FILE = "PlayerInventorySaveData.json";
|
||||
const KEEP_ON_CLEAR = new Set([351, 379, 380, 402, 412, 413, 483, 486, 552, 589]);
|
||||
|
||||
const $ = (id) => document.getElementById(id);
|
||||
const els = {
|
||||
@@ -20,6 +21,7 @@
|
||||
emptyState: $("emptyState"),
|
||||
changeSummary: $("changeSummary"),
|
||||
resetBtn: $("resetBtn"),
|
||||
clearBtn: $("clearBtn"),
|
||||
saveBtn: $("saveBtn"),
|
||||
disclaimer: $("disclaimer"),
|
||||
disclaimerOk: $("disclaimerOk"),
|
||||
@@ -157,11 +159,16 @@
|
||||
return [...state.items.values()].filter((i) => i.count !== i.original);
|
||||
}
|
||||
|
||||
function clearableItems() {
|
||||
return [...state.items.values()].filter((i) => !i.equipped && !KEEP_ON_CLEAR.has(i.id));
|
||||
}
|
||||
|
||||
function updateSummary() {
|
||||
const n = changedItems().length;
|
||||
els.changeSummary.textContent = n === 0 ? "No changes" : `${n} item${n === 1 ? "" : "s"} changed`;
|
||||
els.changeSummary.classList.toggle("has-changes", n > 0);
|
||||
els.resetBtn.disabled = n === 0;
|
||||
els.clearBtn.disabled = !clearableItems().some((i) => i.count > 0);
|
||||
els.saveBtn.disabled = !state.source || n === 0;
|
||||
els.saveBtn.title = state.source ? "" : "Load a save first";
|
||||
}
|
||||
@@ -442,6 +449,12 @@
|
||||
render();
|
||||
});
|
||||
|
||||
els.clearBtn.addEventListener("click", () => {
|
||||
for (const item of clearableItems()) item.count = 0;
|
||||
render();
|
||||
toast("Inventory cleared. Equipped items and starting tools were kept. Use Undo changes to restore.");
|
||||
});
|
||||
|
||||
els.saveBtn.addEventListener("click", () => {
|
||||
if (!state.source) return;
|
||||
els.saveFileName.textContent = state.source.fileName;
|
||||
|
||||
@@ -68,6 +68,7 @@
|
||||
<footer class="savebar">
|
||||
<span id="changeSummary">No changes</span>
|
||||
<div class="savebar-actions">
|
||||
<button type="button" class="btn-link" id="clearBtn" title="Sets every item to 0 except equipped items and starting tools">Clear inventory</button>
|
||||
<button type="button" class="btn-link" id="resetBtn" disabled>Undo changes</button>
|
||||
<button type="button" class="btn btn-primary" id="saveBtn" disabled>Save</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user