This commit is contained in:
Renan LE CARO 2025-04-23 21:26:18 +02:00
parent 02c0634ad7
commit aa8d816d68
14 changed files with 260 additions and 283 deletions

View file

@ -14,11 +14,12 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
# Changelog
## To do
- rename hypnosis
- save global stats locally (sum of broken bricks, paddle hits, misses,)
## Done
- rename hypnosis to golden_goose, apply when hitting any brick
- removed comboIncreaseTexts option
- minefield : +10% coins per bomb on screen
- extra life are transparent when you have 2+ balls
- categorized the icons

105
dist/index.html vendored

File diff suppressed because one or more lines are too long

View file

@ -262,44 +262,33 @@ export function resetCombo(
return lost;
}
export function increaseCombo(
export function offsetCombo(
gameState: GameState,
by: number,
x: number,
y: number,
) {
if (by <= 0) {
return;
}
if(!by) return
if (by > 0) {
by *= 1 + gameState.perks.double_or_nothing;
gameState.combo += by;
if (
isOptionOn("comboIncreaseTexts") &&
typeof x !== "undefined" &&
typeof y !== "undefined"
) {
makeText(gameState, x, y, "#ffd300", "+" + by, 25, 400 + by);
}
}
export function decreaseCombo(
gameState: GameState,
by: number,
x: number,
y: number,
) {
}else{
const prev = gameState.combo;
gameState.combo = Math.max(baseCombo(gameState), gameState.combo - by);
gameState.combo = Math.max(baseCombo(gameState), gameState.combo + by);
const lost = Math.max(0, prev - gameState.combo);
if (lost) {
schedulGameSound(gameState, "comboDecrease", x, 1);
if (typeof x !== "undefined" && typeof y !== "undefined") {
makeText(gameState, x, y, "#FF0000", "-" + lost, 20, 400 + lost);
}
}
}
export function spawnExplosion(
gameState: GameState,
count: number,
@ -474,10 +463,8 @@ export function explodeBrick(
points,
);
}
increaseCombo(
gameState,
gameState.perks.streak_shots +
let resetComboNeeeded=false
let comboGain = gameState.perks.streak_shots +
gameState.perks.compound_interest +
gameState.perks.left_is_lava +
gameState.perks.right_is_lava +
@ -485,45 +472,35 @@ export function explodeBrick(
gameState.perks.picky_eater +
gameState.perks.asceticism * 3 +
gameState.perks.passive_income +
gameState.perks.addiction,
ball.x,
ball.y,
);
gameState.perks.addiction
if (Math.abs(ball.y - y) < Math.abs(ball.x - x)) {
if (gameState.perks.side_kick) {
if (ball.previousVX > 0) {
increaseCombo(gameState, gameState.perks.side_kick, ball.x, ball.y);
comboGain+=gameState.perks.side_kick
} else {
decreaseCombo(
gameState,
gameState.perks.side_kick * 2,
ball.x,
ball.y,
);
comboGain-=gameState.perks.side_kick * 2
}
}
if (gameState.perks.side_flip) {
if (ball.previousVX < 0) {
increaseCombo(gameState, gameState.perks.side_flip, ball.x, ball.y);
comboGain+=gameState.perks.side_flip
} else {
decreaseCombo(
gameState,
gameState.perks.side_flip * 2,
ball.x,
ball.y,
);
comboGain-=gameState.perks.side_flip * 2
}
}
}
if (redRowReach !== -1) {
if (Math.floor(index / gameState.level.size) === redRowReach) {
resetCombo(gameState, x, y);
resetComboNeeeded=true
} else {
for (let x = 0; x < gameState.level.size; x++) {
if (gameState.bricks[redRowReach * gameState.level.size + x])
gameState.combo++;
comboGain+=gameState.perks.reach;
}
}
}
@ -536,7 +513,7 @@ export function explodeBrick(
color
) {
if (wasPickyEaterPossible) {
resetCombo(gameState, ball.x, ball.y);
resetComboNeeeded=true
}
schedulGameSound(gameState, "colorChange", ball.x, 0.8);
// gameState.lastExplosion = gameState.levelTime;
@ -550,8 +527,20 @@ export function explodeBrick(
schedulGameSound(gameState, "comboIncreaseMaybe", ball.x, 1);
}
}
// makeLight(gameState, x, y, color, gameState.brickWidth, 40);
if(resetComboNeeeded){
resetCombo(gameState,
ball.x,
ball.y)
}else {
offsetCombo(
gameState,
comboGain,
ball.x,
ball.y,
);
}
// Particle effect
spawnExplosion(gameState, 5 + Math.min(gameState.combo, 30), x, y, color);
}
@ -639,7 +628,6 @@ export function addToScore(gameState: GameState, coin: Coin) {
(gameState.canvasWidth - coin.x) / 100,
-coin.y / 100,
getCoinRenderColor(gameState, coin),
true,
gameState.coinSize / 2,
100 + Math.random() * 50,
@ -649,9 +637,9 @@ export function addToScore(gameState: GameState, coin: Coin) {
schedulGameSound(gameState, "coinCatch", coin.x, 1);
gameState.runStatistics.score += coin.points;
if (gameState.perks.asceticism) {
decreaseCombo(
offsetCombo(
gameState,
gameState.perks.asceticism * 3 * coin.points,
- gameState.perks.asceticism * 3 * coin.points,
coin.x,
coin.y,
);
@ -1006,9 +994,9 @@ export function gameStateTick(
gameState.lastTickDown = gameState.levelTime;
} else if (gameState.levelTime > gameState.lastTickDown + 1000) {
gameState.lastTickDown = gameState.levelTime;
decreaseCombo(
offsetCombo(
gameState,
gameState.perks.hot_start,
- gameState.perks.hot_start,
gameState.puckPosition,
gameState.gameZoneHeight - 2 * gameState.puckHeight,
);
@ -1307,7 +1295,7 @@ export function gameStateTick(
Math.random() / coin.points <
(1 / gameState.combo) * gameState.perks.fountain_toss
) {
increaseCombo(gameState, 1, coin.x, coin.y);
offsetCombo(gameState, 1, coin.x, coin.y);
}
}
@ -1325,17 +1313,6 @@ export function gameStateTick(
gameState.bricks[hitBrick] = coin.color;
coin.metamorphosisPoints--;
schedulGameSound(gameState, "colorChange", coin.x, 0.3);
if (gameState.perks.hypnosis) {
const closestBall = getClosestBall(gameState, coin.x, coin.y);
if (closestBall) {
coin.x = closestBall.x;
coin.y = closestBall.y;
coin.vx = (Math.random() - 0.5) * gameState.baseSpeed;
coin.vy = (Math.random() - 0.5) * gameState.baseSpeed;
coin.metamorphosisPoints = gameState.perks.metamorphosis;
}
}
}
}
@ -1372,6 +1349,16 @@ export function gameStateTick(
schedulGameSound(gameState, "coinBounce", coin.x, 0.2);
}
}
if (gameState.perks.golden_goose && typeof hitBrick !== "undefined") {
const closestBall = getClosestBall(gameState, coin.x, coin.y);
if (closestBall) {
coin.x = closestBall.x;
coin.y = closestBall.y;
}
}
// remember collision
coin.collidedLastFrame = !!(typeof hitBrick !== "undefined" || hitBorder);
});
@ -1732,7 +1719,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
if (borderHitCode) {
ball.sidesHitsSinceBounce++;
if (ball.sidesHitsSinceBounce <= gameState.perks.three_cushion * 3) {
increaseCombo(gameState, 1, ball.x, ball.y);
offsetCombo(gameState, 1, ball.x, ball.y);
}
if (
gameState.perks.wrap_left &&
@ -1792,7 +1779,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
resetCombo(gameState, ball.x, ball.y);
}
if (gameState.perks.trampoline) {
decreaseCombo(gameState, gameState.perks.trampoline, ball.x, ball.y);
offsetCombo(gameState, -gameState.perks.trampoline, ball.x, ball.y);
}
schedulGameSound(gameState, "wallBeep", ball.x, 1);
@ -1835,7 +1822,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
resetCombo(gameState, ball.x, ball.y);
}
increaseCombo(
offsetCombo(
gameState,
gameState.perks.trampoline +
gameState.perks.happy_family * Math.max(0, gameState.balls.length - 1),
@ -1857,7 +1844,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);
offsetCombo(gameState, - loss, ball.x, ball.y);
} else {
resetCombo(gameState, ball.x, ball.y);
}
@ -1928,7 +1915,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
if (ball.hitSinceBounce > gameState.perks.nbricks) {
resetCombo(gameState, ball.x, ball.y);
} else {
increaseCombo(gameState, gameState.perks.nbricks, ball.x, ball.y);
offsetCombo(gameState, gameState.perks.nbricks, ball.x, ball.y);
}
// We need to reset at each hit, otherwise it's just an OP version of single puck hit streak
}
@ -2314,7 +2301,7 @@ export function zenTick(gameState: GameState) {
if (!gameState.perks.zen) return;
if (gameState.levelTime > gameState.lastZenComboIncrease + 3000) {
gameState.lastZenComboIncrease = gameState.levelTime;
increaseCombo(
offsetCombo(
gameState,
gameState.perks.zen,
gameState.puckPosition,

View file

@ -393,7 +393,6 @@ export function getCoinRenderColor(gameState: GameState, coin: Coin) {
if (
gameState.perks.metamorphosis ||
isOptionOn("colorful_coins") ||
gameState.perks.hypnosis ||
gameState.perks.sticky_coins ||
gameState.perks.rainbow
)

View file

@ -314,6 +314,9 @@
"upgrades.ghost_coins.name": "عملات الأشباح",
"upgrades.ghost_coins.tooltip": "تمر العملات المعدنية ببطء عبر الطوب",
"upgrades.ghost_coins.verbose_description": "إنها ليست مشكلة، بل ميزة! تتحرك العملات المعدنية ببطء عبر الطوب. المستويات الأعلى تسمح لها بالتحرك بشكل أسرع.",
"upgrades.golden_goose.name": "",
"upgrades.golden_goose.tooltip": "",
"upgrades.golden_goose.verbose_description": "",
"upgrades.happy_family.name": "",
"upgrades.happy_family.tooltip": "",
"upgrades.happy_family.verbose_description": "",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "بداية ساخنة",
"upgrades.hot_start.tooltip": "ابدأ عند المجموعة {{start}}، -{{loss}} مجموعة في الثانية",
"upgrades.hot_start.verbose_description": "في بداية كل مستوى، تبدأ مجموعتك بـ +٣٠ نقطة، ثم تنخفض نقطة واحدة كل ثانية. يتراكم هذا التأثير مع مزايا أخرى.",
"upgrades.hypnosis.name": "التنويم المغناطيسي",
"upgrades.hypnosis.tooltip": "عندما يتغير لون الطوب، قم بنقل تلك العملة إلى الكرة الأقرب وقم بإعادة شحن قدرتها على تلطيخ الطوب.",
"upgrades.hypnosis.verbose_description": "",
"upgrades.implosions.name": "الانفجارات",
"upgrades.implosions.tooltip": "تؤدي الانفجارات إلى امتصاص العملات المعدنية بدلاً من تفجيرها",
"upgrades.implosions.verbose_description": "تُطبّق قوة الانفجار بطريقة أخرى. المستويات الأخرى تُشكّل \"انفجارًا أكبر\".",

View file

@ -11262,6 +11262,116 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>golden_goose</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>true</approved>
</translation>
<translation>
<language>en-US</language>
<approved>true</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>true</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>true</approved>
</translation>
<translation>
<language>en-US</language>
<approved>true</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>true</approved>
</translation>
<translation>
<language>en-US</language>
<approved>true</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>true</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>happy_family</name>
<children>
@ -11592,116 +11702,6 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>hypnosis</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>true</approved>
</translation>
<translation>
<language>en-US</language>
<approved>true</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>true</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>true</approved>
</translation>
<translation>
<language>en-US</language>
<approved>true</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>true</approved>
</translation>
<translation>
<language>en-US</language>
<approved>true</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>true</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>implosions</name>
<children>

View file

@ -314,6 +314,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.golden_goose.name": "",
"upgrades.golden_goose.tooltip": "",
"upgrades.golden_goose.verbose_description": "",
"upgrades.happy_family.name": "",
"upgrades.happy_family.tooltip": "",
"upgrades.happy_family.verbose_description": "",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "Heißer Start",
"upgrades.hot_start.tooltip": "Start bei Kombo {{start}}, -{{loss}} Kombo pro Sekunde",
"upgrades.hot_start.verbose_description": "Zu Beginn eines jeden Levels beginnt deine Kombo mit +30 Punkten, aber dann wird sie jede Sekunde um einen Punkt verringert. Der Effekt ist mit anderen Perks stapelbar.",
"upgrades.hypnosis.name": "Hypnose",
"upgrades.hypnosis.tooltip": "Immer wenn ein Ziegelstein seine Farbe ändert, teleportierst du diese Münze zur nächsten Kugel und lädst ihre Fähigkeit, einen Ziegelstein zu färben, wieder auf.",
"upgrades.hypnosis.verbose_description": "",
"upgrades.implosions.name": "Implosionen",
"upgrades.implosions.tooltip": "Explosionen saugen Münzen an, anstatt sie wegzublasen",
"upgrades.implosions.verbose_description": "Die Explosionskraft wird in die andere Richtung angewendet. Weitere Stufen wirken als \"größere Explosion\".",

View file

@ -314,6 +314,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.golden_goose.name": "Golden goose",
"upgrades.golden_goose.tooltip": "Coins teleport to the ball after hitting a brick",
"upgrades.golden_goose.verbose_description": "Whenever a coin hits a brick, teleport that coin to the nearest ball.",
"upgrades.happy_family.name": "Happy family",
"upgrades.happy_family.tooltip": "More coins if you keep all balls in game. ",
"upgrades.happy_family.verbose_description": "+1 combo per extra ball per paddle bounce. Combo resets when a ball is lost. Only the ball above 1 give combo.",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "Hot start",
"upgrades.hot_start.tooltip": "More coins if you clear the level under 30s",
"upgrades.hot_start.verbose_description": "At the start of every level, your combo will start at +30 points, but then every second it will be decreased by one. The effect stacks with other perks. ",
"upgrades.hypnosis.name": "Hypnosis",
"upgrades.hypnosis.tooltip": "Coins teleport to the ball",
"upgrades.hypnosis.verbose_description": "Whenever a brick changes color, teleport that coin to the nearest ball and recharge its ability to stain a brick. ",
"upgrades.implosions.name": "Implosions",
"upgrades.implosions.tooltip": "Explosions suck coins in instead of blowing them out",
"upgrades.implosions.verbose_description": "The explosion force is applied the other way. Further levels act as \"bigger explosion\"",
@ -373,7 +373,7 @@
"upgrades.rainbow.verbose_description": "Each level increases the proportion of colored coins. The color depends on level time. ",
"upgrades.reach.name": "Top down",
"upgrades.reach.tooltip": "More coins if you avoid the lowest row of bricks",
"upgrades.reach.verbose_description": " Touching the N bricks of the lowest row resets the combo. Otherwise, +N combo\n\nIf there is only one row of bricks, or if the lowest row of bricks cover the whole width of the game, then this perk does nothing. Otherwise, breaking this lowest row resets the combo, while breaking anything else increases the combo by the number of bricks present on that lowest row. \n\nThe lowest row will be highlighted in red. ",
"upgrades.reach.verbose_description": " Touching the N bricks of the lowest row resets the combo. Otherwise, +N combo.\n\nIf there is only one row of bricks, or if the lowest row of bricks cover the whole width of the game, then this perk does nothing. Otherwise, breaking this lowest row resets the combo, while breaking anything else increases the combo by the number of bricks present on that lowest row. \n\nThe lowest row will be highlighted in red. ",
"upgrades.respawn.name": "Re-spawn",
"upgrades.respawn.tooltip": "{{percent}}% of bricks re-spawn after {{delay}}s.",
"upgrades.respawn.verbose_description": "Some particle effect will let you know where bricks will appear. ",

View file

@ -314,6 +314,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.golden_goose.name": "",
"upgrades.golden_goose.tooltip": "",
"upgrades.golden_goose.verbose_description": "",
"upgrades.happy_family.name": "",
"upgrades.happy_family.tooltip": "",
"upgrades.happy_family.verbose_description": "",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "Arranque en caliente",
"upgrades.hot_start.tooltip": "Combo a {{start}}, -{{loss}} combo por segundo",
"upgrades.hot_start.verbose_description": "Al principio de cada nivel, tu combo comenzará con +30 puntos, pero cada segundo se reducirá en un punto. ",
"upgrades.hypnosis.name": "Hipnosis",
"upgrades.hypnosis.tooltip": "Cada vez que un ladrillo cambia de color, teletransporta esa moneda a la bola más cercana y recarga su capacidad para manchar un ladrillo.",
"upgrades.hypnosis.verbose_description": "",
"upgrades.implosions.name": "Implosiones",
"upgrades.implosions.tooltip": "Las explosiones absorben las piezas en lugar de hacerlas estallar.",
"upgrades.implosions.verbose_description": "La fuerza de la explosión se aplica en sentido contrario. El nivel 2+ aumenta la potencia de la implosión.",

View file

@ -314,6 +314,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.golden_goose.name": "",
"upgrades.golden_goose.tooltip": "",
"upgrades.golden_goose.verbose_description": "",
"upgrades.happy_family.name": "",
"upgrades.happy_family.tooltip": "",
"upgrades.happy_family.verbose_description": "",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "Démarrage à chaud",
"upgrades.hot_start.tooltip": "Combo à {{start}}, -{{loss}} combo par seconde",
"upgrades.hot_start.verbose_description": "Au début de chaque niveau, votre combo commencera à +30 points, mais à chaque seconde, il sera diminué d'un point. ",
"upgrades.hypnosis.name": "Hypnose",
"upgrades.hypnosis.tooltip": "Les pièces se téléportent sur la balle",
"upgrades.hypnosis.verbose_description": "Chaque fois qu'une brique change de couleur, téléportez cette pièce vers la boule la plus proche et rechargez sa capacité à tacher une brique.",
"upgrades.implosions.name": "Implosions",
"upgrades.implosions.tooltip": "Les explosions aspirent les pièces au lieu de les faire exploser.",
"upgrades.implosions.verbose_description": "La force dexplosion est appliquée dans lautre sens. Les niveaux 2+ augmentent la puissance de l'implosion. ",

View file

@ -314,6 +314,9 @@
"upgrades.ghost_coins.name": "Призрачные монеты",
"upgrades.ghost_coins.tooltip": "Монеты медленно проходят сквозь кирпичи",
"upgrades.ghost_coins.verbose_description": "Это не ошибка, это особенность! Монеты пролетают сквозь кирпичи медленно. На более высоких уровнях они движутся быстрее.",
"upgrades.golden_goose.name": "",
"upgrades.golden_goose.tooltip": "",
"upgrades.golden_goose.verbose_description": "",
"upgrades.happy_family.name": "",
"upgrades.happy_family.tooltip": "",
"upgrades.happy_family.verbose_description": "",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "Горячий старт",
"upgrades.hot_start.tooltip": "Начните с комбо {{start}}, -{{loss}} комбо в секунду",
"upgrades.hot_start.verbose_description": "В начале каждого уровня ваше комбо будет начинаться с +30 очков, но затем каждую секунду оно будет уменьшаться на одно. Эффект суммируется с другими перками.",
"upgrades.hypnosis.name": "Гипноз",
"upgrades.hypnosis.tooltip": "Когда кирпич меняет цвет, телепортируйте монету на ближайший шар и перезарядите её способность окрашивать кирпич.",
"upgrades.hypnosis.verbose_description": "",
"upgrades.implosions.name": "Имплозии",
"upgrades.implosions.tooltip": "Взрывы всасывают монеты, а не выдувают их.",
"upgrades.implosions.verbose_description": "Сила взрыва действует в обратном направлении. Дальние уровни действуют как \"больший взрыв\".",

View file

@ -314,6 +314,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.golden_goose.name": "",
"upgrades.golden_goose.tooltip": "",
"upgrades.golden_goose.verbose_description": "",
"upgrades.happy_family.name": "",
"upgrades.happy_family.tooltip": "",
"upgrades.happy_family.verbose_description": "",
@ -323,9 +326,6 @@
"upgrades.hot_start.name": "Sıcak başlangıç",
"upgrades.hot_start.tooltip": " {{start}}kombosundan başla, saniyede{{loss}} kombo",
"upgrades.hot_start.verbose_description": "Her seviyenin başında kombonuz +30 puanla başlayacak, ancak daha sonra her saniye bir puan düşecek. Etki diğer avantajlarla birikiyor.",
"upgrades.hypnosis.name": "Hipnoz",
"upgrades.hypnosis.tooltip": "Bir tuğlanın rengi değiştiğinde, o parayı en yakın topa ışınlayın ve tuğlayı lekeleme yeteneğini yeniden yükleyin.",
"upgrades.hypnosis.verbose_description": "",
"upgrades.implosions.name": "İç patlamalar",
"upgrades.implosions.tooltip": "Patlamalar paraları dışarı atmak yerine içeri çekiyor",
"upgrades.implosions.verbose_description": "Patlama kuvveti diğer şekilde uygulanır. Daha ileri seviyeler \"daha büyük patlama\" olarak işlev görür.",

View file

@ -92,11 +92,6 @@ export const options = {
name: t("settings.red_miss"),
help: t("settings.red_miss_help"),
},
comboIncreaseTexts: {
default: true,
name: t("settings.comboIncreaseTexts"),
help: t("settings.comboIncreaseTexts_help"),
},
} as const satisfies { [k: string]: OptionDef };
export function isOptionOn(key: OptionId) {

View file

@ -640,14 +640,14 @@ export const rawUpgrades = [
},
{
category: categories.advanced,
requires: "metamorphosis",
requires: "",
threshold: 210000,
gift: false,
id: "hypnosis",
id: "golden_goose",
max: 1,
name: t("upgrades.hypnosis.name"),
help: (lvl: number) => t("upgrades.hypnosis.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.hypnosis.verbose_description",{lvl}),
name: t("upgrades.golden_goose.name"),
help: (lvl: number) => t("upgrades.golden_goose.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.golden_goose.verbose_description",{lvl}),
},
{
category: categories.simple,