iswhoa/public/scripts/controllers/gamestate.js
2025-06-22 14:06:49 +02:00

46 lines
1.1 KiB
JavaScript

const GAME_STATE_KEY = "gameState";
class GameState {
getQuestionChoice(qId) {
let savedItem = this._readGameState();
if (qId in savedItem) {
return savedItem[qId];
}
return null;
}
setQuestionChoice(qId, cId, isRight) {
let savedItem = this._readGameState();
savedItem[qId] = {cId: cId, isRight: isRight};
localStorage.setItem(GAME_STATE_KEY, JSON.stringify(savedItem));
}
clearChoices() {
localStorage.removeItem(GAME_STATE_KEY);
}
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;
}
_readGameState() {
let savedItem = localStorage.getItem(GAME_STATE_KEY);
if (savedItem === null) {
return {};
} else {
return JSON.parse(savedItem);
}
}
}
export let gameState = new GameState();