// ========== WIN SCREEN ========== // Extends Game.prototype — must be loaded after game.js Object.assign(Game.prototype, { _showWin(){ document.getElementById('win-score-text').textContent='Punkte: '+this.sc; document.getElementById('submitScoreBtn').style.display=''; document.getElementById('playerName').style.display=''; document.getElementById('playAgainBtn').style.display='none'; document.getElementById('ranking-table-container').innerHTML=''; document.getElementById('win-screen').style.display='flex'; document.getElementById('playerName').value=''; document.getElementById('playerName').focus(); }, _sub(){ const nm=document.getElementById('playerName').value.trim()||'Anonym'; this.rank.push({n:nm,s:this.sc,t:this.tt,d:Math.round(this.td)}); this.rank.sort((a,b)=>{if(b.s!==a.s)return b.s-a.s;if(a.t!==b.t)return a.t-b.t;return a.d-b.d}); this.rank=this.rank.slice(0,10);localStorage.setItem('ckr3',JSON.stringify(this.rank)); document.getElementById('ranking-table-container').innerHTML=this._rankingHTML(); document.getElementById('submitScoreBtn').style.display='none'; document.getElementById('playerName').style.display='none'; document.getElementById('playerName').blur(); document.getElementById('playAgainBtn').style.display='inline-block'; }, _rankingHTML(){ let h=''; this.rank.forEach((r,i)=>{ const time=r.t<0?'-:--':`${Math.floor(r.t/FPS/60)}:${String(Math.floor(r.t/FPS%60)).padStart(2,'0')}`; h+=``; }); return h+'
#NamePunkteZeit
${i+1}${r.n}${r.s}${time}
'; } });