31 lines
967 B
JavaScript
31 lines
967 B
JavaScript
/* ------------------------
|
|
1. GAME STATE & VARIABLES
|
|
------------------------ */
|
|
let board = [];
|
|
let currentScore = 0;
|
|
|
|
// Ambil username dari sessionStorage
|
|
const currentUser = sessionStorage.getItem("loggedInUser") || "guest";
|
|
|
|
// Buat nama kunci unik
|
|
const storageKey = 'highScore2048_' + currentUser;
|
|
|
|
// Ambil skor milik user tersebut
|
|
let highScore = parseInt(localStorage.getItem(storageKey)) || 0;
|
|
let lastMoveDir = null;
|
|
let isMoving = false;
|
|
let mergesInCurrentMove = 0;
|
|
|
|
// Sound State (baca dari localStorage atau default ON)
|
|
let soundState = {
|
|
bg: localStorage.getItem('sound_bg') !== 'false',
|
|
pop: localStorage.getItem('sound_pop') !== 'false',
|
|
merge: localStorage.getItem('sound_merge') !== 'false'
|
|
};
|
|
|
|
// Volume State (0-100 for each sound)
|
|
let volumeState = {
|
|
music: parseInt(localStorage.getItem('vol_music')) || 25,
|
|
pop: parseInt(localStorage.getItem('vol_pop')) || 90,
|
|
merge: parseInt(localStorage.getItem('vol_merge')) || 100
|
|
}; |