From 60f94461e7954546f577205b476e28f377686c05 Mon Sep 17 00:00:00 2001 From: Renan LE CARO Date: Sat, 22 Mar 2025 16:47:02 +0100 Subject: [PATCH] Build 29044306 --- app/build.gradle.kts | 4 ++-- app/src/main/assets/index.html | 2 +- dist/index.html | 14 +++++++++----- src/PWA/sw-b71.js | 2 +- src/data/version.json | 2 +- src/gameStateMutators.ts | 27 ++++++++++++++++----------- src/newGameState.ts | 2 +- src/types.d.ts | 2 +- 8 files changed, 32 insertions(+), 23 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cb40b81..cbbd740 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,8 +11,8 @@ android { applicationId = "me.lecaro.breakout" minSdk = 21 targetSdk = 34 - versionCode = 29044264 - versionName = "29044264" + versionCode = 29044306 + versionName = "29044306" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index 453c6af..02bfd2c 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1 @@ -Breakout 71 \ No newline at end of file +Breakout 71 \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 659aab0..4e1a915 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1271,7 +1271,7 @@ const upgrades = (0, _upgrades.rawUpgrades).map((u)=>({ })); },{"./data/palette.json":"ktRBU","./data/levels.json":"8JSUc","./data/version.json":"iyP6E","./upgrades":"1u3Dx","./getLevelBackground":"7OIPf","./levelIcon":"6rQoT","@parcel/transformer-js/src/esmodule-helpers.js":"gkKU3"}],"iyP6E":[function(require,module,exports,__globalThis) { -module.exports = JSON.parse("\"29044264\""); +module.exports = JSON.parse("\"29044306\""); },{}],"1u3Dx":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -2629,7 +2629,7 @@ async function setLevel(gameState, l) { if (l > 0) await (0, _game.openUpgradesPicker)(gameState); gameState.currentLevel = l; gameState.levelTime = 0; - gameState.noBricksSince = 0; + gameState.winAt = 0; gameState.levelWallBounces = 0; gameState.autoCleanUses = 0; gameState.lastTickDown = gameState.levelTime; @@ -2778,8 +2778,12 @@ frames = 1) { gameState.autoCleanUses++; } const hasPendingBricks = gameState.perks.respawn && gameState.balls.find((b)=>b.hitItem.length > 1); - if (gameState.running && !remainingBricks && gameState.noBricksSince == 0 && !hasPendingBricks) gameState.noBricksSince ||= gameState.levelTime; - if (!remainingBricks && (!liveCount(gameState.coins) || gameState.levelTime > gameState.noBricksSince + 5000)) { + if (gameState.running && !remainingBricks && !hasPendingBricks) { + if (!gameState.winAt) gameState.winAt = gameState.levelTime + 5000; + } else gameState.winAt = 0; + if (// Delayed win when coins are still flying + gameState.winAt && gameState.levelTime > gameState.winAt || // instant win condition + gameState.running && gameState.levelTime && !remainingBricks && !liveCount(gameState.coins)) { if (gameState.currentLevel + 1 < (0, _gameUtils.max_levels)(gameState)) { if (gameState.running) setLevel(gameState, gameState.currentLevel + 1); } else (0, _gameOver.gameOver)((0, _i18N.t)("gameOver.win.title"), (0, _i18N.t)("gameOver.win.summary", { @@ -4100,7 +4104,7 @@ function newGameState(params) { }, lastOffered: {}, levelTime: 0, - noBricksSince: 0, + winAt: 0, levelWallBounces: 0, needsRender: true, autoCleanUses: 0, diff --git a/src/PWA/sw-b71.js b/src/PWA/sw-b71.js index 44e8758..7160090 100644 --- a/src/PWA/sw-b71.js +++ b/src/PWA/sw-b71.js @@ -1,5 +1,5 @@ // The version of the cache. -const VERSION = "29044264"; +const VERSION = "29044306"; // The name of the cache const CACHE_NAME = `breakout-71-${VERSION}`; diff --git a/src/data/version.json b/src/data/version.json index 981001b..f6988b2 100644 --- a/src/data/version.json +++ b/src/data/version.json @@ -1 +1 @@ -"29044264" +"29044306" diff --git a/src/gameStateMutators.ts b/src/gameStateMutators.ts index b70c6f6..761c76d 100644 --- a/src/gameStateMutators.ts +++ b/src/gameStateMutators.ts @@ -521,7 +521,7 @@ export async function setLevel(gameState: GameState, l: number) { } gameState.currentLevel = l; gameState.levelTime = 0; - gameState.noBricksSince = 0; + gameState.winAt = 0; gameState.levelWallBounces = 0; gameState.autoCleanUses = 0; gameState.lastTickDown = gameState.levelTime; @@ -814,18 +814,23 @@ export function gameStateTick( const hasPendingBricks = gameState.perks.respawn && gameState.balls.find((b) => b.hitItem.length > 1); - if ( - gameState.running && - !remainingBricks && - gameState.noBricksSince == 0 && - !hasPendingBricks - ) { - gameState.noBricksSince ||= gameState.levelTime; + + if (gameState.running && !remainingBricks && !hasPendingBricks) { + if (!gameState.winAt) { + gameState.winAt = gameState.levelTime + 5000; + } + } else { + gameState.winAt = 0; } + if ( - !remainingBricks && - (!liveCount(gameState.coins) || - gameState.levelTime > gameState.noBricksSince + 5000) + // Delayed win when coins are still flying + (gameState.winAt && gameState.levelTime > gameState.winAt) || + // instant win condition + (gameState.running && + gameState.levelTime && + !remainingBricks && + !liveCount(gameState.coins)) ) { if (gameState.currentLevel + 1 < max_levels(gameState)) { if (gameState.running) { diff --git a/src/newGameState.ts b/src/newGameState.ts index 581cf13..bfdaca5 100644 --- a/src/newGameState.ts +++ b/src/newGameState.ts @@ -94,7 +94,7 @@ export function newGameState(params: RunParams): GameState { }, lastOffered: {}, levelTime: 0, - noBricksSince: 0, + winAt: 0, levelWallBounces: 0, needsRender: true, autoCleanUses: 0, diff --git a/src/types.d.ts b/src/types.d.ts index 57f9566..36be003 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -251,7 +251,7 @@ export type GameState = { runStatistics: RunStats; lastOffered: Partial<{ [k in PerkId]: number }>; levelTime: number; - noBricksSince: number; + winAt: number; levelWallBounces: number; autoCleanUses: number; aboutToPlaySound: {