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
- 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
- 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
@ -342,7 +347,7 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
## 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
- cash out : double last level's gains
- 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
- ball avoids brick of wrong color
- puck slowly follows desired position, but +1 combo
- knockback : hitting a brick pushes it (requires sturdy bricks)
## Hard perk ideas
- 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,
"bricks": "ttt____tbbb___tbttt__tbtbbb__btbbb___tbbb____bbb_"
},
{
"name": "icon:instant_upgrade",
"size": 5,
"bricks": "ttt__tbbb_tbbb_tbbb__bbb_"
},
{
"name": "icon:checkmark_checked",
"size": 6,
@ -1409,4 +1404,4 @@
"svg": null,
"color": ""
}
]
]

View file

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

View file

@ -1181,7 +1181,7 @@ export function gameStateTick(
Math.abs(coin.x - gameState.puckPosition) * 2 >
gameState.puckWidth + coin.size;
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.helium) {

View file

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

View file

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

View file

@ -318,7 +318,7 @@
"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.",
"upgrades.helium.verbose_description": "",
"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.",

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.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.",
"upgrades.helium.tooltip": "Gravity limited left and right of paddle",
"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.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. ",

View file

@ -318,7 +318,7 @@
"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.",
"upgrades.helium.verbose_description": "",
"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. ",

View file

@ -318,7 +318,7 @@
"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. ",
"upgrades.helium.verbose_description": "",
"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. ",

View file

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

View file

@ -318,7 +318,7 @@
"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.",
"upgrades.helium.verbose_description": "",
"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.",

View file

@ -271,7 +271,10 @@ export function render(gameState: GameState) {
ctx.globalAlpha = 1;
ctx.globalCompositeOperation = "source-over";
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) {
const amplitude =
((gameState.perks.bigger_explosions + 1) * 50) / lastExplosionDelay;

View file

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

View file

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