52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
(() => {
|
|
const makeStorageKey = (sceneId) => `physilinks-highscore-${sceneId}`;
|
|
const makeChainKey = (sceneId) => `physilinks-longestchain-${sceneId}`;
|
|
|
|
const loadHighScore = (sceneId) => {
|
|
try {
|
|
const raw = localStorage.getItem(makeStorageKey(sceneId));
|
|
const parsed = parseInt(raw, 10);
|
|
return Number.isFinite(parsed) ? parsed : 0;
|
|
} catch (err) {
|
|
console.error("Failed to load high score", { sceneId, err });
|
|
return 0;
|
|
}
|
|
};
|
|
|
|
const loadLongestChain = (sceneId) => {
|
|
try {
|
|
const raw = localStorage.getItem(makeChainKey(sceneId));
|
|
const parsed = parseInt(raw, 10);
|
|
return Number.isFinite(parsed) ? parsed : 0;
|
|
} catch (err) {
|
|
console.error("Failed to load longest chain", { sceneId, err });
|
|
return 0;
|
|
}
|
|
};
|
|
|
|
const saveHighScore = (sceneId, highScore) => {
|
|
try {
|
|
localStorage.setItem(makeStorageKey(sceneId), String(highScore));
|
|
} catch (err) {
|
|
console.error("Failed to save high score", { sceneId, err });
|
|
}
|
|
};
|
|
|
|
const saveLongestChain = (sceneId, longestChain) => {
|
|
try {
|
|
localStorage.setItem(makeChainKey(sceneId), String(longestChain));
|
|
} catch (err) {
|
|
console.error("Failed to save longest chain", { sceneId, err });
|
|
}
|
|
};
|
|
|
|
window.PhysilinksStorage = {
|
|
makeStorageKey,
|
|
makeChainKey,
|
|
loadHighScore,
|
|
loadLongestChain,
|
|
saveHighScore,
|
|
saveLongestChain,
|
|
};
|
|
})();
|