Witam, mam następującą funkcję:
function upgraded_relicts(relict, relict_rank, action)
{
if(relict_arr[relict] >= 2)
{
var random_number = Math.floor(Math.random()*100)+1;
if(random_number <= upgrade_chance_arr[relict_rank])
{
relict_arr[relict] -= 2;
relict_arr[relict_rank]++;
console.log('ulepszanie się powiodło');
}
else
{
relict_arr[relict] -= 2;
console.log('ulepszanie się nie powiodło');
}
}
else
{
document.getElementById(`action${action}`).innerHTML = "You don\'t have enough relicts";
setTimeout(function()
{
if(selected_page == "upgrade_relicts1")
{
console.log(selected_page);
switch(relict)
{
case 1:
document.getElementById("action1").innerHTML = `<img src="img/relict1_1.png" class="relict" title="+${relict_bonus_arr[1]} coins per click" /> x2 ==> <img src="img/relict1_2.png" class="relict" title="+${relict_bonus_arr[5]} coins per click" /> x1 (${upgrade_chance_arr[2]}% chance of upgrade)`;
break;
case 2:
document.getElementById("action2").innerHTML = `<img src="img/relict2_1.png" class="relict" title="+${relict_bonus_arr[2]} coins per second" /> x2 ==> <img src="img/relict2_2.png" class="relict" title="+${relict_bonus_arr[6]} coins per second" /> x1 (${upgrade_chance_arr[2]}% chance of upgrade)`;
break;
case 3:
document.getElementById("action3").innerHTML = `<img src="img/relict3_1.png" class="relict" title="+${relict_bonus_arr[3]} coins if lucky" /> x2 ==> <img src="img/relict3_2.png" class="relict" title="+${relict_bonus_arr[7]} coins if lucky" /> x1 (${upgrade_chance_arr[2]}% chance of upgrade)`;
break;
case 4:
document.getElementById("action4").innerHTML = `<img src="img/relict4_1.png" class="relict" title="+${relict_bonus_arr[4]}% luck" /> x2 ==> <img src="img/relict4_2.png" class="relict" title="+${relict_bonus_arr[8]}% luck" /> x1 (${upgrade_chance_arr[2]}% chance of upgrade)`;
break;
}
}
else if(selected_page == "upgrade_relicts2")
{
console.log(selected_page);
switch(relict)
{
case 1:
document.getElementById("action1").innerHTML = `<img src="img/relict1_2.png" class="relict" title="+${relict_bonus_arr[5]} coins per click" /> x2 ==> <img src="img/relict1_3.png" class="relict" title="+${relict_bonus_arr[9]} coins per click" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
break;
case 2:
document.getElementById("action2").innerHTML = `<img src="img/relict2_2.png" class="relict" title="+${relict_bonus_arr[6]} coins per second" /> x2 ==> <img src="img/relict2_3.png" class="relict" title="+${relict_bonus_arr[10]} coins per second" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
break;
case 3:
document.getElementById("action3").innerHTML = `<img src="img/relict3_2.png" class="relict" title="+${relict_bonus_arr[7]} coins if lucky" /> x2 ==> <img src="img/relict3_3.png" class="relict" title="+${relict_bonus_arr[11]} coins if lucky" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
break;
case 4:
document.getElementById("action4").innerHTML = `<img src="img/relict4_2.png" class="relict" title="+${relict_bonus_arr[8]}% luck" /> x2 ==> <img src="img/relict4_3.png" class="relict" title="+${relict_bonus_arr[12]}% luck" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
break;
}
}
else if(selected_page == "upgrade_relicts3")
{
console.log(selected_page);
switch(relict)
{
case 1:
document.getElementById("action1").innerHTML = `<img src="img/relict1_3.png" class="relict" title="+${relict_bonus_arr[9]} coins per click" /> x2 ==> <img src="img/relict1_4.png" class="relict" title="+${relict_bonus_arr[13]} coins per click" /> x1 (${upgrade_chance_arr[4]}% chance of upgrade)`;
break;
case 2:
document.getElementById("action2").innerHTML = `<img src="img/relict2_3.png" class="relict" title="+${relict_bonus_arr[10]} coins per second" /> x2 ==> <img src="img/relict2_4.png" class="relict" title="+${relict_bonus_arr[14]} coins per second" /> x1 (${upgrade_chance_arr[4]}% chance of upgrade)`;
break;
case 3:
document.getElementById("action3").innerHTML = `<img src="img/relict3_3.png" class="relict" title="+${relict_bonus_arr[11]} coins if lucky" /> x2 ==> <img src="img/relict3_4.png" class="relict" title="+${relict_bonus_arr[15]} coins if lucky" /> x1 (${upgrade_chance_arr[4]}% chance of upgrade)`;
break;
case 4:
document.getElementById("action4").innerHTML = `<img src="img/relict4_3.png" class="relict" title="+${relict_bonus_arr[12]}% luck" /> x2 ==> <img src="img/relict4_4.png" class="relict" title="+${relict_bonus_arr[16]}% luck" /> x1 (${upgrade_chance_arr[4]}% chance of upgrade)`;
break;
}
}
else if(selected_page == "upgrade_relicts4")
{
console.log(selected_page);
switch(relict)
{
case 1:
document.getElementById("action1").innerHTML = `<img src="img/relict1_4.png" class="relict" title="+${relict_bonus_arr[13]} coins per click" /> x2 ==> <img src="img/relict1_5.png" class="relict" title="+${relict_bonus_arr[17]} coins per click" /> x1 (${upgrade_chance_arr[5]}% chance of upgrade)`;
break;
case 2:
document.getElementById("action2").innerHTML = `<img src="img/relict2_4.png" class="relict" title="+${relict_bonus_arr[14]} coins per second" /> x2 ==> <img src="img/relict2_5.png" class="relict" title="+${relict_bonus_arr[18]} coins per second" /> x1 (${upgrade_chance_arr[5]}% chance of upgrade)`;
break;
case 3:
document.getElementById("action3").innerHTML = `<img src="img/relict3_4.png" class="relict" title="+${relict_bonus_arr[15]} coins if lucky" /> x2 ==> <img src="img/relict3_5.png" class="relict" title="+${relict_bonus_arr[19]} coins if lucky" /> x1 (${upgrade_chance_arr[5]}% chance of upgrade)`;
break;
case 4:
document.getElementById("action4").innerHTML = `<img src="img/relict4_4.png" class="relict" title="+${relict_bonus_arr[16]}% luck" /> x2 ==> <img src="img/relict4_5.png" class="relict" title="+${relict_bonus_arr[20]}% luck" /> x1 (${upgrade_chance_arr[5]}% chance of upgrade)`;
break;
}
}
}, 2000);
}
}
w skrócie chodzi o to, że jeżeli nie ma się danej ilości relictów, to funkcja podmienia zawartość diva na "You don't have enough relicts", a następnie jeżeli ktoś nie zmienił zakładki na stronie (np. nie przeszedł do zakładki shop lub na następną stronę w relict_shop), to podmienia wartość tego diva na poprzednią. Problem jest w tym, że działa to tylko i wyłącznie dla zakładki numer 1. (if(selected_page == "upgrade_relicts1")). Na innych zakładkach nie chce to działać. Jaki jest tego powód?
[edit]
Dodam też, że nie jest to kwestia kodu wewnątrz if'a, ponieważ przekopiowałem z zakładki 1 i również nie działa. Próbowałem również dostarczanie "selected_page" jako "page" w argumencie funkcji i wpisanie "page" do if'a, ale również działało tylko dla pierwszej zakładki. Po kliknięciu na stronę, również w funkcji przypisuję zmiennej "selected_page = "upgrade_relicts1";", "selected_page = "upgrade_relicts2";" itd.
W console.log() za każdym razem prawidłowo wyświetla numer strony, tylko nie chce podmienić innerHTML.
[EDIT2]
właśnie odkryłem, że problemem jest to, że w ogóle nie wykonuje się switch z case'ami ustalonymi w stronach od 2 do 4, ponieważ po dopisaniu console.log() w case, nawet nie dostaje się nic w konsoli. ALE kiedy dopiszę zamiast "case", "default" na końcu (dla pozostałych przypadków), wtedy wykonuje się default. Kiedy ustawiłem zmienną var relict = 1 na globalną, wtedy na każdej stronie dla action1 wykonuje się podmiana, lecz kiedy w funkcji podmieniam wartość, to na pierwszej stronie działa tylko dla 1, a na pozostałych w ogóle nie działa. W jaki sposób można to naprawić?
switch wygląda następująco:
switch(relict)
{
case 1:
document.getElementById("action1").innerHTML = `<img src="img/relict1_2.png" class="relict" title="+${relict_bonus_arr[5]} coins per click" /> x2 ==> <img src="img/relict1_3.png" class="relict" title="+${relict_bonus_arr[9]} coins per click" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
console.log("nie zmieniono");
break;
case 2:
document.getElementById("action2").innerHTML = `<img src="img/relict2_2.png" class="relict" title="+${relict_bonus_arr[6]} coins per second" /> x2 ==> <img src="img/relict2_3.png" class="relict" title="+${relict_bonus_arr[10]} coins per second" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
console.log("nie zmieniono");
break;
case 3:
document.getElementById("action3").innerHTML = `<img src="img/relict3_2.png" class="relict" title="+${relict_bonus_arr[7]} coins if lucky" /> x2 ==> <img src="img/relict3_3.png" class="relict" title="+${relict_bonus_arr[11]} coins if lucky" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
console.log("nie zmieniono");
break;
case 4:
document.getElementById("action4").innerHTML = `<img src="img/relict4_2.png" class="relict" title="+${relict_bonus_arr[8]}% luck" /> x2 ==> <img src="img/relict4_3.png" class="relict" title="+${relict_bonus_arr[12]}% luck" /> x1 (${upgrade_chance_arr[3]}% chance of upgrade)`;
console.log("nie zmieniono");
break;
default:
console.log("wykonano default");
break;
}