mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-23 05:26:15 -04:00
Build 29088680
This commit is contained in:
parent
2c8a710aab
commit
3d3e7805d6
17 changed files with 232 additions and 66 deletions
|
@ -17,7 +17,9 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
|
|||
|
||||
## Done
|
||||
|
||||
- zen : combo increases every 3 seconds, resets on explosion
|
||||
- new perk: happy family: + lvl points per paddle bounce per extra ball, reset on ball lost
|
||||
- nerfed perk : sticky coins : stick to same color at level 1, any color at level 2+
|
||||
- nerfed perk: zen : combo increases every 3 seconds, resets on explosion
|
||||
|
||||
## 29088513
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@ android {
|
|||
applicationId = "me.lecaro.breakout"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 29088513
|
||||
versionName = "29088513"
|
||||
versionCode = 29088680
|
||||
versionName = "29088680"
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
useSupportLibrary = true
|
||||
|
|
File diff suppressed because one or more lines are too long
45
dist/index.html
vendored
45
dist/index.html
vendored
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
// The version of the cache.
|
||||
const VERSION = "29088513";
|
||||
const VERSION = "29088680";
|
||||
|
||||
// The name of the cache
|
||||
const CACHE_NAME = `breakout-71-${VERSION}`;
|
||||
|
|
|
@ -1401,5 +1401,12 @@
|
|||
"bricks": "ggggggggggbbbgbbbggbgggggbggbgbgbgbgggggggggggbgbgbgbggbgggggbggbbbgbbbgggggggggg",
|
||||
"svg": null,
|
||||
"color": ""
|
||||
},
|
||||
{
|
||||
"name": "icon:happy_family",
|
||||
"size": 9,
|
||||
"bricks": "___________tt_tt____tt_tt____tt_tt__W_tt_tt_W__________W_____W____W_W____________",
|
||||
"svg": null,
|
||||
"color": ""
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1 +1 @@
|
|||
"29088513"
|
||||
"29088680"
|
||||
|
|
|
@ -403,7 +403,7 @@ export function explosionAt(
|
|||
gameState.runStatistics.bricks_broken++;
|
||||
|
||||
if (gameState.perks.zen) {
|
||||
gameState.lastZenComboIncrease = gameState.levelTime
|
||||
gameState.lastZenComboIncrease = gameState.levelTime;
|
||||
resetCombo(gameState, x, y);
|
||||
}
|
||||
}
|
||||
|
@ -482,7 +482,6 @@ export function explodeBrick(
|
|||
);
|
||||
}
|
||||
|
||||
|
||||
increaseCombo(
|
||||
gameState,
|
||||
gameState.perks.streak_shots +
|
||||
|
@ -988,7 +987,7 @@ export function gameStateTick(
|
|||
gameState.combo,
|
||||
);
|
||||
gameState.lastCombo = gameState.combo;
|
||||
zenTick(gameState)
|
||||
zenTick(gameState);
|
||||
|
||||
if (
|
||||
gameState.perks.addiction &&
|
||||
|
@ -1276,7 +1275,7 @@ export function gameStateTick(
|
|||
(clamp(speed, 20, 100) / 100) * 0.2,
|
||||
);
|
||||
if (gameState.perks.compound_interest) {
|
||||
resetCombo(gameState, coin.x, gameState.gameZoneHeight - 20);
|
||||
resetCombo(gameState, coin.x, coin.y);
|
||||
}
|
||||
if (!isOptionOn("basic")) {
|
||||
makeParticle(
|
||||
|
@ -1317,17 +1316,12 @@ export function gameStateTick(
|
|||
Math.random() / coin.points <
|
||||
(1 / gameState.combo) * gameState.perks.fountain_toss
|
||||
) {
|
||||
increaseCombo(
|
||||
gameState,
|
||||
1,
|
||||
clamp(coin.x, 20, gameState.canvasWidth - 20),
|
||||
clamp(coin.y, 20, gameState.gameZoneHeight - 20),
|
||||
);
|
||||
increaseCombo(gameState, 1, coin.x, coin.y);
|
||||
}
|
||||
}
|
||||
|
||||
const positionBeforeBrickBounceX=coin.x
|
||||
const positionBeforeBrickBounceY=coin.y
|
||||
const positionBeforeBrickBounceX = coin.x;
|
||||
const positionBeforeBrickBounceY = coin.y;
|
||||
const hitBrick = coinBrickHitCheck(gameState, coin);
|
||||
if (gameState.perks.metamorphosis && typeof hitBrick !== "undefined") {
|
||||
if (
|
||||
|
@ -1354,19 +1348,18 @@ export function gameStateTick(
|
|||
}
|
||||
}
|
||||
|
||||
if (gameState.perks.sticky_coins &&
|
||||
if (
|
||||
gameState.perks.sticky_coins &&
|
||||
typeof hitBrick !== "undefined" &&
|
||||
(
|
||||
coin.color === gameState.bricks[hitBrick] ||
|
||||
gameState.perks.sticky_coins>1
|
||||
)) {
|
||||
(coin.color === gameState.bricks[hitBrick] ||
|
||||
gameState.perks.sticky_coins > 1)
|
||||
) {
|
||||
if (coin.collidedLastFrame) {
|
||||
coin.x = coin.previousX;
|
||||
coin.y = coin.previousY;
|
||||
} else {
|
||||
coin.x=positionBeforeBrickBounceX
|
||||
coin.y=positionBeforeBrickBounceY
|
||||
|
||||
coin.x = positionBeforeBrickBounceX;
|
||||
coin.y = positionBeforeBrickBounceY;
|
||||
}
|
||||
coin.vx = 0;
|
||||
coin.vy = 0;
|
||||
|
@ -1805,15 +1798,10 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
|
|||
}
|
||||
|
||||
if (gameState.perks.top_is_lava && borderHitCode >= 2) {
|
||||
resetCombo(gameState, ball.x, ball.y + gameState.ballSize * 3);
|
||||
resetCombo(gameState, ball.x, ball.y);
|
||||
}
|
||||
if (gameState.perks.trampoline) {
|
||||
decreaseCombo(
|
||||
gameState,
|
||||
gameState.perks.trampoline,
|
||||
ball.x,
|
||||
ball.y + gameState.ballSize,
|
||||
);
|
||||
decreaseCombo(gameState, gameState.perks.trampoline, ball.x, ball.y);
|
||||
}
|
||||
|
||||
schedulGameSound(gameState, "wallBeep", ball.x, 1);
|
||||
|
@ -1855,9 +1843,15 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
|
|||
if (gameState.perks.streak_shots) {
|
||||
resetCombo(gameState, ball.x, ball.y);
|
||||
}
|
||||
if (gameState.perks.trampoline) {
|
||||
increaseCombo(gameState, gameState.perks.trampoline, ball.x, ball.y);
|
||||
}
|
||||
|
||||
increaseCombo(
|
||||
gameState,
|
||||
gameState.perks.trampoline +
|
||||
gameState.perks.happy_family * Math.max(0, gameState.balls.length - 1),
|
||||
ball.x,
|
||||
ball.y,
|
||||
);
|
||||
|
||||
if (
|
||||
gameState.perks.nbricks &&
|
||||
ball.hitSinceBounce < gameState.perks.nbricks
|
||||
|
@ -1872,7 +1866,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
|
|||
(gameState.levelMisses / 10 / gameState.perks.forgiving) *
|
||||
(gameState.combo - baseCombo(gameState)),
|
||||
);
|
||||
decreaseCombo(gameState, loss, ball.x, ball.y - gameState.ballSize);
|
||||
decreaseCombo(gameState, loss, ball.x, ball.y);
|
||||
} else {
|
||||
resetCombo(gameState, ball.x, ball.y);
|
||||
}
|
||||
|
@ -1904,6 +1898,9 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
|
|||
) {
|
||||
ball.destroyed = true;
|
||||
gameState.runStatistics.balls_lost++;
|
||||
if (gameState.perks.happy_family) {
|
||||
resetCombo(gameState, ball.x, ball.y);
|
||||
}
|
||||
if (!gameState.balls.find((b) => !b.destroyed)) {
|
||||
if (gameState.startParams.computer_controlled) {
|
||||
startComputerControlledGame(gameState.startParams.stress);
|
||||
|
@ -2147,8 +2144,12 @@ function makeText(
|
|||
) {
|
||||
append(gameState.texts, (p: Partial<TextFlash>) => {
|
||||
p.time = gameState.levelTime;
|
||||
p.x = x;
|
||||
p.y = y;
|
||||
p.x = clamp(x, 20, gameState.canvasWidth - 20);
|
||||
p.y = clamp(
|
||||
y,
|
||||
40,
|
||||
gameState.gameZoneHeight - gameState.puckHeight - gameState.ballSize,
|
||||
);
|
||||
p.color = color;
|
||||
p.size = size;
|
||||
p.duration = clamp(duration, 400, 2000);
|
||||
|
@ -2318,11 +2319,15 @@ function applyOttawaTreatyPerk(
|
|||
return;
|
||||
}
|
||||
|
||||
|
||||
export function zenTick(gameState: GameState) {
|
||||
if (!gameState.perks.zen) return
|
||||
if (!gameState.perks.zen) return;
|
||||
if (gameState.levelTime > gameState.lastZenComboIncrease + 3000) {
|
||||
gameState.lastZenComboIncrease=gameState.levelTime
|
||||
increaseCombo(gameState, gameState.perks.zen, gameState.puckPosition, gameState.gameZoneHeight- gameState.puckHeight)
|
||||
gameState.lastZenComboIncrease = gameState.levelTime;
|
||||
increaseCombo(
|
||||
gameState,
|
||||
gameState.perks.zen,
|
||||
gameState.puckPosition,
|
||||
gameState.gameZoneHeight - gameState.puckHeight,
|
||||
);
|
||||
}
|
||||
}
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "عملات الأشباح",
|
||||
"upgrades.ghost_coins.tooltip": "تمر العملات المعدنية ببطء عبر الطوب",
|
||||
"upgrades.ghost_coins.verbose_description": "إنها ليست مشكلة، بل ميزة! تتحرك العملات المعدنية ببطء عبر الطوب. المستويات الأعلى تسمح لها بالتحرك بشكل أسرع.",
|
||||
"upgrades.happy_family.name": "",
|
||||
"upgrades.happy_family.tooltip": "",
|
||||
"upgrades.happy_family.verbose_description": "",
|
||||
"upgrades.helium.name": "الهيليوم",
|
||||
"upgrades.helium.tooltip": "انعكست الجاذبية إلى اليسار واليمين من المجداف",
|
||||
"upgrades.helium.verbose_description": "يؤثر هذا على العملات المعدنية وسيسمح لها بالطفو حتى تصبح جاهزًا لالتقاطها.",
|
||||
|
|
|
@ -11222,6 +11222,116 @@
|
|||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>happy_family</name>
|
||||
<children>
|
||||
<concept_node>
|
||||
<name>name</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-LB</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-CL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>tooltip</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-LB</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-CL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>verbose_description</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>ar-LB</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>de-DE</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>es-CL</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>ru-RU</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>tr-TR</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>helium</name>
|
||||
<children>
|
||||
|
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "Geistermünzen",
|
||||
"upgrades.ghost_coins.tooltip": "Münzen gehen langsam durch Ziegelsteine",
|
||||
"upgrades.ghost_coins.verbose_description": "Das ist kein Bug, sondern ein Feature! Die Münzen fliegen nur langsam durch die Ziegel. Höhere Stufen lassen sie schneller fliegen.",
|
||||
"upgrades.happy_family.name": "",
|
||||
"upgrades.happy_family.tooltip": "",
|
||||
"upgrades.happy_family.verbose_description": "",
|
||||
"upgrades.helium.name": "Helium",
|
||||
"upgrades.helium.tooltip": "Umgekehrte Schwerkraft links und rechts des Paddels",
|
||||
"upgrades.helium.verbose_description": "Dies wirkt sich auf die Münzen aus und lässt sie nach oben treiben, bis Sie bereit sind, sie aufzuheben.",
|
||||
|
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "Ghost coins",
|
||||
"upgrades.ghost_coins.tooltip": "Coins slowly pass through bricks",
|
||||
"upgrades.ghost_coins.verbose_description": "It's not a bug, it's a feature ! Coins fly through bricks slowly. Higher levels let them move faster. ",
|
||||
"upgrades.happy_family.name": "Happy family",
|
||||
"upgrades.happy_family.tooltip": "+1 combo per extra ball for each paddle bounce. Combo resets when a ball is lost. ",
|
||||
"upgrades.happy_family.verbose_description": "Only the ball above 1 give combo.",
|
||||
"upgrades.helium.name": "Helium",
|
||||
"upgrades.helium.tooltip": "Gravity reversed left and right of paddle",
|
||||
"upgrades.helium.verbose_description": "This affects the coins and will let the float up until you are ready to pick them up.",
|
||||
|
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "Habitaciones fantasma",
|
||||
"upgrades.ghost_coins.tooltip": "Las monedas atraviesan los ladrillos lentamente",
|
||||
"upgrades.ghost_coins.verbose_description": "No es un error, ¡es una característica! Las piezas atraviesan los ladrillos lentamente. Los niveles más altos permiten que las monedas pasen más rápido a través de los ladrillos.",
|
||||
"upgrades.happy_family.name": "",
|
||||
"upgrades.happy_family.tooltip": "",
|
||||
"upgrades.happy_family.verbose_description": "",
|
||||
"upgrades.helium.name": "Helio",
|
||||
"upgrades.helium.tooltip": "Las piezas flotan en lugar de caer alrededor de la raqueta.",
|
||||
"upgrades.helium.verbose_description": "Las monedas esperarán a estar debajo de la raqueta para caer.",
|
||||
|
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "Pièces fantôme",
|
||||
"upgrades.ghost_coins.tooltip": "Les pièces traversent les briques doucement",
|
||||
"upgrades.ghost_coins.verbose_description": "Ce n'est pas une bug, c'est une fonctionnalité ! Les pièces passent à travers les briques doucement. Les niveaux plus élevés permettent aux pièce de traverser les briques plus vite.",
|
||||
"upgrades.happy_family.name": "",
|
||||
"upgrades.happy_family.tooltip": "",
|
||||
"upgrades.happy_family.verbose_description": "",
|
||||
"upgrades.helium.name": "Hélium",
|
||||
"upgrades.helium.tooltip": "Les pièce flottent au lieu de tomber autours de la raquette.",
|
||||
"upgrades.helium.verbose_description": "Les pièces attendront d'être sous la raquette pour tomber. ",
|
||||
|
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "Призрачные монеты",
|
||||
"upgrades.ghost_coins.tooltip": "Монеты медленно проходят сквозь кирпичи",
|
||||
"upgrades.ghost_coins.verbose_description": "Это не ошибка, это особенность! Монеты пролетают сквозь кирпичи медленно. На более высоких уровнях они движутся быстрее.",
|
||||
"upgrades.happy_family.name": "",
|
||||
"upgrades.happy_family.tooltip": "",
|
||||
"upgrades.happy_family.verbose_description": "",
|
||||
"upgrades.helium.name": "Гелий",
|
||||
"upgrades.helium.tooltip": "Гравитация изменяется слева и справа от весла",
|
||||
"upgrades.helium.verbose_description": "Это повлияет на монеты и позволит им плавать до тех пор, пока вы не соберете их.",
|
||||
|
|
|
@ -313,6 +313,9 @@
|
|||
"upgrades.ghost_coins.name": "Hayalet paralar",
|
||||
"upgrades.ghost_coins.tooltip": "Madeni paralar yavaşça tuğlaların arasından geçiyor",
|
||||
"upgrades.ghost_coins.verbose_description": "Bu bir hata değil, bir özellik! Madeni paralar tuğlaların içinden yavaşça uçar. Daha yüksek seviyeler daha hızlı hareket etmelerini sağlar.",
|
||||
"upgrades.happy_family.name": "",
|
||||
"upgrades.happy_family.tooltip": "",
|
||||
"upgrades.happy_family.verbose_description": "",
|
||||
"upgrades.helium.name": "Helyum",
|
||||
"upgrades.helium.tooltip": "Yerçekimi küreğin solunda ve sağında tersine döndü",
|
||||
"upgrades.helium.verbose_description": "Bu, paraları etkileyecek ve siz onları almaya hazır olana kadar paraların havada asılı kalmasına neden olacaktır.",
|
||||
|
|
|
@ -896,4 +896,14 @@ export const rawUpgrades = [
|
|||
help: () => t("upgrades.wrap_right.tooltip"),
|
||||
fullHelp: t("upgrades.wrap_right.verbose_description"),
|
||||
},
|
||||
{
|
||||
requires: "multiball",
|
||||
threshold: 245000,
|
||||
gift: false,
|
||||
id: "happy_family",
|
||||
max: 1,
|
||||
name: t("upgrades.happy_family.name"),
|
||||
help: () => t("upgrades.happy_family.tooltip"),
|
||||
fullHelp: t("upgrades.happy_family.verbose_description"),
|
||||
},
|
||||
] as const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue