This commit is contained in:
Renan LE CARO 2025-04-22 13:41:39 +02:00
parent 3d3e7805d6
commit 16911620c0
16 changed files with 55 additions and 95 deletions

View file

@ -17,6 +17,11 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
## Done ## Done
- removed : instant_upgrade
- nerfed : helium : now need to be level 3 to have the same effect of keeping coins up
## 29088680
- new perk: happy family: + lvl points per paddle bounce per extra ball, reset on ball lost - 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 : 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 - nerfed perk: zen : combo increases every 3 seconds, resets on explosion
@ -342,7 +347,7 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
## Easy perks ideas ## Easy perks ideas
- "+1 coin for each brick within a small radius of the broken brick" ? - "+1 coin for each ball within a small radius of the broken brick" ?
- two for one : add a 2 for one upgrade combo to the choice lists - two for one : add a 2 for one upgrade combo to the choice lists
- cash out : double last level's gains - cash out : double last level's gains
- snowball : Combo resets every 0.1s . +1 combo for each combo gained Since last reset. - snowball : Combo resets every 0.1s . +1 combo for each combo gained Since last reset.
@ -388,6 +393,7 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
- the more balls are close to a brick, the more combo is gained when breaking it. If only one ball, loose one point or reset - the more balls are close to a brick, the more combo is gained when breaking it. If only one ball, loose one point or reset
- ball avoids brick of wrong color - ball avoids brick of wrong color
- puck slowly follows desired position, but +1 combo - puck slowly follows desired position, but +1 combo
- knockback : hitting a brick pushes it (requires sturdy bricks)
## Hard perk ideas ## Hard perk ideas
- accelerometer controls coins and balls - accelerometer controls coins and balls

66
dist/index.html vendored

File diff suppressed because one or more lines are too long

View file

@ -704,11 +704,6 @@
"size": 7, "size": 7,
"bricks": "ttt____tbbb___tbttt__tbtbbb__btbbb___tbbb____bbb_" "bricks": "ttt____tbbb___tbttt__tbtbbb__btbbb___tbbb____bbb_"
}, },
{
"name": "icon:instant_upgrade",
"size": 5,
"bricks": "ttt__tbbb_tbbb_tbbb__bbb_"
},
{ {
"name": "icon:checkmark_checked", "name": "icon:checkmark_checked",
"size": 6, "size": 6,

View file

@ -299,7 +299,7 @@ export async function openUpgradesPicker(gameState: GameState) {
help: string; help: string;
}> = pickRandomUpgrades( }> = pickRandomUpgrades(
gameState, gameState,
3 + gameState.perks.one_more_choice - gameState.perks.instant_upgrade, 3 + gameState.perks.one_more_choice ,
); );
if (!actions.length) break; if (!actions.length) break;
@ -359,9 +359,6 @@ export async function openUpgradesPicker(gameState: GameState) {
gameState.rerolls--; gameState.rerolls--;
} else { } else {
gameState.perks[upgradeId]++; gameState.perks[upgradeId]++;
if (upgradeId === "instant_upgrade") {
repeats += 2;
}
gameState.runStatistics.upgrades_picked++; gameState.runStatistics.upgrades_picked++;
} }
} }

View file

@ -1181,7 +1181,7 @@ export function gameStateTick(
Math.abs(coin.x - gameState.puckPosition) * 2 > Math.abs(coin.x - gameState.puckPosition) * 2 >
gameState.puckWidth + coin.size; gameState.puckWidth + coin.size;
let dvy = let dvy =
frames * coin.weight * 0.8 * (flip ? -gameState.perks.helium : 1); frames * coin.weight * 0.8 * (flip ? 1-gameState.perks.helium*0.6 : 1);
if (gameState.perks.etherealcoins) { if (gameState.perks.etherealcoins) {
if (gameState.perks.helium) { if (gameState.perks.helium) {

View file

@ -306,7 +306,6 @@ function isExcluded(id: PerkId) {
"extra_levels", "extra_levels",
"extra_life", "extra_life",
"one_more_choice", "one_more_choice",
"instant_upgrade",
"shunt", "shunt",
"slow_down", "slow_down",
]); ]);

View file

@ -318,7 +318,7 @@
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "",
"upgrades.helium.name": "الهيليوم", "upgrades.helium.name": "الهيليوم",
"upgrades.helium.tooltip": "انعكست الجاذبية إلى اليسار واليمين من المجداف", "upgrades.helium.tooltip": "انعكست الجاذبية إلى اليسار واليمين من المجداف",
"upgrades.helium.verbose_description": "يؤثر هذا على العملات المعدنية وسيسمح لها بالطفو حتى تصبح جاهزًا لالتقاطها.", "upgrades.helium.verbose_description": "",
"upgrades.hot_start.name": "بداية ساخنة", "upgrades.hot_start.name": "بداية ساخنة",
"upgrades.hot_start.tooltip": "ابدأ عند المجموعة {{start}}، -{{loss}} مجموعة في الثانية", "upgrades.hot_start.tooltip": "ابدأ عند المجموعة {{start}}، -{{loss}} مجموعة في الثانية",
"upgrades.hot_start.verbose_description": "في بداية كل مستوى، تبدأ مجموعتك بـ +٣٠ نقطة، ثم تنخفض نقطة واحدة كل ثانية. يتراكم هذا التأثير مع مزايا أخرى.", "upgrades.hot_start.verbose_description": "في بداية كل مستوى، تبدأ مجموعتك بـ +٣٠ نقطة، ثم تنخفض نقطة واحدة كل ثانية. يتراكم هذا التأثير مع مزايا أخرى.",

View file

@ -318,7 +318,7 @@
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "",
"upgrades.helium.name": "Helium", "upgrades.helium.name": "Helium",
"upgrades.helium.tooltip": "Umgekehrte Schwerkraft links und rechts des Paddels", "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.", "upgrades.helium.verbose_description": "",
"upgrades.hot_start.name": "Heißer Start", "upgrades.hot_start.name": "Heißer Start",
"upgrades.hot_start.tooltip": "Start bei Kombo {{start}}, -{{loss}} Kombo pro Sekunde", "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.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.",

View file

@ -317,8 +317,8 @@
"upgrades.happy_family.tooltip": "+1 combo per extra ball for each paddle bounce. Combo resets when a ball is lost. ", "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.happy_family.verbose_description": "Only the ball above 1 give combo.",
"upgrades.helium.name": "Helium", "upgrades.helium.name": "Helium",
"upgrades.helium.tooltip": "Gravity reversed left and right of paddle", "upgrades.helium.tooltip": "Gravity limited 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.", "upgrades.helium.verbose_description": "At level 1, gravity is reduced. At level 2, coins slowly float up. At level 3 they really fly.",
"upgrades.hot_start.name": "Hot start", "upgrades.hot_start.name": "Hot start",
"upgrades.hot_start.tooltip": "Start at combo {{start}}, -{{loss}} combo per second", "upgrades.hot_start.tooltip": "Start at combo {{start}}, -{{loss}} combo per second",
"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.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. ",

View file

@ -318,7 +318,7 @@
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "",
"upgrades.helium.name": "Helio", "upgrades.helium.name": "Helio",
"upgrades.helium.tooltip": "Las piezas flotan en lugar de caer alrededor de la raqueta.", "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.", "upgrades.helium.verbose_description": "",
"upgrades.hot_start.name": "Arranque en caliente", "upgrades.hot_start.name": "Arranque en caliente",
"upgrades.hot_start.tooltip": "Combo a {{start}}, -{{loss}} combo por segundo", "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.hot_start.verbose_description": "Al principio de cada nivel, tu combo comenzará con +30 puntos, pero cada segundo se reducirá en un punto. ",

View file

@ -318,7 +318,7 @@
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "",
"upgrades.helium.name": "Hélium", "upgrades.helium.name": "Hélium",
"upgrades.helium.tooltip": "Les pièce flottent au lieu de tomber autours de la raquette.", "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. ", "upgrades.helium.verbose_description": "",
"upgrades.hot_start.name": "Démarrage à chaud", "upgrades.hot_start.name": "Démarrage à chaud",
"upgrades.hot_start.tooltip": "Combo à {{start}}, -{{loss}} combo par seconde", "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.hot_start.verbose_description": "Au début de chaque niveau, votre combo commencera à +30 points, mais à chaque seconde, il sera diminué d'un point. ",

View file

@ -318,7 +318,7 @@
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "",
"upgrades.helium.name": "Гелий", "upgrades.helium.name": "Гелий",
"upgrades.helium.tooltip": "Гравитация изменяется слева и справа от весла", "upgrades.helium.tooltip": "Гравитация изменяется слева и справа от весла",
"upgrades.helium.verbose_description": "Это повлияет на монеты и позволит им плавать до тех пор, пока вы не соберете их.", "upgrades.helium.verbose_description": "",
"upgrades.hot_start.name": "Горячий старт", "upgrades.hot_start.name": "Горячий старт",
"upgrades.hot_start.tooltip": "Начните с комбо {{start}}, -{{loss}} комбо в секунду", "upgrades.hot_start.tooltip": "Начните с комбо {{start}}, -{{loss}} комбо в секунду",
"upgrades.hot_start.verbose_description": "В начале каждого уровня ваше комбо будет начинаться с +30 очков, но затем каждую секунду оно будет уменьшаться на одно. Эффект суммируется с другими перками.", "upgrades.hot_start.verbose_description": "В начале каждого уровня ваше комбо будет начинаться с +30 очков, но затем каждую секунду оно будет уменьшаться на одно. Эффект суммируется с другими перками.",

View file

@ -318,7 +318,7 @@
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "",
"upgrades.helium.name": "Helyum", "upgrades.helium.name": "Helyum",
"upgrades.helium.tooltip": "Yerçekimi küreğin solunda ve sağında tersine döndü", "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.", "upgrades.helium.verbose_description": "",
"upgrades.hot_start.name": "Sıcak başlangıç", "upgrades.hot_start.name": "Sıcak başlangıç",
"upgrades.hot_start.tooltip": " {{start}}kombosundan başla, saniyede{{loss}} kombo", "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.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.",

View file

@ -271,7 +271,10 @@ export function render(gameState: GameState) {
ctx.globalAlpha = 1; ctx.globalAlpha = 1;
ctx.globalCompositeOperation = "source-over"; ctx.globalCompositeOperation = "source-over";
const lastExplosionDelay = gameState.levelTime - gameState.lastExplosion + 5; const lastExplosionDelay = gameState.levelTime - gameState.lastExplosion + 5;
const shaked = lastExplosionDelay < 200 && !isOptionOn("basic");
const shaked = lastExplosionDelay < 200 && !isOptionOn("basic") &&
// Otherwise, if you pause after an explosion, moving the mouses shakes the picture
gameState.running;
if (shaked) { if (shaked) {
const amplitude = const amplitude =
((gameState.perks.bigger_explosions + 1) * 50) / lastExplosionDelay; ((gameState.perks.bigger_explosions + 1) * 50) / lastExplosionDelay;

View file

@ -4,7 +4,6 @@ import { t } from "./i18n/i18n";
import { icons, upgrades } from "./loadGameData"; import { icons, upgrades } from "./loadGameData";
import { getSettingValue, getTotalScore, setSettingValue } from "./settings"; import { getSettingValue, getTotalScore, setSettingValue } from "./settings";
import { isOptionOn } from "./options"; import { isOptionOn } from "./options";
import { notStartingPerk } from "./upgrades";
export function startingPerkMenuButton() { export function startingPerkMenuButton() {
return { return {
@ -20,7 +19,6 @@ export function startingPerkMenuButton() {
export function isBlackListedForStart(u: Upgrade) { export function isBlackListedForStart(u: Upgrade) {
return !!( return !!(
notStartingPerk.includes(u.id) ||
u.requires || u.requires ||
u.threshold > getTotalScore() u.threshold > getTotalScore()
); );

View file

@ -8,11 +8,8 @@ export const noCreative: PerkId[] = [
"extra_levels", "extra_levels",
"shunt", "shunt",
"one_more_choice", "one_more_choice",
"instant_upgrade",
]; ];
// Those perks are excluded from the starting perks list
export const notStartingPerk: PerkId[] = ["instant_upgrade"];
export const rawUpgrades = [ export const rawUpgrades = [
{ {
@ -423,16 +420,17 @@ export const rawUpgrades = [
}, },
{ {
requires: "", requires: "",
threshold: 55000, threshold: 55000,
gift: false, gift: false,
id: "double_or_nothing",
id: "instant_upgrade", max: 3,
max: 2, name: t("upgrades.double_or_nothing.name"),
adventure: false, help: (lvl: number) =>
name: t("upgrades.instant_upgrade.name"), t("upgrades.double_or_nothing.tooltip", {
help: (lvl: number) => t("upgrades.instant_upgrade.tooltip", { lvl }), percent: lvl * 10,
fullHelp: t("upgrades.instant_upgrade.verbose_description"), multiplier: 1 + lvl,
}),
fullHelp: t("upgrades.double_or_nothing.verbose_description"),
}, },
{ {
requires: "", requires: "",
@ -447,19 +445,17 @@ export const rawUpgrades = [
}, },
{ {
requires: "", requires: "",
threshold: 65000, threshold: 65000,
gift: false, gift: false,
id: "helium", id: "helium",
max: 1, max: 3,
name: t("upgrades.helium.name"), name: t("upgrades.helium.name"),
help: (lvl: number) => t("upgrades.helium.tooltip"), help: (lvl: number) => t("upgrades.helium.tooltip"),
fullHelp: t("upgrades.helium.verbose_description"), fullHelp: t("upgrades.helium.verbose_description"),
}, },
{ {
requires: "", requires: "",
threshold: 70000, threshold: 70000,
gift: true, gift: true,
@ -862,20 +858,6 @@ export const rawUpgrades = [
help: (lvl: number) => t("upgrades.sticky_coins.tooltip"), help: (lvl: number) => t("upgrades.sticky_coins.tooltip"),
fullHelp: t("upgrades.sticky_coins.verbose_description"), 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: "", requires: "",
threshold: 240000, threshold: 240000,