"use strict"; function hideAll(){ ["screen-title","screen-game","screen-gameover","screen-transition","screen-victory"].forEach(function(id){$(id).style.display="none"}); if(animId){cancelAnimationFrame(animId);animId=null;} } function show(n){ hideAll();curScreen=n;$("screen-"+n).style.display="flex"; if(n==="title")runTitle(); if(n==="victory")runVic(); if(n==="game")startGame(); } function runTitle(){ titleHue=0; (function t(){if(curScreen!=="title")return;titleHue=(titleHue+1)%360; var e=$("title-glow");if(e)e.style.background="radial-gradient(circle at 50% 30%,hsla("+titleHue+",40%,30%,0.15) 0%,transparent 60%)"; animId=requestAnimationFrame(t)})(); } function runVic(){ vicF=0; (function t(){if(curScreen!=="victory")return;vicF+=0.05; var y=Math.sin(vicF)*10; var g=$("v-guru"),s=$("v-stone2"); if(g)g.style.transform="translateY("+y+"px)"; if(s)s.style.transform="translateY("+Math.sin(vicF+1)*6+"px)"; animId=requestAnimationFrame(t)})(); } function showTrans(l){ var c=LEVELS[l]; $("tr-ln").textContent="\u201E"+c.name+"\u201C bezwungen"; $("tr-t").textContent=c.title; $("tr-btn").textContent=l<2?"N\u00E4chstes Level":"Zum Finale"; $("tr-btn").onclick=function(){if(l>=2)show("victory");else{curLvl=l+1;show("game");}}; show("transition"); } function showGO(reason){ sfxLose(); $("go-r").textContent=reason; $("go-retry").onclick=function(){show("game")}; $("go-rst").onclick=function(){curLvl=0;show("game")}; $("go-quit").onclick=function(){show("title")}; show("gameover"); } function startGame(){ initGame(curLvl); frame=0; showTut=true; var c=LEVELS[curLvl]; $("tut-h").textContent="Level "+(curLvl+1)+": "+c.name; $("tut-sc").textContent=c.stones; $("tut-ov").style.display="flex"; $("tut-ov").onclick=function(){$("tut-ov").style.display="none";showTut=false;ea()}; updateHUD(); gameLoop(); }