148 lines
4 KiB
JavaScript
148 lines
4 KiB
JavaScript
"use strict";
|
|
const left = document.querySelector("#left");
|
|
const right = document.querySelector("#right");
|
|
const gameboy = document.querySelector(".gameboy");
|
|
const html = document.documentElement;
|
|
const body = document.body;
|
|
const screen = document.querySelector(".screen");
|
|
const dpadButtons = document.querySelectorAll(".dpad-btn");
|
|
const dpadCenter = document.querySelector(".dpad-center"); // Darker variant
|
|
const actionButtons = document.querySelectorAll(".btn");
|
|
|
|
const colors = [
|
|
{
|
|
gameboyColor: "#B39DDB",
|
|
htmlColor: "#D1C4E9",
|
|
screenColor: "#E1BEE7",
|
|
buttonColor: "#673AB7",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#5E35B1",
|
|
},
|
|
{
|
|
gameboyColor: "#FFC107",
|
|
htmlColor: "#FFF9C4",
|
|
screenColor: "#FFEB3B",
|
|
buttonColor: "#FF9800",
|
|
buttonTextColor: "#000000",
|
|
dpadCenterColor: "#EF6C00",
|
|
},
|
|
{
|
|
gameboyColor: "#8BC34A",
|
|
htmlColor: "#C5E1A5",
|
|
screenColor: "#A5D6A7",
|
|
buttonColor: "#FF5722",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#E64A19",
|
|
},
|
|
{
|
|
gameboyColor: "#F44336",
|
|
htmlColor: "#FFCDD2",
|
|
screenColor: "#EF9A9A",
|
|
buttonColor: "#E91E63",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#C2185B",
|
|
},
|
|
{
|
|
gameboyColor: "#03A9F4",
|
|
htmlColor: "#BBDEFB",
|
|
screenColor: "#90CAF9",
|
|
buttonColor: "#FFEB3B",
|
|
buttonTextColor: "#000000",
|
|
dpadCenterColor: "#0277BD",
|
|
},
|
|
{
|
|
gameboyColor: "#FF7043",
|
|
htmlColor: "#FFCCBC",
|
|
screenColor: "#FFAB91",
|
|
buttonColor: "#FF5722",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#D84315",
|
|
},
|
|
{
|
|
gameboyColor: "#9C27B0",
|
|
htmlColor: "#E1BEE7",
|
|
screenColor: "#D1C4E9",
|
|
buttonColor: "#7B1FA2",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#6A1B9A",
|
|
},
|
|
{
|
|
gameboyColor: "#FFD700",
|
|
htmlColor: "#FFF9C4",
|
|
screenColor: "#FFF59D",
|
|
buttonColor: "#FF9800",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#F57F17",
|
|
},
|
|
{
|
|
gameboyColor: "#009688",
|
|
htmlColor: "#B2DFDB",
|
|
screenColor: "#80CBC4",
|
|
buttonColor: "#4CAF50",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#00796B",
|
|
},
|
|
{
|
|
gameboyColor: "#795548",
|
|
htmlColor: "#D7CCC8",
|
|
screenColor: "#A1887F",
|
|
buttonColor: "#9E9E9E",
|
|
buttonTextColor: "#000000",
|
|
dpadCenterColor: "#5D4037",
|
|
},
|
|
{
|
|
gameboyColor: "#FF5733",
|
|
htmlColor: "#FFCCCB",
|
|
screenColor: "#FFABAB",
|
|
buttonColor: "#C70039",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#B71C1C",
|
|
},
|
|
{
|
|
gameboyColor: "#00BCD4",
|
|
htmlColor: "#B2EBF2",
|
|
screenColor: "#80DEEA",
|
|
buttonColor: "#00ACC1",
|
|
buttonTextColor: "#FFFFFF",
|
|
dpadCenterColor: "#00838F",
|
|
},
|
|
];
|
|
|
|
let currentColorIndex = localStorage.getItem("gameboyColorIndex")
|
|
? parseInt(localStorage.getItem("gameboyColorIndex"))
|
|
: 0;
|
|
|
|
function updateGameBoyColor() {
|
|
gameboy.style.backgroundColor = colors[currentColorIndex].gameboyColor;
|
|
html.style.backgroundColor = colors[currentColorIndex].htmlColor;
|
|
body.style.backgroundColor = colors[currentColorIndex].htmlColor;
|
|
screen.style.backgroundColor = colors[currentColorIndex].screenColor;
|
|
|
|
dpadButtons.forEach((button) => {
|
|
button.style.backgroundColor = colors[currentColorIndex].buttonColor;
|
|
button.style.color = colors[currentColorIndex].buttonTextColor;
|
|
});
|
|
|
|
// Using darker dpad center color
|
|
dpadCenter.style.backgroundColor = colors[currentColorIndex].dpadCenterColor;
|
|
dpadCenter.style.color = colors[currentColorIndex].buttonTextColor;
|
|
|
|
actionButtons.forEach((button) => {
|
|
button.style.backgroundColor = colors[currentColorIndex].buttonColor;
|
|
button.style.color = colors[currentColorIndex].buttonTextColor;
|
|
});
|
|
}
|
|
|
|
left.addEventListener("click", () => {
|
|
currentColorIndex = (currentColorIndex - 1 + colors.length) % colors.length;
|
|
localStorage.setItem("gameboyColorIndex", currentColorIndex);
|
|
updateGameBoyColor();
|
|
});
|
|
|
|
right.addEventListener("click", () => {
|
|
currentColorIndex = (currentColorIndex + 1) % colors.length;
|
|
localStorage.setItem("gameboyColorIndex", currentColorIndex);
|
|
updateGameBoyColor();
|
|
});
|
|
|
|
updateGameBoyColor();
|