Build 29088513

This commit is contained in:
Renan LE CARO 2025-04-22 10:33:25 +02:00
parent bf3dac8e8f
commit af65737011
10 changed files with 58 additions and 59 deletions

View file

@ -17,7 +17,9 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
## Done
- included german corrections by Pock
- added particle effect for wrap
- removed grace period from passive income, updated icon
## 29087440

View file

@ -29,8 +29,8 @@ android {
applicationId = "me.lecaro.breakout"
minSdk = 21
targetSdk = 34
versionCode = 29087440
versionName = "29087440"
versionCode = 29088513
versionName = "29088513"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables {
useSupportLibrary = true

File diff suppressed because one or more lines are too long

12
dist/index.html vendored

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
// The version of the cache.
const VERSION = "29087440";
const VERSION = "29088513";
// The name of the cache
const CACHE_NAME = `breakout-71-${VERSION}`;

View file

@ -817,8 +817,8 @@
},
{
"name": "icon:passive_income",
"size": 8,
"bricks": "__________tttt____tttt_______________W___________________rWWWr__",
"size": 7,
"bricks": "_ttttt__ttt_t______W____y____________y______ggg__",
"color": ""
},
{

View file

@ -1 +1 @@
"29087440"
"29088513"

View file

@ -1565,40 +1565,41 @@ export function gameStateTick(
}
}
if(
gameState.perks.wrap_left &&
gameState.perks.left_is_lava<2 &&
Math.random()*frames > 0.1){
makeParticle(
gameState,
gameState.offsetXRoundedDown,
Math.random() * gameState.gameZoneHeight,
5,
(Math.random() - 0.5) * 10,
"#6262EA",
true,
gameState.coinSize / 2,
100 * (Math.random() + 1),
);
if (
gameState.perks.wrap_left &&
gameState.perks.left_is_lava < 2 &&
Math.random() * frames > 0.1
) {
makeParticle(
gameState,
gameState.offsetXRoundedDown,
Math.random() * gameState.gameZoneHeight,
5,
(Math.random() - 0.5) * 10,
"#6262EA",
true,
gameState.coinSize / 2,
100 * (Math.random() + 1),
);
}
if(
gameState.perks.wrap_right &&
gameState.perks.right_is_lava<2 &&
Math.random()*frames > 0.1){
makeParticle(
gameState,
gameState.offsetXRoundedDown+gameState.gameZoneWidth,
Math.random() * gameState.gameZoneHeight,
-5,
(Math.random() - 0.5) * 10,
"#6262EA",
true,
gameState.coinSize / 2,
100 * (Math.random() + 1),
);
if (
gameState.perks.wrap_right &&
gameState.perks.right_is_lava < 2 &&
Math.random() * frames > 0.1
) {
makeParticle(
gameState,
gameState.offsetXRoundedDown + gameState.gameZoneWidth,
Math.random() * gameState.gameZoneHeight,
-5,
(Math.random() - 0.5) * 10,
"#6262EA",
true,
gameState.coinSize / 2,
100 * (Math.random() + 1),
);
}
// Respawn what's needed, show particles
forEachLiveOne(gameState.respawns, (r, ri) => {
if (gameState.bricks[r.index]) {
@ -1740,7 +1741,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
ball.sidesHitsSinceBounce++;
if (ball.sidesHitsSinceBounce <= gameState.perks.three_cushion * 3) {
increaseCombo(gameState, 1, ball.x, ball.y);
}
}
if (
gameState.perks.wrap_left &&
borderHitCode % 2 &&
@ -1748,8 +1749,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
ball.previousX < gameState.offsetX + gameState.gameZoneWidth / 2
) {
schedulGameSound(gameState, "plouf", ball.x, 1);
ball.x =
gameState.offsetX + gameState.gameZoneWidth - gameState.ballSize ;
ball.x = gameState.offsetX + gameState.gameZoneWidth - gameState.ballSize;
if (ball.vx > 0) {
ball.vx *= -1;
}
@ -1767,7 +1767,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
ball.previousX > gameState.offsetX + gameState.gameZoneWidth / 2
) {
schedulGameSound(gameState, "plouf", ball.x, 1);
ball.x = gameState.offsetX + gameState.ballSize ;
ball.x = gameState.offsetX + gameState.ballSize;
if (ball.vx < 0) {
ball.vx *= -1;
@ -1819,7 +1819,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
const ballIsUnderPuck =
Math.abs(ball.x - gameState.puckPosition) <
gameState.ballSize / 2 + gameState.puckWidth / 2 &&
!isMovingWhilePassiveIncome(gameState, 150);
!isMovingWhilePassiveIncome(gameState);
if (
ball.y > ylimit &&
ball.vy > 0 &&

View file

@ -276,15 +276,12 @@ export function shouldPierceByColor(
return true;
}
export function isMovingWhilePassiveIncome(
gameState: GameState,
gracePeriod = 0,
) {
export function isMovingWhilePassiveIncome(gameState: GameState) {
return !!(
gameState.lastPuckMove &&
gameState.perks.passive_income &&
gameState.lastPuckMove >
gameState.levelTime - 250 * gameState.perks.passive_income + gracePeriod
gameState.levelTime - 250 * gameState.perks.passive_income
);
}

View file

@ -151,14 +151,14 @@ migrate("clean_ls", () => {
}
});
migrate("set_user_id", () => {
// Useful to identify a player when uploading his save file multiple times to a web service
if(!localStorage.getItem('breakout_71_user_id')){
localStorage.setItem('breakout_71_user_id', JSON.stringify(self?.crypto?.randomUUID()||'user_'+Math.random()))
if (!localStorage.getItem("breakout_71_user_id")) {
localStorage.setItem(
"breakout_71_user_id",
JSON.stringify(self?.crypto?.randomUUID() || "user_" + Math.random()),
);
}
});
afterMigration();