N hits : reset as soon as you break more bricks that demanded

This commit is contained in:
Renan LE CARO 2025-03-24 12:52:42 +01:00
parent 4710eaa152
commit 8b8e49595d
2 changed files with 12 additions and 2 deletions

3
dist/index.html vendored
View file

@ -2754,6 +2754,7 @@ function explodeBrick(gameState, index, ball, isExplosion) {
else gameState.combo += gameState.perks.reach; else gameState.combo += gameState.perks.reach;
} }
if (gameState.lastPuckMove && gameState.perks.passive_income && gameState.lastPuckMove > gameState.levelTime - 500 * gameState.perks.passive_income) resetCombo(gameState, x, y); if (gameState.lastPuckMove && gameState.perks.passive_income && gameState.lastPuckMove > gameState.levelTime - 500 * gameState.perks.passive_income) resetCombo(gameState, x, y);
if (gameState.perks.nbricks && ball.brokenSinceBounce == gameState.perks.nbricks + 1) resetCombo(gameState, ball.x, ball.y);
if (!isExplosion) { if (!isExplosion) {
// color change // color change
if ((gameState.perks.picky_eater || gameState.perks.pierce_color) && color !== gameState.ballsColor && color) { if ((gameState.perks.picky_eater || gameState.perks.pierce_color) && color !== gameState.ballsColor && color) {
@ -3212,7 +3213,7 @@ function ballTick(gameState, ball, delta) {
} }
if (gameState.perks.streak_shots) resetCombo(gameState, ball.x, ball.y); if (gameState.perks.streak_shots) resetCombo(gameState, ball.x, ball.y);
if (gameState.perks.trampoline) gameState.combo += gameState.perks.trampoline; if (gameState.perks.trampoline) gameState.combo += gameState.perks.trampoline;
if (gameState.perks.nbricks && gameState.perks.nbricks !== ball.brokenSinceBounce) resetCombo(gameState, ball.x, ball.y); if (gameState.perks.nbricks && ball.brokenSinceBounce < gameState.perks.nbricks) resetCombo(gameState, ball.x, ball.y);
if (gameState.perks.respawn) ball.hitItem.slice(0, -1).slice(0, gameState.perks.respawn).forEach(({ index, color })=>{ if (gameState.perks.respawn) ball.hitItem.slice(0, -1).slice(0, gameState.perks.respawn).forEach(({ index, color })=>{
if (!gameState.bricks[index] && color !== "black") // respawns with full hp if (!gameState.bricks[index] && color !== "black") // respawns with full hp
setBrick(gameState, index, color); setBrick(gameState, index, color);

View file

@ -436,6 +436,14 @@ export function explodeBrick(
resetCombo(gameState, x, y); resetCombo(gameState, x, y);
} }
if (
gameState.perks.nbricks &&
ball.brokenSinceBounce == gameState.perks.nbricks+1
) {
resetCombo(gameState, ball.x, ball.y);
}
if (!isExplosion) { if (!isExplosion) {
// color change // color change
if ( if (
@ -1437,7 +1445,7 @@ export function ballTick(gameState: GameState, ball: Ball, delta: number) {
} }
if ( if (
gameState.perks.nbricks && gameState.perks.nbricks &&
gameState.perks.nbricks !== ball.brokenSinceBounce ball.brokenSinceBounce< gameState.perks.nbricks
) { ) {
resetCombo(gameState, ball.x, ball.y); resetCombo(gameState, ball.x, ball.y);
} }
@ -1553,6 +1561,7 @@ export function ballTick(gameState: GameState, ball: Ball, delta: number) {
const initialBrickColor = gameState.bricks[hitBrick]; const initialBrickColor = gameState.bricks[hitBrick];
ball.brokenSinceBounce++; ball.brokenSinceBounce++;
explodeBrick(gameState, hitBrick, ball, false); explodeBrick(gameState, hitBrick, ball, false);
if ( if (
ball.sapperUses < gameState.perks.sapper && ball.sapperUses < gameState.perks.sapper &&