time
This commit is contained in:
parent
16aa5d3d6b
commit
2700d8e2a2
33
app.js
33
app.js
@ -413,11 +413,12 @@ class Stats {
|
|||||||
this.highScore = Number(localStorage["highScore"]) || 0
|
this.highScore = Number(localStorage["highScore"]) || 0
|
||||||
this.combo = -1
|
this.combo = -1
|
||||||
this.b2b = -1
|
this.b2b = -1
|
||||||
|
this.time = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
set score(score) {
|
set score(score) {
|
||||||
this._score = score
|
this._score = score
|
||||||
scoreTd.innerText = score.toLocaleString()
|
scoreCell.innerText = score.toLocaleString()
|
||||||
if (score > this.highScore) {
|
if (score > this.highScore) {
|
||||||
this.highScore = score
|
this.highScore = score
|
||||||
}
|
}
|
||||||
@ -429,7 +430,7 @@ class Stats {
|
|||||||
|
|
||||||
set highScore(highScore) {
|
set highScore(highScore) {
|
||||||
this._highScore = highScore
|
this._highScore = highScore
|
||||||
highScoreTd.innerText = highScore.toLocaleString()
|
highScoreCell.innerText = highScore.toLocaleString()
|
||||||
}
|
}
|
||||||
|
|
||||||
get highScore() {
|
get highScore() {
|
||||||
@ -445,7 +446,7 @@ class Stats {
|
|||||||
if (level > 15)
|
if (level > 15)
|
||||||
this.lockDelay = 500 * Math.pow(0.9, level - 15)
|
this.lockDelay = 500 * Math.pow(0.9, level - 15)
|
||||||
levelInput.value = level
|
levelInput.value = level
|
||||||
levelTd.innerText = level
|
levelCell.innerText = level
|
||||||
levelSpan.innerHTML = `<h1>LEVEL<br/>${this.level}</h1>`
|
levelSpan.innerHTML = `<h1>LEVEL<br/>${this.level}</h1>`
|
||||||
levelSpan.classList.add("show-level-animation")
|
levelSpan.classList.add("show-level-animation")
|
||||||
}
|
}
|
||||||
@ -456,13 +457,22 @@ class Stats {
|
|||||||
|
|
||||||
set goal(goal) {
|
set goal(goal) {
|
||||||
this._goal = goal
|
this._goal = goal
|
||||||
goalTd.innerText = goal
|
goalCell.innerText = goal
|
||||||
}
|
}
|
||||||
|
|
||||||
get goal() {
|
get goal() {
|
||||||
return this._goal
|
return this._goal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set time(time) {
|
||||||
|
this._time = time
|
||||||
|
timeCell.innerText = this.timeFormat.format(1000 * time)
|
||||||
|
}
|
||||||
|
|
||||||
|
get time() {
|
||||||
|
return this._time
|
||||||
|
}
|
||||||
|
|
||||||
lockDown(nbClearedLines, tSpin) {
|
lockDown(nbClearedLines, tSpin) {
|
||||||
// Cleared lines & T-Spin
|
// Cleared lines & T-Spin
|
||||||
let patternScore = SCORES[tSpin][nbClearedLines] * this.level
|
let patternScore = SCORES[tSpin][nbClearedLines] * this.level
|
||||||
@ -523,6 +533,11 @@ class Stats {
|
|||||||
if (this.goal <= 0) this.level++
|
if (this.goal <= 0) this.level++
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Stats.prototype.timeFormat = new Intl.DateTimeFormat("fr-FR", {
|
||||||
|
minute: "2-digit",
|
||||||
|
second: "2-digit",
|
||||||
|
timeZone: "UTC"
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
/* Game */
|
/* Game */
|
||||||
@ -550,6 +565,7 @@ function pause() {
|
|||||||
scheduler.clearTimeout(lockDown)
|
scheduler.clearTimeout(lockDown)
|
||||||
scheduler.clearTimeout(repeat)
|
scheduler.clearTimeout(repeat)
|
||||||
scheduler.clearInterval(autorepeat)
|
scheduler.clearInterval(autorepeat)
|
||||||
|
scheduler.clearInterval(clock)
|
||||||
resumeButton.disabled = false
|
resumeButton.disabled = false
|
||||||
settings.modal.show()
|
settings.modal.show()
|
||||||
}
|
}
|
||||||
@ -581,9 +597,14 @@ function resume(event) {
|
|||||||
document.onkeydown = onkeydown
|
document.onkeydown = onkeydown
|
||||||
document.onkeyup = onkeyup
|
document.onkeyup = onkeyup
|
||||||
|
|
||||||
|
scheduler.setInterval(clock, 1000)
|
||||||
if (stats.fallPeriod) scheduler.setInterval(fall, stats.fallPeriod)
|
if (stats.fallPeriod) scheduler.setInterval(fall, stats.fallPeriod)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function clock() {
|
||||||
|
stats.time++
|
||||||
|
}
|
||||||
|
|
||||||
function generate(piece=nextQueue.shift()) {
|
function generate(piece=nextQueue.shift()) {
|
||||||
matrix.piece = piece
|
matrix.piece = piece
|
||||||
|
|
||||||
@ -740,8 +761,12 @@ function lockDown() {
|
|||||||
function gameOver() {
|
function gameOver() {
|
||||||
matrix.piece.locked = false
|
matrix.piece.locked = false
|
||||||
matrix.drawPiece()
|
matrix.drawPiece()
|
||||||
|
|
||||||
document.onkeydown = null
|
document.onkeydown = null
|
||||||
document.onkeyup = null
|
document.onkeyup = null
|
||||||
|
|
||||||
|
scheduler.clearInterval(clock)
|
||||||
|
|
||||||
localStorage["highScore"] = stats.highScore
|
localStorage["highScore"] = stats.highScore
|
||||||
levelSpan.innerHTML = "<h1>GAME<br/>OVER</h1>"
|
levelSpan.innerHTML = "<h1>GAME<br/>OVER</h1>"
|
||||||
levelSpan.classList.add("show-level-animation")
|
levelSpan.classList.add("show-level-animation")
|
||||||
|
@ -119,10 +119,11 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card w-100">
|
<div class="card w-100">
|
||||||
<table id="statsTable" class="table mb-0 align-middle">
|
<table id="statsTable" class="table mb-0 align-middle">
|
||||||
<tr><td>Score</td><th id="scoreTd" class="text-end">0</th></tr>
|
<tr><td>Score</td><th id="scoreCell" class="text-end">0</th></tr>
|
||||||
<tr><td>Meilleur score</td><th id="highScoreTd" class="text-end">0</th></tr>
|
<tr><td>Meilleur score</td><th id="highScoreCell" class="text-end">0</th></tr>
|
||||||
<tr><td>Niveau</td><th id="levelTd" class="text-end">0</th></tr>
|
<tr><td>Niveau</td><th id="levelCell" class="text-end">0</th></tr>
|
||||||
<tr><td>But</td><th id="goalTd" class="text-end">0</th></tr>
|
<tr><td>But</td><th id="goalCell" class="text-end">0</th></tr>
|
||||||
|
<tr><td>Temps</td><th id="timeCell" class="text-end">00:00</th></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user