You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.7 KiB
68 lines
1.7 KiB
// Nastavní proměnných (stav hry)
|
|
let skore = 0;
|
|
let slepice = 0;
|
|
let cenaSlepice = 10;
|
|
|
|
//Propojení s HTML (DOM)
|
|
const spanSkore = document.getElementById("skore");
|
|
const spanSlepice = document.getElementById("pocetSlepic");
|
|
const spanCena = document.getElementById("cenaSlepice");
|
|
const btnEgg = document.getElementById("egg");
|
|
const btnKup = document.getElementById("btnKupSlepici");
|
|
|
|
//Funce pro načtení z paměti (localStorage)
|
|
function nactiData() {
|
|
const ulozeneSkore = localStorage.getItem("clicker_skore");
|
|
const ulozeneSlepice = localStorage.getItem("clicker_slepice")
|
|
|
|
if (ulozeneSkore) skore = parseInt(ulozeneSkore);
|
|
if (ulozeneSlepice) {
|
|
slepice = parseInt(ulozeneSlepice);
|
|
cenaSlepice = 10 + (slepice * 5);
|
|
}
|
|
aktualizujWeb();
|
|
}
|
|
function ulozData() {
|
|
localStorage.setItem("clicker_skore", skore);
|
|
localStorage.setItem("clicker_slepice", slepice);
|
|
}
|
|
|
|
function aktualizujWeb() {
|
|
spanSkore.innerText = Math.floor(skore);
|
|
spanSlepice.innerText = slepice;
|
|
spanCena.innerText = cenaSlepice;
|
|
|
|
if (skore < cenaSlepice) {
|
|
btnKup.classList.add("disabled");
|
|
} else {
|
|
btnKup.classList.remove("disabled");
|
|
}
|
|
}
|
|
|
|
//logika klikání
|
|
btnEgg.addEventListener("click", () => {
|
|
skore++;
|
|
aktualizujWeb();
|
|
ulozData();
|
|
})
|
|
//logika nákupu slepice
|
|
btnKup.addEventListener("click", () => {
|
|
if (skore >= cenaSlepice) {
|
|
skore -= cenaSlepice;
|
|
slepice++;
|
|
cenaSlepice += 5;
|
|
aktualizujWeb();
|
|
ulozData();
|
|
}
|
|
})
|
|
//automatické přičítání (Interval)
|
|
setInterval(() => {
|
|
if (slepice > 0) {
|
|
skore += slepice / 10;
|
|
aktualizujWeb()
|
|
ulozData()
|
|
}
|
|
}, 100); //100ms = 10x za vteřinu
|
|
|
|
//Start hry
|
|
nactiData()
|