39 lines
1.7 KiB
JavaScript
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>';
|
|
}
|
|
|
|
});
|