mirror of
https://github.com/cmclark00/mintris.git
synced 2025-05-18 10:35:21 +01:00
Fix level-based scoring to maintain starting level throughout gameplay
This commit is contained in:
parent
d2554d5dfc
commit
dcc4cc28d5
1 changed files with 6 additions and 3 deletions
|
@ -29,6 +29,7 @@ class GameBoard(
|
|||
// Game state
|
||||
var score = 0
|
||||
var level = 1
|
||||
var startingLevel = 1 // Add this line to track the starting level
|
||||
var lines = 0
|
||||
var isGameOver = false
|
||||
var isHardDropInProgress = false // Make public
|
||||
|
@ -439,7 +440,8 @@ class GameBoard(
|
|||
|
||||
// Update lines cleared and level
|
||||
lines += clearedLines
|
||||
level = (lines / 10) + 1
|
||||
// Calculate level based on lines cleared, but ensure it's never below the starting level
|
||||
level = Math.max((lines / 10) + 1, startingLevel)
|
||||
|
||||
// Update game speed based on level (NES formula)
|
||||
dropInterval = (1000 * Math.pow(0.8, (level - 1).toDouble())).toLong()
|
||||
|
@ -519,6 +521,7 @@ class GameBoard(
|
|||
*/
|
||||
fun updateLevel(newLevel: Int) {
|
||||
level = newLevel.coerceIn(1, 20)
|
||||
startingLevel = level // Store the starting level
|
||||
// Update game speed based on level (NES formula)
|
||||
dropInterval = (1000 * Math.pow(0.8, (level - 1).toDouble())).toLong()
|
||||
}
|
||||
|
@ -546,10 +549,10 @@ class GameBoard(
|
|||
|
||||
// Reset game state
|
||||
score = 0
|
||||
level = 1
|
||||
level = startingLevel // Use starting level instead of resetting to 1
|
||||
lines = 0
|
||||
isGameOver = false
|
||||
dropInterval = 1000L // Reset to level 1 speed
|
||||
dropInterval = (1000 * Math.pow(0.8, (level - 1).toDouble())).toLong() // Set speed based on current level
|
||||
|
||||
// Reset scoring state
|
||||
combo = 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue