From eac9b8914b80521618f516c20df551ba21b8367f Mon Sep 17 00:00:00 2001
From: adrien <adrien@malingrey.fr>
Date: Fri, 21 Apr 2023 19:32:48 +0200
Subject: [PATCH] B2B

---
 app.js | 30 +++++++++++++++++++-----------
 1 file changed, 19 insertions(+), 11 deletions(-)

diff --git a/app.js b/app.js
index ad25ac7..ffcd7ac 100644
--- a/app.js
+++ b/app.js
@@ -412,6 +412,7 @@ class Stats {
     constructor() {
         this.highScore = Number(localStorage["highScore"]) || 0
         this.combo = -1
+        this.b2b = -1
     }
 
     set score(score) {
@@ -466,29 +467,36 @@ class Stats {
         messagesSpan.innerHTML = ""
 
         // Cleared lines & T-Spin
-        if (nbClearedLines || tSpin ) {
-            this.goal -= nbClearedLines
-            let patternScore = SCORES[tSpin][nbClearedLines] * this.level
-            this.score += patternScore
-
-            if (tSpin) messagesSpan.innerHTML += `<div class="rotate-in-animation">${tSpin}</div>\n`
-            if (nbClearedLines) messagesSpan.innerHTML += `<div class="zoom-in-animation">${CLEARED_LINES_NAMES[nbClearedLines]}</div>\n`
-            messagesSpan.innerHTML += `<div class="zoom-in-animation">${patternScore}</div>\n`
-        }
+        let patternScore = SCORES[tSpin][nbClearedLines] * this.level
+        if (tSpin) messagesSpan.innerHTML += `<div class="rotate-in-animation">${tSpin}</div>\n`
+        if (nbClearedLines) messagesSpan.innerHTML += `<div class="zoom-in-animation">${CLEARED_LINES_NAMES[nbClearedLines]}</div>\n`
+        if (patternScore) messagesSpan.innerHTML += `<div class="zoom-in-animation">${patternScore}</div>\n`
+        this.score += patternScore
 
         // Combo
         if (nbClearedLines) {
             this.combo++
             if (this.combo >= 1) {
                 let comboScore = (nbClearedLines == 1 ? 20 : 50) * this.combo * this.level
+                messagesSpan.innerHTML += `<div class="zoom-in-animation">COMBO x${this.combo}<br/>${comboScore}</div>\n`
                 this.score += comboScore
-                messagesSpan.innerHTML += `<div class="zoom-in-animation">COMBO x${this.combo}</div>\n`
-                messagesSpan.innerHTML += `<div class="zoom-in-animation">${comboScore}</div>\n`
             }
         } else {
             this.combo = -1
         }
 
+        // Back to back sequence
+        if ((clearedLines == 4) || (tSpin && clearedLines)) {
+            if (this.b2b >= 1) {
+                let b2bScore = patternScore / 2
+                messagesSpan.innerHTML += `<div class="zoom-in-animation">BACK TO BACK x${this.b2b}<br/>${b2bScore}</div>\n`
+                this.score += b2bScore
+            }
+        } else {
+            this.b2b = -1
+        }
+
+        this.goal -= nbClearedLines
         if (this.goal <= 0) this.level++
     }
 }