2025-01-04 21:00:39 +01:00
|
|
|
'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');
|
2025-01-04 21:44:30 +01:00
|
|
|
const dpadCenter = document.querySelector('.dpad-center'); // Darker variant
|
2025-01-04 21:00:39 +01:00
|
|
|
const actionButtons = document.querySelectorAll('.btn');
|
|
|
|
|
|
|
|
const colors = [
|
2025-01-04 21:44:30 +01:00
|
|
|
{ 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' }
|
2025-01-04 21:00:39 +01:00
|
|
|
];
|
|
|
|
|
|
|
|
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;
|
|
|
|
});
|
|
|
|
|
2025-01-04 21:44:30 +01:00
|
|
|
// Using darker dpad center color
|
|
|
|
dpadCenter.style.backgroundColor = colors[currentColorIndex].dpadCenterColor;
|
|
|
|
dpadCenter.style.color = colors[currentColorIndex].buttonTextColor;
|
|
|
|
|
2025-01-04 21:00:39 +01:00
|
|
|
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();
|