Files
kaltaquise-gamification/Cyst_Kid/js/screen-win.js
2026-04-16 17:20:19 +02:00

39 lines
1.7 KiB
JavaScript

// ========== 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='<table><tr><th>#</th><th>Name</th><th>Punkte</th><th>Zeit</th></tr>';
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+=`<tr><td>${i+1}</td><td>${r.n}</td><td>${r.s}</td><td>${time}</td></tr>`;
});
return h+'</table>';
}
});