iswhoa/public/scripts/controllers/gamestate.js

46 lines
1.1 KiB
JavaScript
Raw Normal View History

2025-06-20 12:00:23 +00:00
const GAME_STATE_KEY = "gameState";
class GameState {
getQuestionChoice(qId) {
let savedItem = this._readGameState();
if (qId in savedItem) {
return savedItem[qId];
}
return null;
}
2025-06-22 12:06:49 +00:00
setQuestionChoice(qId, cId, isRight) {
2025-06-20 12:00:23 +00:00
let savedItem = this._readGameState();
2025-06-22 12:06:49 +00:00
savedItem[qId] = {cId: cId, isRight: isRight};
2025-06-20 12:00:23 +00:00
localStorage.setItem(GAME_STATE_KEY, JSON.stringify(savedItem));
}
clearChoices() {
localStorage.removeItem(GAME_STATE_KEY);
}
2025-06-22 12:06:49 +00:00
getSummary() {
let savedItem = this._readGameState();
let summary = { totalAnswered: 0, totalRight: 0 };
for (let k in savedItem) {
summary.totalAnswered++;
if (savedItem[k].isRight) {
summary.totalRight++;
}
}
return summary;
}
2025-06-20 12:00:23 +00:00
_readGameState() {
let savedItem = localStorage.getItem(GAME_STATE_KEY);
if (savedItem === null) {
return {};
} else {
return JSON.parse(savedItem);
}
}
}
export let gameState = new GameState();