This commit is contained in:
Renan LE CARO 2025-04-21 15:16:57 +02:00
parent 3a9e06207e
commit 88d746e7a1
15 changed files with 372 additions and 48 deletions

View file

@ -13,8 +13,12 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
# Changelog
## To do
## Done
- rework passive income
## 29087252
- apply percentage boost to combo shown on brick
- smaller puck now gives +50% coins per level
- transparency now gives +50% coins if ALL balls are fully transparent, less otherwise

68
dist/index.html vendored

File diff suppressed because one or more lines are too long

View file

@ -1372,5 +1372,12 @@
"bricks": "__________yy_yy___tttty__ytttt___ytttt____tttty______yy_________",
"svg": null,
"color": ""
},
{
"name": "icon:double_or_nothing",
"size": 7,
"bricks": "__yyy___yrrry_yOOOrOyyOOrOOyyOOOOOy_yOrOy___yyy__",
"svg": null,
"color": ""
}
]

View file

@ -232,6 +232,15 @@ export function resetCombo(
const prev = gameState.combo;
gameState.combo = baseCombo(gameState);
if(gameState.perks.double_or_nothing){
gameState.score = Math.floor(
gameState.score *
clamp(1-gameState.perks.double_or_nothing/10 , 0,1)
);
schedulGameSound(gameState, "lifeLost", x,1)
}
if (prev > gameState.combo && gameState.perks.soft_reset) {
gameState.combo += Math.floor(
(prev - gameState.combo) * comboKeepingRate(gameState.perks.soft_reset),
@ -269,6 +278,7 @@ export function increaseCombo(
if (by <= 0) {
return;
}
by*= (1+gameState.perks.double_or_nothing)
gameState.combo += by;
if (
isOptionOn("comboIncreaseTexts") &&
@ -528,10 +538,6 @@ export function explodeBrick(
}
}
if (isMovingWhilePassiveIncome(gameState)) {
resetCombo(gameState, x, y);
}
if (!isExplosion) {
// color change
if (
@ -1254,7 +1260,8 @@ export function gameStateTick(
coinRadius +
gameState.puckWidth / 2 +
// a bit of margin to be nice , negative in case it's a negative coin
gameState.puckHeight * (coin.points ? 1 : -1)
gameState.puckHeight * (coin.points ? 1 : -1) &&
!isMovingWhilePassiveIncome(gameState)
) {
addToScore(gameState, coin);
destroy(gameState.coins, coinIndex);
@ -1489,7 +1496,7 @@ export function gameStateTick(
100 * (Math.random() + 1),
);
}
if (gameState.perks.streak_shots) {
if (gameState.perks.streak_shots && !isMovingWhilePassiveIncome(gameState)) {
const pos = 0.5 - Math.random();
makeParticle(
gameState,
@ -1619,6 +1626,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
}
if (
gameState.perks.puck_repulse_ball &&
!isMovingWhilePassiveIncome(gameState) &&
Math.abs(ball.x - gameState.puckPosition) <
gameState.puckWidth / 2 +
(gameState.ballSize * (9 + gameState.perks.puck_repulse_ball)) / 10
@ -1685,7 +1693,7 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
gameState.gameZoneHeight - gameState.puckHeight - gameState.ballSize / 2;
const ballIsUnderPuck =
Math.abs(ball.x - gameState.puckPosition) <
gameState.ballSize / 2 + gameState.puckWidth / 2;
gameState.ballSize / 2 + gameState.puckWidth / 2 && !isMovingWhilePassiveIncome(gameState, 150);
if (
ball.y > ylimit &&
ball.vy > 0 &&

View file

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

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "ضربة ركنية",
"upgrades.corner_shot.tooltip": "يسمح للمجداف الخاص بك بالتداخل مع حدود الشاشة",
"upgrades.corner_shot.verbose_description": "يُساعدك على التصويب في الزوايا. المستويات الأعلى تُتيح لك الوصول إلى مسافات أبعد.",
"upgrades.double_or_nothing.name": "",
"upgrades.double_or_nothing.tooltip": "",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "العملات المعدنية في الفضاء",
"upgrades.etherealcoins.tooltip": "لم تعد العملات المعدنية تتأثر بالجاذبية",
"upgrades.etherealcoins.verbose_description": "ستحافظ العملات المعدنية على سرعتها حتى بعد عدة ارتدادات، ولن تتأثر بالجاذبية بعد الآن.",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "كسر الطوب بالقرب من القنبلة ينزع فتيلها",
"upgrades.ottawa_treaty.verbose_description": "سيتم استبدال القنبلة القريبة بكتلة ملونة. إذا كان لديك سلاح نووي، فستفقد الكرة تأثيرها حتى الارتداد التالي. لا يمكن استبدال سوى قنبلة واحدة في كل مرة.",
"upgrades.passive_income.name": "الدخل السلبي",
"upgrades.passive_income.tooltip": "+{{lvl}} مجموعة / لبنة، ما لم يتم تحريك المجداف في آخر {{time}}ثانية، ثم يتم إعادة تعيينه بدلاً من ذلك",
"upgrades.passive_income.tooltip": "+{{lvl}} مجموعة / لبنة، المجداف غير مهم {{time}}ثانية بعد التحرك",
"upgrades.passive_income.verbose_description": "يمكن لبعض الامتيازات أن تساعد الكرات على القيام بما تريد دون الحاجة إلى القيام بأي شيء.",
"upgrades.picky_eater.name": "آكل انتقائي",
"upgrades.picky_eater.tooltip": "+{{lvl}} مجموعة لكل لبنة مكسورة، يتم إعادة تعيينها عند تغير لون الكرة",
@ -448,6 +451,9 @@
"upgrades.wind.name": "رياح",
"upgrades.wind.tooltip": "وضع المجداف يخلق الرياح",
"upgrades.wind.verbose_description": "تعتمد الرياح على وضعية المضرب: يسارًا يهب يسارًا، ويمينًا يهب يمينًا. تؤثر على الكرات والعملات المعدنية.",
"upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "",
"upgrades.yoyo.name": "يو يو",
"upgrades.yoyo.tooltip": "الكرة تسقط نحو المضرب",
"upgrades.yoyo.verbose_description": "إنه عكس التحريك الذهني، أي التحكم بالكرة أثناء سقوطها مرة أخرى إلى الأسفل.",

View file

@ -10312,6 +10312,116 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>double_or_nothing</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>etherealcoins</name>
<children>
@ -12498,7 +12608,7 @@
</translation>
<translation>
<language>fr-FR</language>
<approved>true</approved>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
@ -16167,6 +16277,116 @@
</concept_node>
</children>
</folder_node>
<folder_node>
<name>wrap_left</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>yoyo</name>
<children>

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "Eckball",
"upgrades.corner_shot.tooltip": "Lässt Ihr Paddel mit den Rändern des Bildschirms überlappen",
"upgrades.corner_shot.verbose_description": "Hilft beim Zielen in den Kurven. Weitere Stufen lassen Sie weiter hinausgehen.",
"upgrades.double_or_nothing.name": "",
"upgrades.double_or_nothing.tooltip": "",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Münzen, im Weltraum",
"upgrades.etherealcoins.tooltip": "Münzen werden nicht mehr von der Schwerkraft beeinflusst",
"upgrades.etherealcoins.verbose_description": "Die Münzen behalten ihre Geschwindigkeit auch nach mehreren Aufprallvorgängen bei und werden nicht mehr durch die Schwerkraft beeinflusst.",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "Das Zerschlagen eines Ziegelsteins in der Nähe einer Bombe entschärft diese",
"upgrades.ottawa_treaty.verbose_description": "Die nahe Bombe wird durch einen farbigen Block ersetzt. Wenn du einen Pionier hast, verliert der Ball seinen Pioniereffekt bis zum nächsten Aufprall. Es kann immer nur eine Bombe ersetzt werden.",
"upgrades.passive_income.name": "Passives Einkommen",
"upgrades.passive_income.tooltip": "+{{lvl}} Combo / Brick, es sei denn, das Paddel hat sich in den letzten {{time}}s bewegt, dann wird es stattdessen zurückgesetzt",
"upgrades.passive_income.tooltip": "+{{lvl}} Combo / Brick, Paddel ist immateriell {{time}}s nach dem Bewegen",
"upgrades.passive_income.verbose_description": "Einige Vergünstigungen können den Bällen helfen, das zu tun, was du willst, ohne dass du etwas tun musst.",
"upgrades.picky_eater.name": "Wählerischer Esser",
"upgrades.picky_eater.tooltip": "+{{lvl}} Combo pro zerbrochenem Stein, wird bei Farbwechsel des Balls zurückgesetzt",
@ -448,6 +451,9 @@
"upgrades.wind.name": "WIND",
"upgrades.wind.tooltip": "Paddelstellung erzeugt Wind",
"upgrades.wind.verbose_description": "Der Wind hängt von der Paddelposition ab: links bläst links, rechts bläst rechts. Wirkt sich sowohl auf Bälle als auch auf Münzen aus.",
"upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "",
"upgrades.yoyo.name": "Yo-Yo",
"upgrades.yoyo.tooltip": "Ball fällt in Richtung Paddel",
"upgrades.yoyo.verbose_description": "Es ist das Gegenteil von Telekinese, den Ball zu kontrollieren, während er wieder nach unten fällt.",

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "Corner shot",
"upgrades.corner_shot.tooltip": "Lets your paddle overlap with the borders of the screen",
"upgrades.corner_shot.verbose_description": "Helps with aiming in the corners. Further levels let you go further out. ",
"upgrades.double_or_nothing.name": "Double or nothing",
"upgrades.double_or_nothing.tooltip": "Combo climbs {{multiplier}} times faster, but you'll loose {{percent}}% of your score at each reset.",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Coins, in Space",
"upgrades.etherealcoins.tooltip": "Coins are no longer affected by gravity",
"upgrades.etherealcoins.verbose_description": "The coins will maintain their speed even after several bounces, and will no longer be affected by gravity.",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "Breaking a brick near a bomb disarms it",
"upgrades.ottawa_treaty.verbose_description": "The nearby bomb will be replaced by a colored block. If you have sapper, the ball will loose its sapper effect until next bounce. Only one bomb can be replaced at a time.",
"upgrades.passive_income.name": "Passive income",
"upgrades.passive_income.tooltip": "+{{lvl}} combo / brick, unless the paddle moved in the last {{time}}s, then it resets instead",
"upgrades.passive_income.tooltip": "+{{lvl}} combo / brick, paddle is immaterial {{time}}s after moving",
"upgrades.passive_income.verbose_description": "Some perks can help the balls do what you want without needing to do anything.",
"upgrades.picky_eater.name": "Picky eater",
"upgrades.picky_eater.tooltip": "+{{lvl}} combo per brick broken, resets on ball color change",
@ -448,6 +451,9 @@
"upgrades.wind.name": "Wind",
"upgrades.wind.tooltip": "Paddle position creates wind",
"upgrades.wind.verbose_description": "Wind depends on paddle position: left blows left, right blows right. Affects both balls and coins.",
"upgrades.wrap_left.name": "Wrap left",
"upgrades.wrap_left.tooltip": "Hitting the left side teleports the ball to the right side",
"upgrades.wrap_left.verbose_description": "Higher levels might teleport coins too",
"upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "Ball falls toward paddle",
"upgrades.yoyo.verbose_description": "It's the opposite of telekinesis, control the ball while it's falling back down.",

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "Tiro de esquina",
"upgrades.corner_shot.tooltip": "Deja que tu raqueta salga del área enmarcada",
"upgrades.corner_shot.verbose_description": "Te ayuda a apuntar a las esquinas",
"upgrades.double_or_nothing.name": "",
"upgrades.double_or_nothing.tooltip": "",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Moneda espacial",
"upgrades.etherealcoins.tooltip": "Las piezas ya no se ven afectadas por la gravedad",
"upgrades.etherealcoins.verbose_description": "Las monedas mantendrán su velocidad incluso después de varios rebotes y ya no se verán afectadas por la gravedad.",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "Romper un ladrillo cerca de una bomba la desarma.",
"upgrades.ottawa_treaty.verbose_description": "La bomba cercana será reemplazada por un bloque de color. Si tienes zapador, la pelota perderá su efecto hasta el próximo rebote. Solo se puede reemplazar una bomba a la vez.",
"upgrades.passive_income.name": "Ingresos pasivos",
"upgrades.passive_income.tooltip": "+{{lvl}} combo / ladrillo, a menos que la raqueta se haya movido en los últimos {{time}} segundos, en cuyo caso se pierde el combo.",
"upgrades.passive_income.tooltip": "+{{lvl}} combo/bloque, la paleta es inmaterial {{time}}s después de mover",
"upgrades.passive_income.verbose_description": "Algunas mejoras hacen que las pelotas se muevan sin necesidad de poner la raqueta en movimiento.",
"upgrades.picky_eater.name": "Comer por colores",
"upgrades.picky_eater.tooltip": "+{{lvl}} combo por ladrillo roto del color de la bola, combo perdido en caso contrario",
@ -448,6 +451,9 @@
"upgrades.wind.name": "Viva el viento",
"upgrades.wind.tooltip": "La posición de la raqueta crea viento",
"upgrades.wind.verbose_description": "El viento depende de la posición de la raqueta en la pantalla, hacia la izquierda si está a la izquierda, hacia la derecha si está a la derecha.\nAfecta a pelotas y piezas.",
"upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "",
"upgrades.yoyo.name": "Yo-Yo",
"upgrades.yoyo.tooltip": "La pelota desciende hacia la raqueta.",
"upgrades.yoyo.verbose_description": "Es lo contrario de la Telequinesis: controlar la pelota mientras cae hacia la raqueta.",

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "Tir en coin",
"upgrades.corner_shot.tooltip": "Laisse votre raquette sortir de la zone encadrée",
"upgrades.corner_shot.verbose_description": "Aide à viser dans les coins",
"upgrades.double_or_nothing.name": "",
"upgrades.double_or_nothing.tooltip": "",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Monnaie spatiale ",
"upgrades.etherealcoins.tooltip": "Les pièces ne subissent plus la gravité ou la friction",
"upgrades.etherealcoins.verbose_description": "Les pièces garderont leur vitesse même après plusieurs rebonds, et ne subirons plus la gravité. ",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "Casser une brique près d'une bombe la désamorce",
"upgrades.ottawa_treaty.verbose_description": "La bombe à proximité sera remplacée par un bloc coloré. Si vous possédez un sapeur, la balle perdra son effet sapeur jusqu'au prochain rebond. Une seule bombe peut être remplacée à la fois.",
"upgrades.passive_income.name": "Revenu passif",
"upgrades.passive_income.tooltip": "+{{lvl}} combo / brique, sauf si la raquette à bougé dans les {{time}} dernières secondes, combo perdu dans ce cas",
"upgrades.passive_income.tooltip": "+{{lvl}} combo / brique, la raquette est immatérielle {{time}}s après le déplacement",
"upgrades.passive_income.verbose_description": "Certaines amélioration font bouger les balles sans avoir besoin de mettre la raquette en mouvement.",
"upgrades.picky_eater.name": "Mangeur par couleur",
"upgrades.picky_eater.tooltip": "+{{lvl}} combo par brique cassée la couleur de la balle, combo perdu sinon",
@ -448,6 +451,9 @@
"upgrades.wind.name": "Vive le vent",
"upgrades.wind.tooltip": "La position de la raquette crée du vent",
"upgrades.wind.verbose_description": "Le vent dépend de la position de la raquette à l'écran, vers la gauche s'il est à gauche, vers la droite s'il est à droite. \nAffecte les balles et les pièces.",
"upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "",
"upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "La balle se dirige vers la raquette en descendant.",
"upgrades.yoyo.verbose_description": "C'est l'inverse de Télékinésie, contrôlez la balle alors qu'elle redescend vers la raquette.",

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "Угловой удар",
"upgrades.corner_shot.tooltip": "Позволяет накладывать паддл на границы экрана",
"upgrades.corner_shot.verbose_description": "Помогает прицеливаться на поворотах. Дальние уровни позволят вам выйти дальше.",
"upgrades.double_or_nothing.name": "",
"upgrades.double_or_nothing.tooltip": "",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Монеты, в космосе",
"upgrades.etherealcoins.tooltip": "На монеты больше не действует гравитация",
"upgrades.etherealcoins.verbose_description": "Монеты сохранят свою скорость даже после нескольких подпрыгиваний, и на них больше не будет действовать гравитация.",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "Разбивание кирпича рядом с бомбой обезвреживает ее.",
"upgrades.ottawa_treaty.verbose_description": "Ближайшая бомба будет заменена цветным блоком. Если у вас есть сапер, мяч потеряет свой эффект сапера до следующего отскока. За один раз можно заменить только одну бомбу.",
"upgrades.passive_income.name": "Пассивный доход",
"upgrades.passive_income.tooltip": "+{{lvl}} комбо/кирпич, если только паддл не двигался в течение последних {{time}}с, тогда он сбрасывается.",
"upgrades.passive_income.tooltip": "+{{lvl}} комбо / кирпич, весло не имеет значения {{time}}с после перемещения",
"upgrades.passive_income.verbose_description": "Некоторые привилегии могут помочь шарам делать то, что вы хотите, без необходимости что-либо предпринимать.",
"upgrades.picky_eater.name": "Придирчивый едок",
"upgrades.picky_eater.tooltip": "+{{lvl}} комбо за каждый разбитый кирпич, сбрасывается при смене цвета шара",
@ -448,6 +451,9 @@
"upgrades.wind.name": "Ветер",
"upgrades.wind.tooltip": "Положение весла создает ветер",
"upgrades.wind.verbose_description": "Ветер зависит от положения лопасти: левая дует влево, правая - вправо. Влияет как на шарики, так и на монеты.",
"upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "",
"upgrades.yoyo.name": "Йо-йо",
"upgrades.yoyo.tooltip": "Мяч падает на лопатку",
"upgrades.yoyo.verbose_description": "Это противоположность телекинезу: управляйте мячом, пока он падает обратно.",

View file

@ -288,6 +288,9 @@
"upgrades.corner_shot.name": "Köşe vuruşu",
"upgrades.corner_shot.tooltip": "Küreğinizin ekranın sınırlarıyla örtüşmesini sağlar",
"upgrades.corner_shot.verbose_description": "Köşelerde nişan almaya yardımcı olur. Daha ileri seviyeler daha uzağa gitmenizi sağlar.",
"upgrades.double_or_nothing.name": "",
"upgrades.double_or_nothing.tooltip": "",
"upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Uzayda Madeni Paralar",
"upgrades.etherealcoins.tooltip": "Madeni paralar artık yer çekiminden etkilenmiyor",
"upgrades.etherealcoins.verbose_description": "Paralar birkaç kez zıpladıktan sonra bile hızlarını koruyacak ve artık yer çekiminden etkilenmeyecekler.",
@ -347,7 +350,7 @@
"upgrades.ottawa_treaty.tooltip": "Bir bombanın yakınında tuğla kırmak onu etkisiz hale getirir",
"upgrades.ottawa_treaty.verbose_description": "Yakındaki bomba renkli bir blokla değiştirilecektir. Eğer sapper'ınız varsa, top bir sonraki sıçramaya kadar sapper etkisini kaybedecektir. Aynı anda yalnızca bir bomba değiştirilebilir.",
"upgrades.passive_income.name": "Pasif gelir",
"upgrades.passive_income.tooltip": "+{{lvl}} kombo / tuğla, kürek son {{time}}saniyede hareket etmediği sürece, bunun yerine sıfırlanır",
"upgrades.passive_income.tooltip": "+{{lvl}} kombo / tuğla, kürek önemsizdir {{time}}saniye hareket ettikten sonra",
"upgrades.passive_income.verbose_description": "Bazı özellikler, topların hiçbir şey yapmanıza gerek kalmadan istediğinizi yapmasına yardımcı olabilir.",
"upgrades.picky_eater.name": "Seçici yiyen",
"upgrades.picky_eater.tooltip": "+{{lvl}} kombo her tuğla kırıldığında, top rengi değiştiğinde sıfırlanır",
@ -448,6 +451,9 @@
"upgrades.wind.name": "Rüzgâr",
"upgrades.wind.tooltip": "Kürek pozisyonu rüzgar yaratır",
"upgrades.wind.verbose_description": "Rüzgar küreğin pozisyonuna bağlıdır: sol sola eser, sağ sağa eser. Hem topları hem de paraları etkiler.",
"upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "",
"upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "Top küreğe doğru düşer",
"upgrades.yoyo.verbose_description": "Telekinezinin tam tersi, topun aşağı düşerken kontrol edilmesi.",

View file

@ -427,7 +427,7 @@ export function render(gameState: GameState) {
});
startWork("render:puck");
ctx.globalAlpha = 1;
ctx.globalAlpha = isMovingWhilePassiveIncome(gameState) ? 0.2: 1;
ctx.globalCompositeOperation = "source-over";
drawPuck(
ctx,
@ -440,8 +440,9 @@ export function render(gameState: GameState) {
);
startWork("render:combotext");
const spawns = coinsBoostedCombo(gameState);
if (spawns > 1) {
if (spawns > 1 && !isMovingWhilePassiveIncome(gameState)) {
ctx.globalCompositeOperation = "source-over";
ctx.globalAlpha = 1;
@ -684,7 +685,6 @@ export function renderAllBricks() {
const redBorderOnBricksWithWrongColor =
hasCombo && gameState.perks.picky_eater && isPickyEatingPossible(gameState);
const redColorOnAllBricks = hasCombo && isMovingWhilePassiveIncome(gameState);
const redRowReach = reachRedRowIndex(gameState);
const { clairvoyant } = gameState.perks;
@ -692,7 +692,6 @@ export function renderAllBricks() {
if (
!(
redBorderOnBricksWithWrongColor ||
redColorOnAllBricks ||
redRowReach !== -1 ||
gameState.perks.zen
)
@ -713,8 +712,6 @@ export function renderAllBricks() {
"_" +
redBorderOnBricksWithWrongColor +
"_" +
redColorOnAllBricks +
"_" +
gameState.ballsColor +
"_" +
gameState.perks.pierce_color +
@ -749,8 +746,7 @@ export function renderAllBricks() {
color !== "black" &&
redBorderOnBricksWithWrongColor) ||
(hasCombo && gameState.perks.zen && color === "black") ||
redBecauseOfReach ||
redColorOnAllBricks;
redBecauseOfReach ;
canctx.globalCompositeOperation = "source-over";
drawBrick(

View file

@ -862,4 +862,25 @@ export const rawUpgrades = [
help: (lvl: number) => t("upgrades.sticky_coins.tooltip"),
fullHelp: t("upgrades.sticky_coins.verbose_description"),
},
{
requires: "",
threshold: 235000,
gift: false,
id: "double_or_nothing",
max: 3,
name: t("upgrades.double_or_nothing.name"),
help: (lvl: number) => t("upgrades.double_or_nothing.tooltip",
{percent: lvl*10, multiplier:1+lvl}),
fullHelp: t("upgrades.double_or_nothing.verbose_description"),
},
{
requires: "",
threshold: 240000,
gift: false,
id: "wrap_left",
max: 1,
name: t("upgrades.wrap_left.name"),
help: () => t("upgrades.wrap_left.tooltip"),
fullHelp: t("upgrades.wrap_left.verbose_description"),
},
] as const;