Build 29091656

This commit is contained in:
Renan LE CARO 2025-04-24 14:57:08 +02:00
parent f48d9bdfa3
commit e2d8a0ab5c
28 changed files with 2607 additions and 2496 deletions

View file

@ -15,9 +15,19 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
## To do ## To do
- save global stats locally (sum of broken bricks, paddle hits, misses,) - save global stats locally (sum of broken bricks, paddle hits, misses,)
- rewoks perks choices :
- remove rerolls
- offer to pick 1 upgrade out of 3 choices
- playing well adds 1 upgrade and 1 choice
- playing even better adds 1 choice
- more choices add 1 choice
- you can skip the upgrades and they'll be saved for later
- you can take pick one choice multiple time to level it up
- when you don't play well enough, the choice you would have had are shown greyed out with unlock condition.
## Done ## Done
- all or nothing : don't show negative number of coins cought, don't reduce score if no combo was lost
- rename hypnosis to golden_goose, apply when hitting any brick, any side at level 2 - rename hypnosis to golden_goose, apply when hitting any brick, any side at level 2
- removed comboIncreaseTexts option - removed comboIncreaseTexts option
- minefield : +10% coins per bomb on screen - minefield : +10% coins per bomb on screen
@ -30,6 +40,7 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
- removed : instant_upgrade - removed : instant_upgrade
- nerfed : helium : now need to be level 3 to have the same effect of keeping coins up - nerfed : helium : now need to be level 3 to have the same effect of keeping coins up
- new level : Blinky by Big Goober - new level : Blinky by Big Goober
- game over screen : perk list at the bottom, after unlocks and stats
## 29088680 ## 29088680

View file

@ -29,8 +29,8 @@ android {
applicationId = "me.lecaro.breakout" applicationId = "me.lecaro.breakout"
minSdk = 21 minSdk = 21
targetSdk = 34 targetSdk = 34
versionCode = 29090261 versionCode = 29091656
versionName = "29090261" versionName = "29091656"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables { vectorDrawables {
useSupportLibrary = true useSupportLibrary = true

File diff suppressed because one or more lines are too long

47
dist/index.html vendored

File diff suppressed because one or more lines are too long

View file

@ -1,5 +1,5 @@
// The version of the cache. // The version of the cache.
const VERSION = "29090261"; const VERSION = "29091656";
// The name of the cache // The name of the cache
const CACHE_NAME = `breakout-71-${VERSION}`; const CACHE_NAME = `breakout-71-${VERSION}`;

View file

@ -140,8 +140,8 @@ ${icon}
if (isOptionOn("mobile-mode")) { if (isOptionOn("mobile-mode")) {
const helpBtn = document.createElement("button"); const helpBtn = document.createElement("button");
helpBtn.innerText = "?"; helpBtn.innerText = "?";
helpBtn.setAttribute('data-help-content',tooltip); helpBtn.setAttribute("data-help-content", tooltip);
button.appendChild(helpBtn) button.appendChild(helpBtn);
} else { } else {
button.setAttribute("data-tooltip", tooltip); button.setAttribute("data-tooltip", tooltip);
} }
@ -185,4 +185,3 @@ function updateAlertsOpen(delta: number) {
} }
document.body.classList[alertsOpen ? "add" : "remove"]("has-alert-open"); document.body.classList[alertsOpen ? "add" : "remove"]("has-alert-open");
} }

View file

@ -1397,4 +1397,4 @@
"bricks": "____________________________gggg______________ggrrrrgg___________grrrrrrrrg_________grrrrrrrrrrg_______grrrWWrrrrWWrg______grrWWWWrrWWWWg______grrWWbbrrWWbbg_____grrrWWbbrrWWbbrg____grrrrWWrrrrWWrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrgrrrggrrrgrrg____grg_grg__grg_grg_____g___g____g___g_______________________________________________________________", "bricks": "____________________________gggg______________ggrrrrgg___________grrrrrrrrg_________grrrrrrrrrrg_______grrrWWrrrrWWrg______grrWWWWrrWWWWg______grrWWbbrrWWbbg_____grrrWWbbrrWWbbrg____grrrrWWrrrrWWrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrrrrrrrrrrrrrg____grrgrrrggrrrgrrg____grg_grg__grg_grg_____g___g____g___g_______________________________________________________________",
"credit": "Suggested by Big Goober. The red ghost, Blinky, from the arcade game \"Pac Man\"" "credit": "Suggested by Big Goober. The red ghost, Blinky, from the arcade game \"Pac Man\""
} }
] ]

View file

@ -1 +1 @@
"29090261" "29091656"

View file

@ -1,9 +1,10 @@
* { * {
font-family: Courier New, font-family:
Courier, Courier New,
Lucida Sans Typewriter, Courier,
Lucida Typewriter, Lucida Sans Typewriter,
monospace; Lucida Typewriter,
monospace;
box-sizing: border-box; box-sizing: border-box;
} }
@ -516,8 +517,9 @@ h2.histogram-title strong {
border-radius: 2px; border-radius: 2px;
padding-right: 10px; padding-right: 10px;
pointer-events: none; pointer-events: none;
transition: opacity 200ms, transition:
transform 200ms; opacity 200ms,
transform 200ms;
z-index: 7; z-index: 7;
&.hidden { &.hidden {

View file

@ -113,7 +113,6 @@ export async function play() {
} }
export function pause(playerAskedForPause: boolean) { export function pause(playerAskedForPause: boolean) {
if (!gameState.running) return; if (!gameState.running) return;
if (gameState.pauseTimeout) return; if (gameState.pauseTimeout) return;
if (gameState.startParams.computer_controlled) { if (gameState.startParams.computer_controlled) {
@ -251,8 +250,7 @@ setInterval(() => {
export async function openUpgradesPicker(gameState: GameState) { export async function openUpgradesPicker(gameState: GameState) {
const catchRate = const catchRate =
(gameState.score - gameState.levelStartScore) / gameState.levelCoughtCoins / (gameState.levelSpawnedCoins || 1);
(gameState.levelSpawnedCoins || 1);
let repeats = 1; let repeats = 1;
@ -329,7 +327,7 @@ export async function openUpgradesPicker(gameState: GameState) {
(repeats ? " (" + (repeats + 1) + ")" : ""), (repeats ? " (" + (repeats + 1) + ")" : ""),
content: [ content: [
`<p>${t("level_up.before_buttons", { `<p>${t("level_up.before_buttons", {
score: gameState.score - gameState.levelStartScore, score: gameState.levelCoughtCoins,
catchGain, catchGain,
levelSpawnedCoins: gameState.levelSpawnedCoins, levelSpawnedCoins: gameState.levelSpawnedCoins,
time: Math.round(gameState.levelTime / 1000), time: Math.round(gameState.levelTime / 1000),
@ -459,8 +457,7 @@ export function tick() {
) * frames; ) * frames;
const steps = Math.ceil(maxBallSpeed / 8); const steps = Math.ceil(maxBallSpeed / 8);
for (let i = 0; i < steps; i++) { for (let i = 0; i < steps; i++) {
gameStateTick(gameState, frames / steps); gameStateTick(gameState, frames / steps);
} }
} }
@ -539,7 +536,6 @@ setInterval(() => {
monitorLevelsUnlocks(gameState); monitorLevelsUnlocks(gameState);
}, 500); }, 500);
scoreDisplay.addEventListener("click", (e) => { scoreDisplay.addEventListener("click", (e) => {
e.preventDefault(); e.preventDefault();
if (!alertsOpen) { if (!alertsOpen) {
@ -925,8 +921,8 @@ async function openUnlockedUpgradesList() {
ts < threshold ts < threshold
? t("unlocks.minTotalScore", { score: threshold }) ? t("unlocks.minTotalScore", { score: threshold })
: help(1), : help(1),
tooltip: ts < threshold ? "" : fullHelp(1)+ ' [id:'+id+ ']', tooltip: ts < threshold ? "" : fullHelp(1) + " [id:" + id + "]",
threshold threshold,
})) }))
.sort((a, b) => a.threshold - b.threshold); .sort((a, b) => a.threshold - b.threshold);

View file

@ -98,9 +98,9 @@ export function gameOver(title: string, intro: string) {
}, },
`<div id="level-recording-container"></div>`, `<div id="level-recording-container"></div>`,
pickedUpgradesHTMl(gameState),
unlocksInfo, unlocksInfo,
getHistograms(gameState), getHistograms(gameState),
pickedUpgradesHTMl(gameState),
], ],
}).then(() => }).then(() =>
restart({ restart({

File diff suppressed because it is too large Load diff

View file

@ -55,7 +55,7 @@
"history.columns.score": "نتيجة", "history.columns.score": "نتيجة",
"history.columns.started": "تاريخ", "history.columns.started": "تاريخ",
"history.help": "شاهد أفضل ألعابك {{count}} .", "history.help": "شاهد أفضل ألعابك {{count}} .",
"history.include_past_versions": "", "history.include_past_versions": "إظهار الإصدارات السابقة أيضًا",
"history.locked": "العب عشر مباريات على الأقل لفتح القفل", "history.locked": "العب عشر مباريات على الأقل لفتح القفل",
"history.title": "سجل التشغيل", "history.title": "سجل التشغيل",
"lab.help": "جرب أي بناء تريده", "lab.help": "جرب أي بناء تريده",
@ -227,24 +227,24 @@
"starting_perks.random": "لقد تم إزالة جميع المزايا، وسيكون الاختيار عشوائيًا.", "starting_perks.random": "لقد تم إزالة جميع المزايا، وسيكون الاختيار عشوائيًا.",
"starting_perks.title": "امتيازات البداية", "starting_perks.title": "امتيازات البداية",
"starting_perks.unchecked": "لا يتم تقديم الامتيازات المذكورة أدناه كامتيازات ابتدائية، ولكن يمكنك النقر عليها لإضافتها إلى المجموعة.", "starting_perks.unchecked": "لا يتم تقديم الامتيازات المذكورة أدناه كامتيازات ابتدائية، ولكن يمكنك النقر عليها لإضافتها إلى المجموعة.",
"unlocks.category.advanced": "", "unlocks.category.advanced": "## الترقيات المتقدمة\n\nعادةً ما لا تكون هذه الترقيات مفيدةً بحد ذاتها، ولكنها قد تصبح قويةً جدًا عند دمجها مع الترقيات المُركبة المناسبة.",
"unlocks.category.beginner": "", "unlocks.category.beginner": "## ترقيات مناسبة للمبتدئين\n\nهذه الترقيات مفيدة جدًا للمبتدئين، فهي تساعدك على اللعب لفترة أطول وتقليل إهدار الكرة.\n\n",
"unlocks.category.combo": "", "unlocks.category.combo": "## ترقيات المجموعات\n\nتساعد هذه الترقيات على زيادة مجموعتك تدريجيًا، كما تُضيف شرط إعادة ضبط المجموعة. الحصول على واحدة فكرة جيدة، فالحصول على المزيد يزيد من المخاطرة والمكافأة.",
"unlocks.category.combo_boost": "", "unlocks.category.combo_boost": "## ترقيات تعزيز المجموعات\n\nتزيد هذه الترقيات من قوة المجموعات أو مضاعفها دون الحاجة إلى إعادة ضبط.",
"unlocks.category.simple": "", "unlocks.category.simple": "## ترقيات مساعدة\n\nهذه الترقيات مفيدة في أي إصدار تقريبًا.\n\n",
"unlocks.greyed_out_help": "يمكن فتح الترقيات غير المفعّلة بزيادة مجموع نقاطك. يزداد مجموع النقاط مع كل نقطة تُسجّلها في اللعبة.", "unlocks.greyed_out_help": "يمكن فتح الترقيات غير المفعّلة بزيادة مجموع نقاطك. يزداد مجموع النقاط مع كل نقطة تُسجّلها في اللعبة.",
"unlocks.intro": "", "unlocks.intro": "مجموع نقاطك هو {{ts}}. انقر على ترقية أدناه لبدء اللعبة بها.",
"unlocks.just_unlocked": "تم فتح المستوى", "unlocks.just_unlocked": "تم فتح المستوى",
"unlocks.just_unlocked_plural": "لقد قمت للتو بفتح {{count}} مستوى", "unlocks.just_unlocked_plural": "لقد قمت للتو بفتح {{count}} مستوى",
"unlocks.level": "", "unlocks.level": "لقد قمت بفتح {{unlocked}} مستوى من أصل {{out_of}}",
"unlocks.level_description": "مستوى {{size}}×{{size}} مع {{bricks}} طوبة و {{colors}} لون و {{bombs}} قنبلة.", "unlocks.level_description": "مستوى {{size}}×{{size}} مع {{bricks}} طوبة و {{colors}} لون و {{bombs}} قنبلة.",
"unlocks.levels": "", "unlocks.levels": "المستويات المفتوحة",
"unlocks.minScore": "احصل على ${{minScore}} في جولة لفتح القفل.", "unlocks.minScore": "احصل على ${{minScore}} في جولة لفتح القفل.",
"unlocks.minScoreWithPerks": "احصل على ${{minScore}} في جولة مع {{required}} ولكن بدون {{forbidden}} لفتح القفل.", "unlocks.minScoreWithPerks": "احصل على ${{minScore}} في جولة مع {{required}} ولكن بدون {{forbidden}} لفتح القفل.",
"unlocks.minTotalScore": "تجميع إجمالي قدره{{score}}دولار", "unlocks.minTotalScore": "تجميع إجمالي قدره{{score}}دولار",
"unlocks.reached": "أفضل نتيجة حصلت عليها كانت {{reached}}.", "unlocks.reached": "أفضل نتيجة حصلت عليها كانت {{reached}}.",
"unlocks.title_upgrades": "لقد قمت بفتح {{unlocked}} ترقيات من أصل {{out_of}}", "unlocks.title_upgrades": "لقد قمت بفتح {{unlocked}} ترقيات من أصل {{out_of}}",
"unlocks.upgrades": "", "unlocks.upgrades": "الترقيات المفتوحة",
"upgrades.addiction.name": "مدمن", "upgrades.addiction.name": "مدمن",
"upgrades.addiction.tooltip": "+{{lvl}} مجموعة / لبنة، يتم إعادة تعيين المجموعة لمدة {{delay}}ثانية بعد كسر لبنة.", "upgrades.addiction.tooltip": "+{{lvl}} مجموعة / لبنة، يتم إعادة تعيين المجموعة لمدة {{delay}}ثانية بعد كسر لبنة.",
"upgrades.addiction.verbose_description": "يبدأ العد التنازلي بعد كسر أول لبنة من كل مستوى، ويتوقف عند تدمير جميع الطوب.", "upgrades.addiction.verbose_description": "يبدأ العد التنازلي بعد كسر أول لبنة من كل مستوى، ويتوقف عند تدمير جميع الطوب.",
@ -261,7 +261,7 @@
"upgrades.ball_repulse_ball.tooltip": "الكرات تصد الكرات", "upgrades.ball_repulse_ball.tooltip": "الكرات تصد الكرات",
"upgrades.ball_repulse_ball.verbose_description": "الكرات التي تبعد أقل من ربع عرض الشاشة ستبدأ بالتنافر. تزداد قوة التنافر كلما كانت الكرات قريبة من بعضها. ستنطلق الجسيمات للخارج لترمز إلى تطبيق هذه القوة. هذه الميزة متاحة فقط إذا كان لديك أكثر من كرة واحدة.", "upgrades.ball_repulse_ball.verbose_description": "الكرات التي تبعد أقل من ربع عرض الشاشة ستبدأ بالتنافر. تزداد قوة التنافر كلما كانت الكرات قريبة من بعضها. ستنطلق الجسيمات للخارج لترمز إلى تطبيق هذه القوة. هذه الميزة متاحة فقط إذا كان لديك أكثر من كرة واحدة.",
"upgrades.base_combo.name": "أسس قوية", "upgrades.base_combo.name": "أسس قوية",
"upgrades.base_combo.tooltip": "", "upgrades.base_combo.tooltip": "3 عملات معدنية إضافية لكل لبنة مكسورة",
"upgrades.base_combo.verbose_description": "عادةً ما تبدأ مجموعتك من ١ في بداية المستوى، وتُعاد ضبطها إلى ١ عندما تقفز دون أن تصطدم بأي شيء. مع هذه الميزة، تبدأ المجموعة أعلى بثلاث نقاط، لذا ستحصل دائمًا على ٤ عملات على الأقل لكل مكعب. عند إعادة ضبط مجموعتك، تعود إلى ٤ وليس ١. ستتألق كرتك قليلاً للإشارة إلى أن مجموعتها أعلى من ١.", "upgrades.base_combo.verbose_description": "عادةً ما تبدأ مجموعتك من ١ في بداية المستوى، وتُعاد ضبطها إلى ١ عندما تقفز دون أن تصطدم بأي شيء. مع هذه الميزة، تبدأ المجموعة أعلى بثلاث نقاط، لذا ستحصل دائمًا على ٤ عملات على الأقل لكل مكعب. عند إعادة ضبط مجموعتك، تعود إلى ٤ وليس ١. ستتألق كرتك قليلاً للإشارة إلى أن مجموعتها أعلى من ١.",
"upgrades.bigger_explosions.name": "كابوم", "upgrades.bigger_explosions.name": "كابوم",
"upgrades.bigger_explosions.tooltip": "انفجارات أكبر", "upgrades.bigger_explosions.tooltip": "انفجارات أكبر",
@ -293,8 +293,8 @@
"upgrades.corner_shot.name": "ضربة ركنية", "upgrades.corner_shot.name": "ضربة ركنية",
"upgrades.corner_shot.tooltip": "يسمح للمجداف الخاص بك بالتداخل مع حدود الشاشة", "upgrades.corner_shot.tooltip": "يسمح للمجداف الخاص بك بالتداخل مع حدود الشاشة",
"upgrades.corner_shot.verbose_description": "يُساعدك على التصويب في الزوايا. المستويات الأعلى تُتيح لك الوصول إلى مسافات أبعد.", "upgrades.corner_shot.verbose_description": "يُساعدك على التصويب في الزوايا. المستويات الأعلى تُتيح لك الوصول إلى مسافات أبعد.",
"upgrades.double_or_nothing.name": "", "upgrades.double_or_nothing.name": "ضعف أو لا شيء",
"upgrades.double_or_nothing.tooltip": "", "upgrades.double_or_nothing.tooltip": "ترتفع المجموعة أسرع بمقدار {{multiplier}} مرة، ولكنك ستخسر {{percent}}% من نقاطك في كل إعادة تعيين.",
"upgrades.double_or_nothing.verbose_description": "", "upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "العملات المعدنية في الفضاء", "upgrades.etherealcoins.name": "العملات المعدنية في الفضاء",
"upgrades.etherealcoins.tooltip": "لم تعد العملات المعدنية تتأثر بالجاذبية", "upgrades.etherealcoins.tooltip": "لم تعد العملات المعدنية تتأثر بالجاذبية",
@ -314,15 +314,15 @@
"upgrades.ghost_coins.name": "عملات الأشباح", "upgrades.ghost_coins.name": "عملات الأشباح",
"upgrades.ghost_coins.tooltip": "تمر العملات المعدنية ببطء عبر الطوب", "upgrades.ghost_coins.tooltip": "تمر العملات المعدنية ببطء عبر الطوب",
"upgrades.ghost_coins.verbose_description": "إنها ليست مشكلة، بل ميزة! تتحرك العملات المعدنية ببطء عبر الطوب. المستويات الأعلى تسمح لها بالتحرك بشكل أسرع.", "upgrades.ghost_coins.verbose_description": "إنها ليست مشكلة، بل ميزة! تتحرك العملات المعدنية ببطء عبر الطوب. المستويات الأعلى تسمح لها بالتحرك بشكل أسرع.",
"upgrades.golden_goose.name": "", "upgrades.golden_goose.name": "أوزة ذهبية",
"upgrades.golden_goose.tooltip": "", "upgrades.golden_goose.tooltip": "تنتقل العملات المعدنية إلى الكرة بعد اصطدامها بالطوب",
"upgrades.golden_goose.verbose_description": "", "upgrades.golden_goose.verbose_description": "كلما اصطدمت قطعة نقود بقطعة نرد، انقلها آنيًا إلى أقرب كرة. في المستوى الثاني، تنتقل العملات آنيًا بعد اصطدامها بجانبها أيضًا.",
"upgrades.happy_family.name": "", "upgrades.happy_family.name": "عائلة سعيدة",
"upgrades.happy_family.tooltip": "", "upgrades.happy_family.tooltip": "مزيد من العملات المعدنية إذا أبقيت جميع الكرات في اللعبة.",
"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": "في بداية كل مستوى، تبدأ مجموعتك بـ +٣٠ نقطة، ثم تنخفض نقطة واحدة كل ثانية. يتراكم هذا التأثير مع مزايا أخرى.",
@ -339,8 +339,8 @@
"upgrades.metamorphosis.tooltip": "يمكن لكل عملة أن تصبغ {{lvl}} من الطوب بلونها", "upgrades.metamorphosis.tooltip": "يمكن لكل عملة أن تصبغ {{lvl}} من الطوب بلونها",
"upgrades.metamorphosis.verbose_description": "مع هذه الميزة، ستكون العملات بلون الطوبة التي أتت منها، وستُلوّن أول طوبة تلمسها بنفس اللون. تظهر العملات بسرعة الكرة التي كسرتها، ما يعني أنه يمكنك التصويب قليلاً باتجاه الطوب الذي تريد \"طلائه\". في المستوى 1، يُمكن لكل عملة تلوين طوبة واحدة قبل أن \"تُستهلك\" وتظهر فارغة.", "upgrades.metamorphosis.verbose_description": "مع هذه الميزة، ستكون العملات بلون الطوبة التي أتت منها، وستُلوّن أول طوبة تلمسها بنفس اللون. تظهر العملات بسرعة الكرة التي كسرتها، ما يعني أنه يمكنك التصويب قليلاً باتجاه الطوب الذي تريد \"طلائه\". في المستوى 1، يُمكن لكل عملة تلوين طوبة واحدة قبل أن \"تُستهلك\" وتظهر فارغة.",
"upgrades.minefield.name": "حقل ألغام", "upgrades.minefield.name": "حقل ألغام",
"upgrades.minefield.tooltip": "", "upgrades.minefield.tooltip": "+{{percent}}% عملات معدنية لكل قنبلة على الشاشة",
"upgrades.minefield.verbose_description": "", "upgrades.minefield.verbose_description": "يتم إحصاء القنابل أثناء انفجارها أيضًا.",
"upgrades.multiball.name": "كرة متعددة", "upgrades.multiball.name": "كرة متعددة",
"upgrades.multiball.tooltip": "ابدأ كل المستويات بـ {{count}} كرة.", "upgrades.multiball.tooltip": "ابدأ كل المستويات بـ {{count}} كرة.",
"upgrades.multiball.verbose_description": "بمجرد أن تسقط الكرة في Breakout 71، ستخسر.\n\nمع هذه الميزة، ستحصل على كرتين، ما يعني أنك قادر على تحمل خسارة إحداهما.\n\nتعود الكرات المفقودة في المستوى التالي.\n\nامتلاك أكثر من كرة واحدة يتيح لك الحصول على مزايا إضافية، وبالطبع يُسرّع من إنهاء المستوى.", "upgrades.multiball.verbose_description": "بمجرد أن تسقط الكرة في Breakout 71، ستخسر.\n\nمع هذه الميزة، ستحصل على كرتين، ما يعني أنك قادر على تحمل خسارة إحداهما.\n\nتعود الكرات المفقودة في المستوى التالي.\n\nامتلاك أكثر من كرة واحدة يتيح لك الحصول على مزايا إضافية، وبالطبع يُسرّع من إنهاء المستوى.",
@ -411,8 +411,8 @@
"upgrades.soft_reset.tooltip": "إعادة تعيين المجموعة تحافظ على {{percent}}%", "upgrades.soft_reset.tooltip": "إعادة تعيين المجموعة تحافظ على {{percent}}%",
"upgrades.soft_reset.verbose_description": "الحد من تأثير إعادة تعيين المجموعة.", "upgrades.soft_reset.verbose_description": "الحد من تأثير إعادة تعيين المجموعة.",
"upgrades.sticky_coins.name": "العملات المعدنية اللاصقة", "upgrades.sticky_coins.name": "العملات المعدنية اللاصقة",
"upgrades.sticky_coins.tooltip": "", "upgrades.sticky_coins.tooltip": "تلتصق العملات المعدنية بالطوب من نفس اللون",
"upgrades.sticky_coins.verbose_description": "", "upgrades.sticky_coins.verbose_description": "في المستوى 2، يلتصقون بالطوب من أي لون",
"upgrades.streak_shots.name": "سلسلة الضربات", "upgrades.streak_shots.name": "سلسلة الضربات",
"upgrades.streak_shots.tooltip": "مزيد من العملات المعدنية إذا قمت بكسر العديد من الطوب قبل القفز على المجداف.", "upgrades.streak_shots.tooltip": "مزيد من العملات المعدنية إذا قمت بكسر العديد من الطوب قبل القفز على المجداف.",
"upgrades.streak_shots.verbose_description": "في كل مرة تكسر فيها لبنة، تزداد مجموعتك بمقدار واحد.\n\nولكن، بمجرد أن تلمس الكرة مضربك، تُعاد المجموعة إلى قيمتها الافتراضية.\n\nبمجرد أن تتجاوز مجموعتك القيمة الأساسية، سيُحاط مضربك بإطار أحمر لتذكيرك بأنه سيدمر مجموعتك إذا لمسته بالكرة.", "upgrades.streak_shots.verbose_description": "في كل مرة تكسر فيها لبنة، تزداد مجموعتك بمقدار واحد.\n\nولكن، بمجرد أن تلمس الكرة مضربك، تُعاد المجموعة إلى قيمتها الافتراضية.\n\nبمجرد أن تتجاوز مجموعتك القيمة الأساسية، سيُحاط مضربك بإطار أحمر لتذكيرك بأنه سيدمر مجموعتك إذا لمسته بالكرة.",
@ -426,7 +426,7 @@
"upgrades.telekinesis.tooltip": "يتحكم المضرب في مسار الكرة", "upgrades.telekinesis.tooltip": "يتحكم المضرب في مسار الكرة",
"upgrades.telekinesis.verbose_description": "تتحكم بالكرة أثناء صعودها.", "upgrades.telekinesis.verbose_description": "تتحكم بالكرة أثناء صعودها.",
"upgrades.three_cushion.name": "ثلاث وسائد", "upgrades.three_cushion.name": "ثلاث وسائد",
"upgrades.three_cushion.tooltip": "", "upgrades.three_cushion.tooltip": "مزيد من العملات المعدنية إذا ضربت الطوب بشكل غير مباشر فقط",
"upgrades.three_cushion.verbose_description": "كل ضربة على أحد الجانبين تزيد من قوة الضربة بواحد، حتى +٣. بعد ذلك، لن تُكتسب أي ضربة حتى الارتداد التالي للمضرب.", "upgrades.three_cushion.verbose_description": "كل ضربة على أحد الجانبين تزيد من قوة الضربة بواحد، حتى +٣. بعد ذلك، لن تُكتسب أي ضربة حتى الارتداد التالي للمضرب.",
"upgrades.top_is_lava.name": "السماء هي الحد", "upgrades.top_is_lava.name": "السماء هي الحد",
"upgrades.top_is_lava.tooltip": "+{{lvl}} مجموعة لكل لبنة، يتم إعادة ضبطها عند الوصول إلى الجزء العلوي", "upgrades.top_is_lava.tooltip": "+{{lvl}} مجموعة لكل لبنة، يتم إعادة ضبطها عند الوصول إلى الجزء العلوي",
@ -449,16 +449,16 @@
"upgrades.wind.name": "رياح", "upgrades.wind.name": "رياح",
"upgrades.wind.tooltip": "وضع المجداف يخلق الرياح", "upgrades.wind.tooltip": "وضع المجداف يخلق الرياح",
"upgrades.wind.verbose_description": "تعتمد الرياح على وضعية المضرب: يسارًا يهب يسارًا، ويمينًا يهب يمينًا. تؤثر على الكرات والعملات المعدنية.", "upgrades.wind.verbose_description": "تعتمد الرياح على وضعية المضرب: يسارًا يهب يسارًا، ويمينًا يهب يمينًا. تؤثر على الكرات والعملات المعدنية.",
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "لف إلى اليسار",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "ضرب الجانب الأيسر ينقل الكرة إلى الجانب الأيمن",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "يمكن نقل العملات المعدنية إلى المستويات الأعلى أيضًا.",
"upgrades.wrap_right.name": "", "upgrades.wrap_right.name": "لف إلى اليمين",
"upgrades.wrap_right.tooltip": "", "upgrades.wrap_right.tooltip": "ضرب الجانب الأيمن ينقل الكرة إلى الجانب الأيسر",
"upgrades.wrap_right.verbose_description": "", "upgrades.wrap_right.verbose_description": "يمكن نقل العملات المعدنية إلى المستويات الأعلى أيضًا.",
"upgrades.yoyo.name": "يو يو", "upgrades.yoyo.name": "يو يو",
"upgrades.yoyo.tooltip": "الكرة تسقط نحو المضرب", "upgrades.yoyo.tooltip": "الكرة تسقط نحو المضرب",
"upgrades.yoyo.verbose_description": "إنه عكس التحريك الذهني، أي التحكم بالكرة أثناء سقوطها مرة أخرى إلى الأسفل.", "upgrades.yoyo.verbose_description": "إنه عكس التحريك الذهني، أي التحكم بالكرة أثناء سقوطها مرة أخرى إلى الأسفل.",
"upgrades.zen.name": "زين", "upgrades.zen.name": "زين",
"upgrades.zen.tooltip": "", "upgrades.zen.tooltip": "مزيد من العملات المعدنية إذا لم تقم بتفعيل القنابل",
"upgrades.zen.verbose_description": "" "upgrades.zen.verbose_description": "+{{lvl}} مجموعة كل 3 ثوانٍ، يتم إعادة ضبطها عند حدوث انفجار"
} }

View file

@ -8435,7 +8435,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>
@ -9331,7 +9331,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -9343,7 +9343,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>
@ -11276,7 +11276,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -11288,7 +11288,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>
@ -11311,7 +11311,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -11346,7 +11346,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -11358,7 +11358,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>
@ -11566,7 +11566,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -11578,7 +11578,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>
@ -12191,7 +12191,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -12203,7 +12203,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>
@ -12226,7 +12226,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -15416,7 +15416,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -15786,7 +15786,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -16591,7 +16591,7 @@
</translation> </translation>
<translation> <translation>
<language>de-DE</language> <language>de-DE</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>en-US</language> <language>en-US</language>
@ -16638,7 +16638,7 @@
</translation> </translation>
<translation> <translation>
<language>fr-FR</language> <language>fr-FR</language>
<approved>true</approved> <approved>false</approved>
</translation> </translation>
<translation> <translation>
<language>ru-RU</language> <language>ru-RU</language>

View file

@ -55,7 +55,7 @@
"history.columns.score": "Punktzahl", "history.columns.score": "Punktzahl",
"history.columns.started": "Datum", "history.columns.started": "Datum",
"history.help": "Statistik deiner {{count}} besten Spiele.", "history.help": "Statistik deiner {{count}} besten Spiele.",
"history.include_past_versions": "", "history.include_past_versions": "Auch frühere Versionen anzeigen",
"history.locked": "Spiele mindestens zehn Spiele spielen zum freizuschalten", "history.locked": "Spiele mindestens zehn Spiele spielen zum freizuschalten",
"history.title": "Spielverlauf", "history.title": "Spielverlauf",
"lab.help": "Probiere beliebige Konstruktionen aus", "lab.help": "Probiere beliebige Konstruktionen aus",
@ -227,24 +227,24 @@
"starting_perks.random": "Alle Vorteile wurden entfernt, die Auswahl erfolgt nach dem Zufallsprinzip.", "starting_perks.random": "Alle Vorteile wurden entfernt, die Auswahl erfolgt nach dem Zufallsprinzip.",
"starting_perks.title": "Startvorteile", "starting_perks.title": "Startvorteile",
"starting_perks.unchecked": "Die folgenden Vergünstigungen werden nicht als Startvergünstigungen angeboten, aber du kannst sie durch Anklicken zum Pool hinzufügen.", "starting_perks.unchecked": "Die folgenden Vergünstigungen werden nicht als Startvergünstigungen angeboten, aber du kannst sie durch Anklicken zum Pool hinzufügen.",
"unlocks.category.advanced": "", "unlocks.category.advanced": "## Erweiterte Upgrades\n\nDiese sind für sich genommen meist nicht besonders nützlich, können aber in Kombination mit dem richtigen Combo-Upgrade sehr mächtig werden.",
"unlocks.category.beginner": "", "unlocks.category.beginner": "## Anfängerfreundliche Upgrades\n\nDiese Upgrades sind besonders hilfreich für Anfänger. Sie helfen dir, länger zu spielen und den Ball seltener zu verfehlen.\n",
"unlocks.category.combo": "", "unlocks.category.combo": "## Combo-Upgrades\n\nDiese Upgrades verbessern deine Combos schrittweise, fügen aber auch eine Combo-Reset-Bedingung hinzu. Ein Upgrade ist sinnvoll, mehr Upgrades erhöhen das Risiko und den Nutzen.",
"unlocks.category.combo_boost": "", "unlocks.category.combo_boost": "## Combo-Booster-Upgrades\n\nDiese Upgrades erhöhen die Combo oder den Combo-Multiplikator, ohne eine Reset-Bedingung hinzuzufügen.",
"unlocks.category.simple": "", "unlocks.category.simple": "## Helfer-Upgrades\n\nDiese Upgrades sind in fast jedem Build nützlich.\n",
"unlocks.greyed_out_help": "Die ausgegrauten Upgrades können freigeschaltet werden, indem du Ihre Gesamtpunktzahl erhöhst. Die Gesamtpunktzahl erhöht sich jedes Mal, wenn du im Spiel punktest.", "unlocks.greyed_out_help": "Die ausgegrauten Upgrades können freigeschaltet werden, indem du Ihre Gesamtpunktzahl erhöhst. Die Gesamtpunktzahl erhöht sich jedes Mal, wenn du im Spiel punktest.",
"unlocks.intro": "Deine Gesamtpunktzahl ist {{ts}}. Klicke auf ein Upgrade, um ein Spiel damit zu starten.", "unlocks.intro": "Deine Gesamtpunktzahl ist {{ts}}. Klicke auf ein Upgrade, um ein Spiel damit zu starten.",
"unlocks.just_unlocked": "Level freigeschaltet", "unlocks.just_unlocked": "Level freigeschaltet",
"unlocks.just_unlocked_plural": "Du hast gerade {{count}} Stufen freigeschaltet", "unlocks.just_unlocked_plural": "Du hast gerade {{count}} Stufen freigeschaltet",
"unlocks.level": "Du hast {{unlocked}} Stufen von {{out_of}} freigeschaltet ", "unlocks.level": "Du hast {{unlocked}} Stufen von {{out_of}} freigeschaltet ",
"unlocks.level_description": "Ein {{size}}x{{size}} Level mit {{bricks}} Steinen, {{colors}} Farben und {{bombs}} Bomben.", "unlocks.level_description": "Ein {{size}}x{{size}} Level mit {{bricks}} Steinen, {{colors}} Farben und {{bombs}} Bomben.",
"unlocks.levels": "", "unlocks.levels": "Freigeschaltete Level",
"unlocks.minScore": "Erreiche ${{minScore}} in einem Lauf zum freischalten.", "unlocks.minScore": "Erreiche ${{minScore}} in einem Lauf zum freischalten.",
"unlocks.minScoreWithPerks": "Erreiche ${{minScore}} in einem Spiel mit {{required}} , aber ohne {{forbidden}} freizuschalten.", "unlocks.minScoreWithPerks": "Erreiche ${{minScore}} in einem Spiel mit {{required}} , aber ohne {{forbidden}} freizuschalten.",
"unlocks.minTotalScore": "Summiert ein Punktstand von ${{score}}", "unlocks.minTotalScore": "Summiert ein Punktstand von ${{score}}",
"unlocks.reached": "Ihr bester Punktstand war {{reached}}.", "unlocks.reached": "Ihr bester Punktstand war {{reached}}.",
"unlocks.title_upgrades": "Du hast {{unlocked}} Upgrades von {{out_of}} freigeschaltet.", "unlocks.title_upgrades": "Du hast {{unlocked}} Upgrades von {{out_of}} freigeschaltet.",
"unlocks.upgrades": "", "unlocks.upgrades": "Freigeschaltete Upgrades",
"upgrades.addiction.name": "Sucht", "upgrades.addiction.name": "Sucht",
"upgrades.addiction.tooltip": "+{{lvl}} Combo / Stein, Combo wird {{delay}}s nach Zerbrechen eines Steins zurückgesetzt.", "upgrades.addiction.tooltip": "+{{lvl}} Combo / Stein, Combo wird {{delay}}s nach Zerbrechen eines Steins zurückgesetzt.",
"upgrades.addiction.verbose_description": "Der Countdown beginnt erst nach dem Zerbrechen des ersten Steins eines jeden Levels. Er stoppt, sobald alle Ziegel zerstört sind.", "upgrades.addiction.verbose_description": "Der Countdown beginnt erst nach dem Zerbrechen des ersten Steins eines jeden Levels. Er stoppt, sobald alle Ziegel zerstört sind.",
@ -261,7 +261,7 @@
"upgrades.ball_repulse_ball.tooltip": "Bälle stoßen Bälle ab", "upgrades.ball_repulse_ball.tooltip": "Bälle stoßen Bälle ab",
"upgrades.ball_repulse_ball.verbose_description": "Kugeln, die weniger als ein Viertel der Bildschirmbreite entfernt sind, stoßen sich gegenseitig ab. Die Abstoßungskraft ist stärker, wenn sie sich nahe beieinander befinden. Um diese Kraft zu symbolisieren, werden Partikel herausgeschleudert. Dieser Vorteil wird nur angeboten, wenn Sie bereits mehr als einen Ball haben.", "upgrades.ball_repulse_ball.verbose_description": "Kugeln, die weniger als ein Viertel der Bildschirmbreite entfernt sind, stoßen sich gegenseitig ab. Die Abstoßungskraft ist stärker, wenn sie sich nahe beieinander befinden. Um diese Kraft zu symbolisieren, werden Partikel herausgeschleudert. Dieser Vorteil wird nur angeboten, wenn Sie bereits mehr als einen Ball haben.",
"upgrades.base_combo.name": "Starke Grundlagen", "upgrades.base_combo.name": "Starke Grundlagen",
"upgrades.base_combo.tooltip": "", "upgrades.base_combo.tooltip": "3 weitere Münzen pro zerbrochenem Ziegel",
"upgrades.base_combo.verbose_description": "Deine Combo beginnt normalerweise bei 1 am Anfang des Levels und wird auf 1 zurückgesetzt, wenn du herumspringst, ohne etwas zu treffen. Mit diesem Vorteil beginnt die Kombo 3 Punkte höher, sodass du immer mindestens 4 Münzen pro Stein erhältst. Immer, wenn deine Kombo zurückgesetzt wird, steht sie wieder bei 4 und nicht bei 1. Dein Ball wird ein wenig glitzern, um anzuzeigen, dass sein Combo höher als 1 ist.", "upgrades.base_combo.verbose_description": "Deine Combo beginnt normalerweise bei 1 am Anfang des Levels und wird auf 1 zurückgesetzt, wenn du herumspringst, ohne etwas zu treffen. Mit diesem Vorteil beginnt die Kombo 3 Punkte höher, sodass du immer mindestens 4 Münzen pro Stein erhältst. Immer, wenn deine Kombo zurückgesetzt wird, steht sie wieder bei 4 und nicht bei 1. Dein Ball wird ein wenig glitzern, um anzuzeigen, dass sein Combo höher als 1 ist.",
"upgrades.bigger_explosions.name": "Kaboom", "upgrades.bigger_explosions.name": "Kaboom",
"upgrades.bigger_explosions.tooltip": "Größere Explosionen", "upgrades.bigger_explosions.tooltip": "Größere Explosionen",
@ -293,8 +293,8 @@
"upgrades.corner_shot.name": "Eckball", "upgrades.corner_shot.name": "Eckball",
"upgrades.corner_shot.tooltip": "Lässt Ihr Paddel mit den Rändern des Bildschirms überlappen", "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.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.name": "Doppelt oder nichts",
"upgrades.double_or_nothing.tooltip": "", "upgrades.double_or_nothing.tooltip": "Combo steigt {{multiplier}} -mal schneller, aber Sie verlieren bei jedem Zurücksetzen {{percent}}% Ihrer Punktzahl.",
"upgrades.double_or_nothing.verbose_description": "", "upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Münzen, im Weltraum", "upgrades.etherealcoins.name": "Münzen, im Weltraum",
"upgrades.etherealcoins.tooltip": "Münzen werden nicht mehr von der Schwerkraft beeinflusst", "upgrades.etherealcoins.tooltip": "Münzen werden nicht mehr von der Schwerkraft beeinflusst",
@ -314,15 +314,15 @@
"upgrades.ghost_coins.name": "Geistermünzen", "upgrades.ghost_coins.name": "Geistermünzen",
"upgrades.ghost_coins.tooltip": "Münzen gehen langsam durch Ziegelsteine", "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.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.name": "Goldene Gans",
"upgrades.golden_goose.tooltip": "", "upgrades.golden_goose.tooltip": "Münzen teleportieren sich zum Ball, nachdem sie einen Ziegelstein getroffen haben",
"upgrades.golden_goose.verbose_description": "", "upgrades.golden_goose.verbose_description": "Immer wenn eine Münze einen Ziegelstein trifft, teleportieren Sie diese Münze zum nächsten Ball. Auf Stufe zwei teleportieren sich Münzen auch, wenn sie eine Seite treffen.",
"upgrades.happy_family.name": "", "upgrades.happy_family.name": "Glückliche Familie",
"upgrades.happy_family.tooltip": "", "upgrades.happy_family.tooltip": "Mehr Münzen, wenn Sie alle Bälle im Spiel behalten.",
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "+1 Combo pro zusätzlichem Ball pro Schlägersprung. Die Combo wird zurückgesetzt, wenn ein Ball verloren geht. Nur Bälle über 1 ergeben eine Combo.",
"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": "", "upgrades.helium.verbose_description": "Auf Stufe 1 ist die Schwerkraft reduziert. Auf Stufe 2 schweben die Münzen langsam nach oben. Auf Stufe 3 fliegen sie richtig.",
"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.",
@ -339,8 +339,8 @@
"upgrades.metamorphosis.tooltip": "Jede Münze kann {{lvl}} Steine mit ihrer Farbe färben", "upgrades.metamorphosis.tooltip": "Jede Münze kann {{lvl}} Steine mit ihrer Farbe färben",
"upgrades.metamorphosis.verbose_description": "Mit diesem Vorteil haben die Münzen die Farbe des Ziegels, aus dem sie stammen, und färben den ersten Ziegel, den sie berühren, in derselben Farbe. Die Münzen spawnen mit der Geschwindigkeit des Balls, der sie zerbrochen hat, was bedeutet, dass du ein bisschen in die Richtung der Ziegelsteine zielen kannst, die du \"anmalen\" willst. Auf Stufe 1 kann jede Münze 1 Ziegelstein einfärben, bevor sie \"verbraucht\" wird und hohl erscheint.", "upgrades.metamorphosis.verbose_description": "Mit diesem Vorteil haben die Münzen die Farbe des Ziegels, aus dem sie stammen, und färben den ersten Ziegel, den sie berühren, in derselben Farbe. Die Münzen spawnen mit der Geschwindigkeit des Balls, der sie zerbrochen hat, was bedeutet, dass du ein bisschen in die Richtung der Ziegelsteine zielen kannst, die du \"anmalen\" willst. Auf Stufe 1 kann jede Münze 1 Ziegelstein einfärben, bevor sie \"verbraucht\" wird und hohl erscheint.",
"upgrades.minefield.name": "Minenfeld", "upgrades.minefield.name": "Minenfeld",
"upgrades.minefield.tooltip": "", "upgrades.minefield.tooltip": "+{{percent}}% Münzen pro Bombenstein auf dem Bildschirm",
"upgrades.minefield.verbose_description": "", "upgrades.minefield.verbose_description": "Bomben werden auch während der Explosion gezählt.",
"upgrades.multiball.name": "Multi-Ball", "upgrades.multiball.name": "Multi-Ball",
"upgrades.multiball.tooltip": "Beginne jedes Level mit {{count}} Bällen.", "upgrades.multiball.tooltip": "Beginne jedes Level mit {{count}} Bällen.",
"upgrades.multiball.verbose_description": "Sobald du den Ball in Breakout 71 fallen lässt, hast du verloren.\n\nMit diesem Vorteil erhalten Sie zwei Bälle und können es sich daher leisten, einen zu verlieren.\n\nDie verlorenen Bälle kommen im nächsten Level zurück.\n\nWenn du mehr als einen Ball hast, stehen dir weitere Vergünstigungen zur Verfügung, und du kannst das Level natürlich schneller abschließen.", "upgrades.multiball.verbose_description": "Sobald du den Ball in Breakout 71 fallen lässt, hast du verloren.\n\nMit diesem Vorteil erhalten Sie zwei Bälle und können es sich daher leisten, einen zu verlieren.\n\nDie verlorenen Bälle kommen im nächsten Level zurück.\n\nWenn du mehr als einen Ball hast, stehen dir weitere Vergünstigungen zur Verfügung, und du kannst das Level natürlich schneller abschließen.",
@ -411,8 +411,8 @@
"upgrades.soft_reset.tooltip": "Combo-Rückstellungen halten {{percent}}%", "upgrades.soft_reset.tooltip": "Combo-Rückstellungen halten {{percent}}%",
"upgrades.soft_reset.verbose_description": "Begrenzen Sie die Auswirkungen eines Combo-Resets.", "upgrades.soft_reset.verbose_description": "Begrenzen Sie die Auswirkungen eines Combo-Resets.",
"upgrades.sticky_coins.name": "Klebrige Münzen", "upgrades.sticky_coins.name": "Klebrige Münzen",
"upgrades.sticky_coins.tooltip": "", "upgrades.sticky_coins.tooltip": "Münzen haften an Steinen der gleichen Farbe",
"upgrades.sticky_coins.verbose_description": "", "upgrades.sticky_coins.verbose_description": "Auf Stufe 2 haften sie an Steinen jeder Farbe",
"upgrades.streak_shots.name": "Glückssträhne", "upgrades.streak_shots.name": "Glückssträhne",
"upgrades.streak_shots.tooltip": "Mehr Münzen, wenn du viele Steine zerbrichst, bevor du auf das Paddel springst.", "upgrades.streak_shots.tooltip": "Mehr Münzen, wenn du viele Steine zerbrichst, bevor du auf das Paddel springst.",
"upgrades.streak_shots.verbose_description": "Jedes Mal, wenn du einen Stein zerbrichst, erhöht sich dein Combo um eins.\n\nSobald der Ball jedoch Ihr Paddel berührt, wird die Kombination auf ihren Standardwert zurückgesetzt.\n\nSobald deine Kombo den Basiswert übersteigt, wird dein Paddel rot umrandet, um dich daran zu erinnern, dass es deine Kombo zerstört, wenn du es mit dem Ball berührst.", "upgrades.streak_shots.verbose_description": "Jedes Mal, wenn du einen Stein zerbrichst, erhöht sich dein Combo um eins.\n\nSobald der Ball jedoch Ihr Paddel berührt, wird die Kombination auf ihren Standardwert zurückgesetzt.\n\nSobald deine Kombo den Basiswert übersteigt, wird dein Paddel rot umrandet, um dich daran zu erinnern, dass es deine Kombo zerstört, wenn du es mit dem Ball berührst.",
@ -427,7 +427,7 @@
"upgrades.telekinesis.verbose_description": "Du kontrollierst den Ball, während er nach oben fliegt.", "upgrades.telekinesis.verbose_description": "Du kontrollierst den Ball, während er nach oben fliegt.",
"upgrades.three_cushion.name": "Dreiband", "upgrades.three_cushion.name": "Dreiband",
"upgrades.three_cushion.tooltip": "+1 Combo pro Treffer an den Seiten und von oben. Die Combo wird zurückgesetzt, wenn Sie einen Ziegel treffen, ohne vorher abzuprallen.", "upgrades.three_cushion.tooltip": "+1 Combo pro Treffer an den Seiten und von oben. Die Combo wird zurückgesetzt, wenn Sie einen Ziegel treffen, ohne vorher abzuprallen.",
"upgrades.three_cushion.verbose_description": "", "upgrades.three_cushion.verbose_description": "+1 Combo pro Treffer an den Seiten und von oben, bis zu +{{max}} pro Paddelabprall.\n\nJeder Treffer an einer Seite erhöht die Combo um eins, bis zu +3.\nDanach wird bis zum nächsten Paddelabprall keine Combo mehr erzielt.\n\nDie Combo wird zurückgesetzt, wenn du einen Stein triffst, ohne vorher abzuprallen.",
"upgrades.top_is_lava.name": "Der Himmel ist die Grenze", "upgrades.top_is_lava.name": "Der Himmel ist die Grenze",
"upgrades.top_is_lava.tooltip": "+{{lvl}} Combo pro Stein, wird zurückgesetzt, wenn die Spitze getroffen wird", "upgrades.top_is_lava.tooltip": "+{{lvl}} Combo pro Stein, wird zurückgesetzt, wenn die Spitze getroffen wird",
"upgrades.top_is_lava.verbose_description": "Jedes Mal, wenn du einen Stein zerbrichst, erhöht sich deine Kombo um eins. Allerdings wird deine Kombo zurückgesetzt, sobald dein Ball den oberen Rand des Bildschirms trifft.\n\nWenn deine Kombo über dem Minimum liegt, erscheint oben ein roter Balken, der dich daran erinnert, dass du es vermeiden solltest, ihn zu treffen.", "upgrades.top_is_lava.verbose_description": "Jedes Mal, wenn du einen Stein zerbrichst, erhöht sich deine Kombo um eins. Allerdings wird deine Kombo zurückgesetzt, sobald dein Ball den oberen Rand des Bildschirms trifft.\n\nWenn deine Kombo über dem Minimum liegt, erscheint oben ein roter Balken, der dich daran erinnert, dass du es vermeiden solltest, ihn zu treffen.",
@ -437,7 +437,7 @@
"upgrades.transparency.name": "Transparenz", "upgrades.transparency.name": "Transparenz",
"upgrades.transparency.tooltip": "Je höher der Ball auf dem Bildschirm ist, desto transparenter wird er. Je transparenter sie ist, desto mehr Münzen produziert sie.", "upgrades.transparency.tooltip": "Je höher der Ball auf dem Bildschirm ist, desto transparenter wird er. Je transparenter sie ist, desto mehr Münzen produziert sie.",
"upgrades.transparency.verbose_description": "Je höher die Stufe, desto eher wird der Ball transparent und desto höher ist der Punktebonus.", "upgrades.transparency.verbose_description": "Je höher die Stufe, desto eher wird der Ball transparent und desto höher ist der Punktebonus.",
"upgrades.trickledown.name": "", "upgrades.trickledown.name": "Nach unten durchsickern",
"upgrades.trickledown.tooltip": "Die Münzen erscheinen am oberen Rand des Bildschirms.", "upgrades.trickledown.tooltip": "Die Münzen erscheinen am oberen Rand des Bildschirms.",
"upgrades.trickledown.verbose_description": "Es könnte Ihnen helfen, ein paar Münzen zur Seite zu legen.", "upgrades.trickledown.verbose_description": "Es könnte Ihnen helfen, ein paar Münzen zur Seite zu legen.",
"upgrades.unbounded.name": "Polsterung", "upgrades.unbounded.name": "Polsterung",
@ -449,16 +449,16 @@
"upgrades.wind.name": "WIND", "upgrades.wind.name": "WIND",
"upgrades.wind.tooltip": "Paddelstellung erzeugt 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.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.name": "Nach links umbrechen",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "Wenn Sie die linke Seite treffen, wird der Ball auf die rechte Seite teleportiert",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "Höhere Level teleportieren auch Münzen.",
"upgrades.wrap_right.name": "", "upgrades.wrap_right.name": "Rechts umbrechen",
"upgrades.wrap_right.tooltip": "", "upgrades.wrap_right.tooltip": "Wenn Sie die rechte Seite treffen, wird der Ball auf die linke Seite teleportiert",
"upgrades.wrap_right.verbose_description": "", "upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "Yo-Yo", "upgrades.yoyo.name": "Yo-Yo",
"upgrades.yoyo.tooltip": "Ball fällt in Richtung Paddel", "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.", "upgrades.yoyo.verbose_description": "Es ist das Gegenteil von Telekinese, den Ball zu kontrollieren, während er wieder nach unten fällt.",
"upgrades.zen.name": "Zen", "upgrades.zen.name": "Zen",
"upgrades.zen.tooltip": "", "upgrades.zen.tooltip": "Mehr Münzen, wenn Sie keine Bomben auslösen",
"upgrades.zen.verbose_description": "Schließlich handelt es sich um ein gewaltfreies Spiel." "upgrades.zen.verbose_description": "Schließlich handelt es sich um ein gewaltfreies Spiel."
} }

View file

@ -331,7 +331,7 @@
"upgrades.implosions.verbose_description": "The explosion force is applied the other way. Further levels act as \"bigger explosion\"", "upgrades.implosions.verbose_description": "The explosion force is applied the other way. Further levels act as \"bigger explosion\"",
"upgrades.left_is_lava.name": "Avoid left side", "upgrades.left_is_lava.name": "Avoid left side",
"upgrades.left_is_lava.tooltip": "More coins if you don't touch the left side", "upgrades.left_is_lava.tooltip": "More coins if you don't touch the left side",
"upgrades.left_is_lava.verbose_description": "Whenever you break a brick, your combo will increase by one, so you'll get one more coin from all the next bricks you break.\n\nHowever, your combo will reset as soon as your ball hits the left side . \n\nAs soon as your combo rises, the left side becomes red to remind you that you should avoid hitting them. \n", "upgrades.left_is_lava.verbose_description": "Whenever you break a brick, your combo will increase by one, so you'll get one more coin from all the next bricks you break.\n\nHowever, your combo will reset as soon as your ball hits the left side . \n\nAs soon as your combo rises, the left side becomes red to remind you that you should avoid hitting them. \n\nAt level 2, the border is completely removed and your balls and coins might get lost. ",
"upgrades.limitless.name": "Limitless", "upgrades.limitless.name": "Limitless",
"upgrades.limitless.tooltip": "Raise all upgrade's maximum level by {{lvl}} ", "upgrades.limitless.tooltip": "Raise all upgrade's maximum level by {{lvl}} ",
"upgrades.limitless.verbose_description": "Choosing this perk also raises his own limit by one, letting you pick it again.", "upgrades.limitless.verbose_description": "Choosing this perk also raises his own limit by one, letting you pick it again.",
@ -379,7 +379,7 @@
"upgrades.respawn.verbose_description": "Some particle effect will let you know where bricks will appear. ", "upgrades.respawn.verbose_description": "Some particle effect will let you know where bricks will appear. ",
"upgrades.right_is_lava.name": "Avoid right side", "upgrades.right_is_lava.name": "Avoid right side",
"upgrades.right_is_lava.tooltip": "More coins if you don't touch the right side", "upgrades.right_is_lava.tooltip": "More coins if you don't touch the right side",
"upgrades.right_is_lava.verbose_description": "Whenever you break a brick, your combo will increase by one, so you'll get one more coin from all the next bricks you break.\n\nHowever, your combo will reset as soon as your ball hits the right side. \n\nAs soon as your combo rises, the right side becomes red to remind you that you should avoid hitting them.\n", "upgrades.right_is_lava.verbose_description": "Whenever you break a brick, your combo will increase by one, so you'll get one more coin from all the next bricks you break. \n\nHowever, your combo will reset as soon as your ball hits the right side. \n\nAs soon as your combo rises, the right side becomes red to remind you that you should avoid hitting them.\n\nAt level 2, the border is completely removed and your balls and coins might get lost. \n",
"upgrades.sacrifice.name": "Sacrifice", "upgrades.sacrifice.name": "Sacrifice",
"upgrades.sacrifice.tooltip": "Loosing a life clears all bricks", "upgrades.sacrifice.tooltip": "Loosing a life clears all bricks",
"upgrades.sacrifice.verbose_description": "At level 2+, the combo is also multiplied by the perk's level before clearing the board. This might get the combo pretty high.", "upgrades.sacrifice.verbose_description": "At level 2+, the combo is also multiplied by the perk's level before clearing the board. This might get the combo pretty high.",
@ -430,7 +430,7 @@
"upgrades.three_cushion.verbose_description": "+1 combo per hit on sides and top, up to +{{max}} per paddle bounce. \nEvery hit on a side will raise the combo by one, up to +3.\n After that, no combo will be gained until next paddle bounce. \n\nCombo resets when you hit a brick without bouncing first.", "upgrades.three_cushion.verbose_description": "+1 combo per hit on sides and top, up to +{{max}} per paddle bounce. \nEvery hit on a side will raise the combo by one, up to +3.\n After that, no combo will be gained until next paddle bounce. \n\nCombo resets when you hit a brick without bouncing first.",
"upgrades.top_is_lava.name": "Sky is the limit", "upgrades.top_is_lava.name": "Sky is the limit",
"upgrades.top_is_lava.tooltip": "More coins if you avoid hitting the top", "upgrades.top_is_lava.tooltip": "More coins if you avoid hitting the top",
"upgrades.top_is_lava.verbose_description": "Whenever you break a brick, your combo will increase by one. However, your combo will reset as soon as your ball hit the top of the screen. \n\nWhen your combo is above the minimum, a red bar will appear at the top to remind you that you should avoid hitting it. ", "upgrades.top_is_lava.verbose_description": "Whenever you break a brick, your combo will increase by one. However, your combo will reset as soon as your ball hit the top of the screen. \n\nWhen your combo is above the minimum, a red bar will appear at the top to remind you that you should avoid hitting it. \n\nAt level 2, the border is completely removed and your balls and coins might get lost. ",
"upgrades.trampoline.name": "Trampoline", "upgrades.trampoline.name": "Trampoline",
"upgrades.trampoline.tooltip": "More coins if you bounce on bricks and the paddle only", "upgrades.trampoline.tooltip": "More coins if you bounce on bricks and the paddle only",
"upgrades.trampoline.verbose_description": "+{{lvl}} combo per paddle bounce,-{{lvl}} combo per bounce on any border. One of the rare combo upgrades that don't add a reset condition", "upgrades.trampoline.verbose_description": "+{{lvl}} combo per paddle bounce,-{{lvl}} combo per bounce on any border. One of the rare combo upgrades that don't add a reset condition",

View file

@ -55,7 +55,7 @@
"history.columns.score": "Puntuación", "history.columns.score": "Puntuación",
"history.columns.started": "Fecha", "history.columns.started": "Fecha",
"history.help": "Enumera tus {{count}} mejores juegos.", "history.help": "Enumera tus {{count}} mejores juegos.",
"history.include_past_versions": "", "history.include_past_versions": "Mostrar versiones anteriores también",
"history.locked": "Juega primero al menos diez partidos", "history.locked": "Juega primero al menos diez partidos",
"history.title": "Historia", "history.title": "Historia",
"lab.help": "Prueba cualquier combinación de mejoras y niveles.", "lab.help": "Prueba cualquier combinación de mejoras y niveles.",
@ -227,24 +227,24 @@
"starting_perks.random": "Se han eliminado todos los beneficios, la elección será aleatoria.", "starting_perks.random": "Se han eliminado todos los beneficios, la elección será aleatoria.",
"starting_perks.title": "Beneficios iniciales", "starting_perks.title": "Beneficios iniciales",
"starting_perks.unchecked": "Los beneficios a continuación no se ofrecen como beneficios iniciales, pero puedes hacer clic para agregarlos al grupo.", "starting_perks.unchecked": "Los beneficios a continuación no se ofrecen como beneficios iniciales, pero puedes hacer clic para agregarlos al grupo.",
"unlocks.category.advanced": "", "unlocks.category.advanced": "## Mejoras avanzadas\n\nNo suelen ser muy útiles por sí solas, pero pueden volverse muy poderosas al combinarlas con la mejora combinada adecuada.",
"unlocks.category.beginner": "", "unlocks.category.beginner": "Mejoras para principiantes\n\nEstas mejoras son muy útiles para principiantes, ya que les ayudan a jugar más tiempo y a fallar menos la pelota.",
"unlocks.category.combo": "", "unlocks.category.combo": "## Mejoras de combo\n\nEstas mejoras ayudan a aumentar tu combo progresivamente, pero también añaden una condición de reinicio. Usar una es buena idea, pero usar más aumenta el riesgo y la recompensa.",
"unlocks.category.combo_boost": "", "unlocks.category.combo_boost": "Mejoras de combo\n\nEstas mejoras aumentan el combo o el multiplicador de combo sin necesidad de reiniciarlo.",
"unlocks.category.simple": "", "unlocks.category.simple": "## Mejoras auxiliares\n\nEstas mejoras son útiles en casi cualquier configuración.",
"unlocks.greyed_out_help": "Los objetos en gris pueden desbloquearse aumentando tu puntuación total. La puntuación total aumenta cada vez que consigues puntos en el juego.", "unlocks.greyed_out_help": "Los objetos en gris pueden desbloquearse aumentando tu puntuación total. La puntuación total aumenta cada vez que consigues puntos en el juego.",
"unlocks.intro": "", "unlocks.intro": "Tu puntuación total es {{ts}}. Haz clic en una mejora a continuación para empezar a jugar con ella.",
"unlocks.just_unlocked": "Nivel desbloqueado", "unlocks.just_unlocked": "Nivel desbloqueado",
"unlocks.just_unlocked_plural": "Acabas de desbloquear {{count}} niveles", "unlocks.just_unlocked_plural": "Acabas de desbloquear {{count}} niveles",
"unlocks.level": "", "unlocks.level": "Desbloqueaste {{unlocked}} niveles de {{out_of}}",
"unlocks.level_description": "Un nivel {{size}}x{{size}} con {{bricks}} ladrillos, {{colors}} colores y {{bombs}} bombas.", "unlocks.level_description": "Un nivel {{size}}x{{size}} con {{bricks}} ladrillos, {{colors}} colores y {{bombs}} bombas.",
"unlocks.levels": "", "unlocks.levels": "Niveles desbloqueados",
"unlocks.minScore": "Alcanza una puntuación de ${{minScore}} en una partida para desbloquearla.", "unlocks.minScore": "Alcanza una puntuación de ${{minScore}} en una partida para desbloquearla.",
"unlocks.minScoreWithPerks": "Alcanzar ${{minScore}} en un juego con {{required}} pero sin {{forbidden}}.", "unlocks.minScoreWithPerks": "Alcanzar ${{minScore}} en un juego con {{required}} pero sin {{forbidden}}.",
"unlocks.minTotalScore": "Acumula un total de ${{score}}", "unlocks.minTotalScore": "Acumula un total de ${{score}}",
"unlocks.reached": "Tu mejor puntuación hasta ahora es {{reached}}.", "unlocks.reached": "Tu mejor puntuación hasta ahora es {{reached}}.",
"unlocks.title_upgrades": "Has desbloqueado {{unlocked}} mejoras en {{out_of}}.", "unlocks.title_upgrades": "Has desbloqueado {{unlocked}} mejoras en {{out_of}}.",
"unlocks.upgrades": "", "unlocks.upgrades": "Mejoras desbloqueadas",
"upgrades.addiction.name": "Adicción", "upgrades.addiction.name": "Adicción",
"upgrades.addiction.tooltip": "+{{lvl}} combo / ladrillo, combo perdido después de {{delay}}s sin romper ningún ladrillo", "upgrades.addiction.tooltip": "+{{lvl}} combo / ladrillo, combo perdido después de {{delay}}s sin romper ningún ladrillo",
"upgrades.addiction.verbose_description": "La cuenta atrás sólo comienza una vez que se ha destruido el primer ladrillo del nivel, y se detiene en cuanto no hay más ladrillos.", "upgrades.addiction.verbose_description": "La cuenta atrás sólo comienza una vez que se ha destruido el primer ladrillo del nivel, y se detiene en cuanto no hay más ladrillos.",
@ -261,7 +261,7 @@
"upgrades.ball_repulse_ball.tooltip": "Las balas repelen a las balas", "upgrades.ball_repulse_ball.tooltip": "Las balas repelen a las balas",
"upgrades.ball_repulse_ball.verbose_description": "Las bolas que están a menos de un cuarto de la anchura de la pantalla empiezan a repelerse. La fuerza de repulsión es mayor cuanto más cerca están una de otra. Se mostrarán partículas para simbolizar la aplicación de esta fuerza. Esta ventaja sólo está disponible si ya tienes más de una bola.", "upgrades.ball_repulse_ball.verbose_description": "Las bolas que están a menos de un cuarto de la anchura de la pantalla empiezan a repelerse. La fuerza de repulsión es mayor cuanto más cerca están una de otra. Se mostrarán partículas para simbolizar la aplicación de esta fuerza. Esta ventaja sólo está disponible si ya tienes más de una bola.",
"upgrades.base_combo.name": "Mejor base", "upgrades.base_combo.name": "Mejor base",
"upgrades.base_combo.tooltip": "", "upgrades.base_combo.tooltip": "3 monedas más por cada ladrillo roto",
"upgrades.base_combo.verbose_description": "Tu combo normalmente empieza en 1 al principio del nivel y vuelve a 1 cuando rebotas sin golpear nada. Con esta función, el combo empieza 3 puntos más arriba, por lo que siempre conseguirás al menos 4 monedas por ladrillo. Cuando tu combo se reinicia, vuelve a ser 4 en lugar de 1. Tu bola parpadeará un poco para indicar que su combo es superior a 1.", "upgrades.base_combo.verbose_description": "Tu combo normalmente empieza en 1 al principio del nivel y vuelve a 1 cuando rebotas sin golpear nada. Con esta función, el combo empieza 3 puntos más arriba, por lo que siempre conseguirás al menos 4 monedas por ladrillo. Cuando tu combo se reinicia, vuelve a ser 4 en lugar de 1. Tu bola parpadeará un poco para indicar que su combo es superior a 1.",
"upgrades.bigger_explosions.name": "Kaboom", "upgrades.bigger_explosions.name": "Kaboom",
"upgrades.bigger_explosions.tooltip": "Explosiones más violentas", "upgrades.bigger_explosions.tooltip": "Explosiones más violentas",
@ -293,8 +293,8 @@
"upgrades.corner_shot.name": "Tiro de esquina", "upgrades.corner_shot.name": "Tiro de esquina",
"upgrades.corner_shot.tooltip": "Deja que tu raqueta salga del área enmarcada", "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.corner_shot.verbose_description": "Te ayuda a apuntar a las esquinas",
"upgrades.double_or_nothing.name": "", "upgrades.double_or_nothing.name": "Doble o nada",
"upgrades.double_or_nothing.tooltip": "", "upgrades.double_or_nothing.tooltip": "El combo sube {{multiplier}} veces más rápido, pero perderás el {{percent}}% de tu puntuación en cada reinicio.",
"upgrades.double_or_nothing.verbose_description": "", "upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Moneda espacial", "upgrades.etherealcoins.name": "Moneda espacial",
"upgrades.etherealcoins.tooltip": "Las piezas ya no se ven afectadas por la gravedad", "upgrades.etherealcoins.tooltip": "Las piezas ya no se ven afectadas por la gravedad",
@ -314,15 +314,15 @@
"upgrades.ghost_coins.name": "Habitaciones fantasma", "upgrades.ghost_coins.name": "Habitaciones fantasma",
"upgrades.ghost_coins.tooltip": "Las monedas atraviesan los ladrillos lentamente", "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.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.name": "Ganso dorado",
"upgrades.golden_goose.tooltip": "", "upgrades.golden_goose.tooltip": "Las monedas se teletransportan a la pelota después de golpear un ladrillo.",
"upgrades.golden_goose.verbose_description": "", "upgrades.golden_goose.verbose_description": "Cuando una moneda impacta un ladrillo, se teletransporta a la bola más cercana. En el nivel dos, las monedas también se teletransportan al impactar un lado.",
"upgrades.happy_family.name": "", "upgrades.happy_family.name": "Familia feliz",
"upgrades.happy_family.tooltip": "", "upgrades.happy_family.tooltip": "Más monedas si mantienes todas las bolas en juego.",
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "+1 combo por bola extra por rebote de la paleta. El combo se reinicia al perder una bola. Solo la bola superior a 1 otorga combo.",
"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": "", "upgrades.helium.verbose_description": "En el nivel 1, la gravedad se reduce. En el nivel 2, las monedas flotan lentamente. En el nivel 3, vuelan de verdad.",
"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. ",
@ -339,8 +339,8 @@
"upgrades.metamorphosis.tooltip": "Cada pieza puede manchar {{lvl}} ladrillo(s) con su color", "upgrades.metamorphosis.tooltip": "Cada pieza puede manchar {{lvl}} ladrillo(s) con su color",
"upgrades.metamorphosis.verbose_description": "Con esta mejora, las monedas tendrán el color del ladrillo del que proceden y colorearán el primer ladrillo que toquen.\n\nLas piezas aparecen a la velocidad de la bola que las rompió, lo que significa que puedes apuntar un poco en la dirección de los ladrillos que quieres \"pintar\".", "upgrades.metamorphosis.verbose_description": "Con esta mejora, las monedas tendrán el color del ladrillo del que proceden y colorearán el primer ladrillo que toquen.\n\nLas piezas aparecen a la velocidad de la bola que las rompió, lo que significa que puedes apuntar un poco en la dirección de los ladrillos que quieres \"pintar\".",
"upgrades.minefield.name": "Campo de minas", "upgrades.minefield.name": "Campo de minas",
"upgrades.minefield.tooltip": "", "upgrades.minefield.tooltip": "+{{percent}}% de monedas por cada ladrillo bomba en la pantalla",
"upgrades.minefield.verbose_description": "", "upgrades.minefield.verbose_description": "Las bombas también se cuentan mientras explotan.",
"upgrades.multiball.name": "Bola múltiple", "upgrades.multiball.name": "Bola múltiple",
"upgrades.multiball.tooltip": "Cada nivel comienza con {{count}} bolas.", "upgrades.multiball.tooltip": "Cada nivel comienza con {{count}} bolas.",
"upgrades.multiball.verbose_description": "En cuanto sueltas la bola en Breakout 71, pierdes.\n\nCon esta ventaja, tienes dos bolas, así que puedes permitirte perder una.\n\nLas bolas perdidas vuelven al siguiente nivel.\n\nTener más de una bala te permite obtener otras ventajas y, por supuesto, completar el nivel más rápidamente.", "upgrades.multiball.verbose_description": "En cuanto sueltas la bola en Breakout 71, pierdes.\n\nCon esta ventaja, tienes dos bolas, así que puedes permitirte perder una.\n\nLas bolas perdidas vuelven al siguiente nivel.\n\nTener más de una bala te permite obtener otras ventajas y, por supuesto, completar el nivel más rápidamente.",
@ -411,8 +411,8 @@
"upgrades.soft_reset.tooltip": "Al reiniciar el combo se conserva el {{percent}}% de los puntos", "upgrades.soft_reset.tooltip": "Al reiniciar el combo se conserva el {{percent}}% de los puntos",
"upgrades.soft_reset.verbose_description": "Limita el impacto de un reinicio de combo.", "upgrades.soft_reset.verbose_description": "Limita el impacto de un reinicio de combo.",
"upgrades.sticky_coins.name": "Monedas pegajosas", "upgrades.sticky_coins.name": "Monedas pegajosas",
"upgrades.sticky_coins.tooltip": "", "upgrades.sticky_coins.tooltip": "Las monedas se adhieren a los ladrillos del mismo color.",
"upgrades.sticky_coins.verbose_description": "", "upgrades.sticky_coins.verbose_description": "En el nivel 2, se adhieren a ladrillos de cualquier color.",
"upgrades.streak_shots.name": "Secuencia de destrucción", "upgrades.streak_shots.name": "Secuencia de destrucción",
"upgrades.streak_shots.tooltip": "Más piezas si rompes varios ladrillos a la vez.", "upgrades.streak_shots.tooltip": "Más piezas si rompes varios ladrillos a la vez.",
"upgrades.streak_shots.verbose_description": "Cada vez que rompes un ladrillo, tu combo aumenta. El combo se pone a cero cuando la pelota golpea la raqueta. Una vez que tu combo supera el valor base, tu raqueta se vuelve roja para recordarte que tocarla con la pelota destruirá tu combo.", "upgrades.streak_shots.verbose_description": "Cada vez que rompes un ladrillo, tu combo aumenta. El combo se pone a cero cuando la pelota golpea la raqueta. Una vez que tu combo supera el valor base, tu raqueta se vuelve roja para recordarte que tocarla con la pelota destruirá tu combo.",
@ -449,16 +449,16 @@
"upgrades.wind.name": "Viva el viento", "upgrades.wind.name": "Viva el viento",
"upgrades.wind.tooltip": "La posición de la raqueta crea 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.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.name": "Envolver a la izquierda",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "Golpear el lado izquierdo teletransporta la pelota al lado derecho.",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "Los niveles superiores también teletransportan monedas.",
"upgrades.wrap_right.name": "", "upgrades.wrap_right.name": "Envolver a la derecha",
"upgrades.wrap_right.tooltip": "", "upgrades.wrap_right.tooltip": "Golpear el lado derecho teletransporta la pelota al lado izquierdo.",
"upgrades.wrap_right.verbose_description": "", "upgrades.wrap_right.verbose_description": "Los niveles superiores también teletransportan monedas.",
"upgrades.yoyo.name": "Yo-Yo", "upgrades.yoyo.name": "Yo-Yo",
"upgrades.yoyo.tooltip": "La pelota desciende hacia la raqueta.", "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.", "upgrades.yoyo.verbose_description": "Es lo contrario de la Telequinesis: controlar la pelota mientras cae hacia la raqueta.",
"upgrades.zen.name": "Zen", "upgrades.zen.name": "Zen",
"upgrades.zen.tooltip": "", "upgrades.zen.tooltip": "Más monedas si no activas bombas",
"upgrades.zen.verbose_description": "" "upgrades.zen.verbose_description": "+{{lvl}} combo cada 3 s, se reinicia cuando hay una explosión"
} }

View file

@ -55,7 +55,7 @@
"history.columns.score": "Score", "history.columns.score": "Score",
"history.columns.started": "Date", "history.columns.started": "Date",
"history.help": "Liste vos {{count}} meilleurs parties.", "history.help": "Liste vos {{count}} meilleurs parties.",
"history.include_past_versions": "", "history.include_past_versions": "Afficher également les versions antérieures",
"history.locked": "Jouez d'abord au moins dix parties", "history.locked": "Jouez d'abord au moins dix parties",
"history.title": "Historique", "history.title": "Historique",
"lab.help": "Essayez n'importe quel combinaison d'améliorations et de niveaux.", "lab.help": "Essayez n'importe quel combinaison d'améliorations et de niveaux.",
@ -227,24 +227,24 @@
"starting_perks.random": "Tous les avantages ont été retirés, le choix sera aléatoire.", "starting_perks.random": "Tous les avantages ont été retirés, le choix sera aléatoire.",
"starting_perks.title": "Avantages de départ", "starting_perks.title": "Avantages de départ",
"starting_perks.unchecked": "Les avantages ci-dessous ne sont pas proposés comme avantages de départ, mais vous pouvez cliquer pour les ajouter aux avantages de départ possibles.", "starting_perks.unchecked": "Les avantages ci-dessous ne sont pas proposés comme avantages de départ, mais vous pouvez cliquer pour les ajouter aux avantages de départ possibles.",
"unlocks.category.advanced": "", "unlocks.category.advanced": "## Améliorations avancées\n\nElles ne sont généralement pas très utiles en elles-mêmes, mais peuvent devenir très puissantes lorsqu'elles sont combinées avec la bonne amélioration combinée.",
"unlocks.category.beginner": "", "unlocks.category.beginner": "## Améliorations adaptées aux débutants\n\nCes améliorations sont très utiles aux débutants : elles vous aident à jouer plus longtemps et à moins rater la balle.",
"unlocks.category.combo": "", "unlocks.category.combo": "## Améliorations de combo\n\nCes améliorations permettent d'augmenter progressivement votre combo, mais ajoutent également une condition de réinitialisation. En choisir une est une bonne idée, en choisir plusieurs augmente le risque et la récompense.",
"unlocks.category.combo_boost": "", "unlocks.category.combo_boost": "## Améliorations du booster de combo\n\nCes améliorations augmentent le combo ou le multiplicateur de combo sans ajouter de condition de réinitialisation.",
"unlocks.category.simple": "", "unlocks.category.simple": "## Améliorations d'assistance\n\nCes améliorations sont utiles dans presque toutes les versions.",
"unlocks.greyed_out_help": "Les éléments grisées peuvent être débloquées en augmentant votre score total. Le score total augmente à chaque fois que vous marquez des points dans le jeu.", "unlocks.greyed_out_help": "Les éléments grisées peuvent être débloquées en augmentant votre score total. Le score total augmente à chaque fois que vous marquez des points dans le jeu.",
"unlocks.intro": "", "unlocks.intro": "Votre score total est de {{ts}}. Cliquez sur une amélioration ci-dessous pour commencer une partie.",
"unlocks.just_unlocked": "Niveau débloqué", "unlocks.just_unlocked": "Niveau débloqué",
"unlocks.just_unlocked_plural": "Vous venez de débloquer {{count}} niveaux", "unlocks.just_unlocked_plural": "Vous venez de débloquer {{count}} niveaux",
"unlocks.level": "", "unlocks.level": "Vous avez débloqué {{unlocked}} niveaux sur {{out_of}}",
"unlocks.level_description": "Un niveau {{size}}x{{size}} avec {{bricks}} briques, {{colors}} couleurs et {{bombs}} bombes.", "unlocks.level_description": "Un niveau {{size}}x{{size}} avec {{bricks}} briques, {{colors}} couleurs et {{bombs}} bombes.",
"unlocks.levels": "", "unlocks.levels": "Niveaux débloqués",
"unlocks.minScore": "Atteignez un score de ${{minScore}} dans une partie pour débloquer.", "unlocks.minScore": "Atteignez un score de ${{minScore}} dans une partie pour débloquer.",
"unlocks.minScoreWithPerks": "Atteignez ${{minScore}} dans une partie avec {{required}} mais sans {{forbidden}}.", "unlocks.minScoreWithPerks": "Atteignez ${{minScore}} dans une partie avec {{required}} mais sans {{forbidden}}.",
"unlocks.minTotalScore": "Accumuler un total de ${{score}}", "unlocks.minTotalScore": "Accumuler un total de ${{score}}",
"unlocks.reached": "Votre meilleur score pour l'instant est {{reached}}.", "unlocks.reached": "Votre meilleur score pour l'instant est {{reached}}.",
"unlocks.title_upgrades": "Vous avez débloqué {{unlocked}} améliorations sur {{out_of}}", "unlocks.title_upgrades": "Vous avez débloqué {{unlocked}} améliorations sur {{out_of}}",
"unlocks.upgrades": "", "unlocks.upgrades": "Mises à niveau débloquées",
"upgrades.addiction.name": "Addiction", "upgrades.addiction.name": "Addiction",
"upgrades.addiction.tooltip": "+{{lvl}} combo / brique cassée, combo perdu après {{delay}}s sans casser de briques", "upgrades.addiction.tooltip": "+{{lvl}} combo / brique cassée, combo perdu après {{delay}}s sans casser de briques",
"upgrades.addiction.verbose_description": "Le décompte ne commence qu'à parti de la destruction de la première brique du niveau, et s'arrête dès qu'il n'y a plus de briques. ", "upgrades.addiction.verbose_description": "Le décompte ne commence qu'à parti de la destruction de la première brique du niveau, et s'arrête dès qu'il n'y a plus de briques. ",
@ -261,7 +261,7 @@
"upgrades.ball_repulse_ball.tooltip": "Les balles repoussent les balles", "upgrades.ball_repulse_ball.tooltip": "Les balles repoussent les balles",
"upgrades.ball_repulse_ball.verbose_description": "Les balles qui se trouvent à moins d'un quart de largeur d'écran commencent à se repousser les unes les autres. La force de répulsion est plus forte si elles sont proches l'une de l'autre. Des particules seront affichées pour symboliser l'application de cette force. Cet avantage n'est offert que si vous avez déjà plus d'une balle.", "upgrades.ball_repulse_ball.verbose_description": "Les balles qui se trouvent à moins d'un quart de largeur d'écran commencent à se repousser les unes les autres. La force de répulsion est plus forte si elles sont proches l'une de l'autre. Des particules seront affichées pour symboliser l'application de cette force. Cet avantage n'est offert que si vous avez déjà plus d'une balle.",
"upgrades.base_combo.name": "Meilleur base", "upgrades.base_combo.name": "Meilleur base",
"upgrades.base_combo.tooltip": "", "upgrades.base_combo.tooltip": "3 pièces supplémentaires par brique cassée",
"upgrades.base_combo.verbose_description": "Votre combo commence normalement à 1 au début du niveau et revient à 1 lorsque vous rebondissez sans rien toucher. Avec cette caractéristique, le combo commence 3 points plus haut, ce qui fait que vous obtiendrez toujours au moins 4 pièces par brique. Lorsque votre combo est réinitialisé, il revient à 4 et non à 1. Votre balle scintillera un peu pour indiquer que son combo est supérieur à 1.", "upgrades.base_combo.verbose_description": "Votre combo commence normalement à 1 au début du niveau et revient à 1 lorsque vous rebondissez sans rien toucher. Avec cette caractéristique, le combo commence 3 points plus haut, ce qui fait que vous obtiendrez toujours au moins 4 pièces par brique. Lorsque votre combo est réinitialisé, il revient à 4 et non à 1. Votre balle scintillera un peu pour indiquer que son combo est supérieur à 1.",
"upgrades.bigger_explosions.name": "Kaboom", "upgrades.bigger_explosions.name": "Kaboom",
"upgrades.bigger_explosions.tooltip": "Explosions plus violentes", "upgrades.bigger_explosions.tooltip": "Explosions plus violentes",
@ -293,8 +293,8 @@
"upgrades.corner_shot.name": "Tir en coin", "upgrades.corner_shot.name": "Tir en coin",
"upgrades.corner_shot.tooltip": "Laisse votre raquette sortir de la zone encadrée", "upgrades.corner_shot.tooltip": "Laisse votre raquette sortir de la zone encadrée",
"upgrades.corner_shot.verbose_description": "Aide à viser dans les coins", "upgrades.corner_shot.verbose_description": "Aide à viser dans les coins",
"upgrades.double_or_nothing.name": "", "upgrades.double_or_nothing.name": "Double ou rien",
"upgrades.double_or_nothing.tooltip": "", "upgrades.double_or_nothing.tooltip": "Le combo grimpe {{multiplier}} fois plus vite, mais vous perdrez {{percent}}% de votre score à chaque réinitialisation.",
"upgrades.double_or_nothing.verbose_description": "", "upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Monnaie spatiale ", "upgrades.etherealcoins.name": "Monnaie spatiale ",
"upgrades.etherealcoins.tooltip": "Les pièces ne subissent plus la gravité ou la friction", "upgrades.etherealcoins.tooltip": "Les pièces ne subissent plus la gravité ou la friction",
@ -314,15 +314,15 @@
"upgrades.ghost_coins.name": "Pièces fantôme", "upgrades.ghost_coins.name": "Pièces fantôme",
"upgrades.ghost_coins.tooltip": "Les pièces traversent les briques doucement", "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.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.name": "Oie d'or",
"upgrades.golden_goose.tooltip": "", "upgrades.golden_goose.tooltip": "Les pièces se téléportent vers la balle après avoir touché une brique",
"upgrades.golden_goose.verbose_description": "", "upgrades.golden_goose.verbose_description": "Lorsqu'une pièce touche une brique, elle est téléportée vers la boule la plus proche. Au niveau 2, les pièces se téléportent également après avoir touché un côté.",
"upgrades.happy_family.name": "", "upgrades.happy_family.name": "Famille heureuse",
"upgrades.happy_family.tooltip": "", "upgrades.happy_family.tooltip": "Plus de pièces si vous gardez toutes les boules dans le jeu.",
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "+1 combo par balle supplémentaire et par rebond de raquette. Le combo est réinitialisé lorsqu'une balle est perdue. Seule la balle au-dessus de 1 donne le combo.",
"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": "", "upgrades.helium.verbose_description": "Au niveau 1, la gravité est réduite. Au niveau 2, les pièces flottent lentement. Au niveau 3, elles volent vraiment.",
"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. ",
@ -339,8 +339,8 @@
"upgrades.metamorphosis.tooltip": "Chaque pièce peut tacher {{lvl}} brique(s) avec sa couleur", "upgrades.metamorphosis.tooltip": "Chaque pièce peut tacher {{lvl}} brique(s) avec sa couleur",
"upgrades.metamorphosis.verbose_description": "Avec cette amélioration, les pièces seront de la couleur de la brique d'où elles proviennent et coloreront la première brique qu'elles toucheront. Les pièces apparaissent à la vitesse de la balle qui les a cassées, ce qui signifie que vous pouvez viser un peu dans la direction des briques que vous voulez \"peindre\". Au à chaque niveau, chaque pièce peut colorier une brique de plus avant d'être \"épuisée\" et d'apparaître vide.", "upgrades.metamorphosis.verbose_description": "Avec cette amélioration, les pièces seront de la couleur de la brique d'où elles proviennent et coloreront la première brique qu'elles toucheront. Les pièces apparaissent à la vitesse de la balle qui les a cassées, ce qui signifie que vous pouvez viser un peu dans la direction des briques que vous voulez \"peindre\". Au à chaque niveau, chaque pièce peut colorier une brique de plus avant d'être \"épuisée\" et d'apparaître vide.",
"upgrades.minefield.name": "Terrain miné", "upgrades.minefield.name": "Terrain miné",
"upgrades.minefield.tooltip": "", "upgrades.minefield.tooltip": "+{{percent}}% de pièces par brique de bombe à l'écran",
"upgrades.minefield.verbose_description": "", "upgrades.minefield.verbose_description": "Les bombes sont également comptées pendant qu'elles explosent.",
"upgrades.multiball.name": "Multi balle", "upgrades.multiball.name": "Multi balle",
"upgrades.multiball.tooltip": "Chaque niveau commence avec {{count}} balles.", "upgrades.multiball.tooltip": "Chaque niveau commence avec {{count}} balles.",
"upgrades.multiball.verbose_description": "Dès que vous laissez tomber la balle dans Breakout 71, vous perdez. \n\nAvec cet avantage, vous obtenez deux balles, et vous pouvez donc vous permettre d'en perdre une.\n\nLes balles perdues reviennent au niveau suivant. \n\nLe fait d'avoir plus d'une balle permet d'obtenir d'autres avantages et, bien sûr, de franchir le niveau plus rapidement.", "upgrades.multiball.verbose_description": "Dès que vous laissez tomber la balle dans Breakout 71, vous perdez. \n\nAvec cet avantage, vous obtenez deux balles, et vous pouvez donc vous permettre d'en perdre une.\n\nLes balles perdues reviennent au niveau suivant. \n\nLe fait d'avoir plus d'une balle permet d'obtenir d'autres avantages et, bien sûr, de franchir le niveau plus rapidement.",
@ -382,7 +382,7 @@
"upgrades.right_is_lava.verbose_description": "Chaque fois que vous cassez une brique, votre combo augmente d'une unité, ce qui vous permet d'obtenir une pièce de plus à chaque fois que vous cassez les briques suivantes.\n\nCependant, votre combinaison se réinitialise dès que votre balle touche le côté droit de la zone de jeu.\n\nDès que votre combo augmente, le côté droit devient rouge pour vous rappeler que vous devez éviter de le frapper.", "upgrades.right_is_lava.verbose_description": "Chaque fois que vous cassez une brique, votre combo augmente d'une unité, ce qui vous permet d'obtenir une pièce de plus à chaque fois que vous cassez les briques suivantes.\n\nCependant, votre combinaison se réinitialise dès que votre balle touche le côté droit de la zone de jeu.\n\nDès que votre combo augmente, le côté droit devient rouge pour vous rappeler que vous devez éviter de le frapper.",
"upgrades.sacrifice.name": "Sacrifice", "upgrades.sacrifice.name": "Sacrifice",
"upgrades.sacrifice.tooltip": "Perdre une vie détruit toutes les briques à l'écran", "upgrades.sacrifice.tooltip": "Perdre une vie détruit toutes les briques à l'écran",
"upgrades.sacrifice.verbose_description": "Au niveau 2 ou plus, le combo est également multiplié par le niveau de l'atout avant de détruire toutes les briques. Cela peut augmenter considérablement le combo.", "upgrades.sacrifice.verbose_description": "Au niveau 2, le combo est multiplié par le 2 avant de détruire toutes les briques. Cela peut augmenter considérablement le combo.",
"upgrades.sapper.name": "Sapeur", "upgrades.sapper.name": "Sapeur",
"upgrades.sapper.tooltip": "La première brique cassée devient une bombe.", "upgrades.sapper.tooltip": "La première brique cassée devient une bombe.",
"upgrades.sapper.verbose_description": "Au lieu de disparaître, la première brique cassée est remplacée par une bombe. Faire rebondir la balle sur la raquette réarme l'effet. En montant en niveau, vous pourrez placer plus de bombes.", "upgrades.sapper.verbose_description": "Au lieu de disparaître, la première brique cassée est remplacée par une bombe. Faire rebondir la balle sur la raquette réarme l'effet. En montant en niveau, vous pourrez placer plus de bombes.",
@ -412,7 +412,7 @@
"upgrades.soft_reset.verbose_description": "Limite l'impact d'une réinitialisation du combo.", "upgrades.soft_reset.verbose_description": "Limite l'impact d'une réinitialisation du combo.",
"upgrades.sticky_coins.name": "Pièces collantes", "upgrades.sticky_coins.name": "Pièces collantes",
"upgrades.sticky_coins.tooltip": "Les pièces collent aux briques de la même couleur", "upgrades.sticky_coins.tooltip": "Les pièces collent aux briques de la même couleur",
"upgrades.sticky_coins.verbose_description": "", "upgrades.sticky_coins.verbose_description": "Au niveau 2, ils collent aux briques de n'importe quelle couleur",
"upgrades.streak_shots.name": "Séquence de destruction", "upgrades.streak_shots.name": "Séquence de destruction",
"upgrades.streak_shots.tooltip": "Plus de pièces si vous cassez plusieurs briques à la fois.", "upgrades.streak_shots.tooltip": "Plus de pièces si vous cassez plusieurs briques à la fois.",
"upgrades.streak_shots.verbose_description": "Chaque fois que vous cassez une brique, votre combo augmente. Le combo est remis à zéro quand la balle touche la raquette. Une fois que votre combo dépasse la valeur de base, votre raquette devient rouge pour vous rappeler que le fait de la toucher avec la balle détruira votre combo.", "upgrades.streak_shots.verbose_description": "Chaque fois que vous cassez une brique, votre combo augmente. Le combo est remis à zéro quand la balle touche la raquette. Une fois que votre combo dépasse la valeur de base, votre raquette devient rouge pour vous rappeler que le fait de la toucher avec la balle détruira votre combo.",
@ -449,16 +449,16 @@
"upgrades.wind.name": "Vive le vent", "upgrades.wind.name": "Vive le vent",
"upgrades.wind.tooltip": "La position de la raquette crée du 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.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.name": "Envelopper à gauche",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "Frapper le côté gauche téléporte la balle vers le côté droit",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "Les niveaux supérieurs téléportent également des pièces.",
"upgrades.wrap_right.name": "", "upgrades.wrap_right.name": "Envelopper à droite",
"upgrades.wrap_right.tooltip": "", "upgrades.wrap_right.tooltip": "Frapper le côté droit téléporte la balle vers le côté gauche",
"upgrades.wrap_right.verbose_description": "", "upgrades.wrap_right.verbose_description": "Les niveaux supérieurs téléportent également des pièces.",
"upgrades.yoyo.name": "Yo-yo", "upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "La balle se dirige vers la raquette en descendant.", "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.", "upgrades.yoyo.verbose_description": "C'est l'inverse de Télékinésie, contrôlez la balle alors qu'elle redescend vers la raquette.",
"upgrades.zen.name": "Zen", "upgrades.zen.name": "Zen",
"upgrades.zen.tooltip": "", "upgrades.zen.tooltip": "Plus de pièces si vous ne déclenchez pas de bombes",
"upgrades.zen.verbose_description": "" "upgrades.zen.verbose_description": "+{{lvl}} combo toutes les 3 s, réinitialisé en cas d'explosion"
} }

View file

@ -110,7 +110,8 @@ export function t(
): string { ): string {
const lang = getCurrentLang(); const lang = getCurrentLang();
let template = languagesMap[lang]?.[key] || languagesMap.en[key]; let template = languagesMap[lang]?.[key] || languagesMap.en[key];
if(typeof template == 'undefined') throw new Error("Missing translation key :"+key) if (typeof template == "undefined")
throw new Error("Missing translation key :" + key);
for (let key in params) { for (let key in params) {
template = template.split("{{" + key + "}}").join(`${params[key]}`); template = template.split("{{" + key + "}}").join(`${params[key]}`);
} }

View file

@ -55,7 +55,7 @@
"history.columns.score": "Оценка", "history.columns.score": "Оценка",
"history.columns.started": "Дата", "history.columns.started": "Дата",
"history.help": "Посмотрите свои {{count}} лучшие игры.", "history.help": "Посмотрите свои {{count}} лучшие игры.",
"history.include_past_versions": "", "history.include_past_versions": "Показать также прошлые версии",
"history.locked": "Сыграйте не менее десяти игр, чтобы разблокировать", "history.locked": "Сыграйте не менее десяти игр, чтобы разблокировать",
"history.title": "История побегов", "history.title": "История побегов",
"lab.help": "Попробуйте любую сборку.", "lab.help": "Попробуйте любую сборку.",
@ -227,24 +227,24 @@
"starting_perks.random": "Все преимущества были убраны, выбор будет случайным.", "starting_perks.random": "Все преимущества были убраны, выбор будет случайным.",
"starting_perks.title": "Стартовые привилегии", "starting_perks.title": "Стартовые привилегии",
"starting_perks.unchecked": "Приведенные ниже привилегии не предлагаются в качестве стартовых, но вы можете нажать на них, чтобы добавить в пул.", "starting_perks.unchecked": "Приведенные ниже привилегии не предлагаются в качестве стартовых, но вы можете нажать на них, чтобы добавить в пул.",
"unlocks.category.advanced": "", "unlocks.category.advanced": "## Расширенные улучшения\n\nОбычно они не очень полезны сами по себе, но могут стать очень мощными в сочетании с правильным комбо-улучшением.",
"unlocks.category.beginner": "", "unlocks.category.beginner": "## Улучшения для новичков\n\nЭти улучшения очень полезны для новичков, они помогают играть дольше и меньше пропускать мяч.\n",
"unlocks.category.combo": "", "unlocks.category.combo": "## Улучшения комбо\n\nЭти улучшения помогают постепенно увеличивать комбо, но также добавляют условие сброса комбо. Взять одно — хорошая идея, взять больше — увеличивает риск и вознаграждение.",
"unlocks.category.combo_boost": "", "unlocks.category.combo_boost": "## Улучшения усилителя комбо\n\nЭти улучшения увеличивают комбо или множитель комбо без добавления условия сброса.",
"unlocks.category.simple": "", "unlocks.category.simple": "## Вспомогательные улучшения\n\nЭти улучшения полезны практически в любой сборке.\n",
"unlocks.greyed_out_help": "Выделенные серым апгрейды можно разблокировать, увеличив общее количество очков. Общий счет увеличивается каждый раз, когда вы набираете очки в игре.", "unlocks.greyed_out_help": "Выделенные серым апгрейды можно разблокировать, увеличив общее количество очков. Общий счет увеличивается каждый раз, когда вы набираете очки в игре.",
"unlocks.intro": "", "unlocks.intro": "Ваш общий счет — {{ts}}. Щелкните по улучшению ниже, чтобы начать игру с ним.",
"unlocks.just_unlocked": "Уровень разблокирован", "unlocks.just_unlocked": "Уровень разблокирован",
"unlocks.just_unlocked_plural": "Вы только что разблокировали {{count}} уровней", "unlocks.just_unlocked_plural": "Вы только что разблокировали {{count}} уровней",
"unlocks.level": "", "unlocks.level": "Вы разблокировали {{unlocked}} уровней из {{out_of}}",
"unlocks.level_description": "Уровень {{size}}x{{size}} с {{bricks}} кирпичами, {{colors}} цветами и {{bombs}} бомбами.", "unlocks.level_description": "Уровень {{size}}x{{size}} с {{bricks}} кирпичами, {{colors}} цветами и {{bombs}} бомбами.",
"unlocks.levels": "", "unlocks.levels": "Разблокированные уровни",
"unlocks.minScore": "Достигните ${{minScore}} в беге, чтобы разблокировать игру.", "unlocks.minScore": "Достигните ${{minScore}} в беге, чтобы разблокировать игру.",
"unlocks.minScoreWithPerks": "Достигните ${{minScore}} в беге с {{required}} , но без {{forbidden}} для разблокировки.", "unlocks.minScoreWithPerks": "Достигните ${{minScore}} в беге с {{required}} , но без {{forbidden}} для разблокировки.",
"unlocks.minTotalScore": "Накопите в общей сложности ${{score}}", "unlocks.minTotalScore": "Накопите в общей сложности ${{score}}",
"unlocks.reached": "Ваш лучший результат - {{reached}}.", "unlocks.reached": "Ваш лучший результат - {{reached}}.",
"unlocks.title_upgrades": "Вы разблокировали {{unlocked}} обновлений из {{out_of}}", "unlocks.title_upgrades": "Вы разблокировали {{unlocked}} обновлений из {{out_of}}",
"unlocks.upgrades": "", "unlocks.upgrades": "Разблокированные улучшения",
"upgrades.addiction.name": "Наркомания", "upgrades.addiction.name": "Наркомания",
"upgrades.addiction.tooltip": "+{{lvl}} комбо / кирпич, комбо сбрасывается на {{delay}}с после разрушения кирпича.", "upgrades.addiction.tooltip": "+{{lvl}} комбо / кирпич, комбо сбрасывается на {{delay}}с после разрушения кирпича.",
"upgrades.addiction.verbose_description": "Отсчет начинается только после разрушения первого кирпича на каждом уровне. Он остановится, как только все кирпичи будут уничтожены.", "upgrades.addiction.verbose_description": "Отсчет начинается только после разрушения первого кирпича на каждом уровне. Он остановится, как только все кирпичи будут уничтожены.",
@ -261,7 +261,7 @@
"upgrades.ball_repulse_ball.tooltip": "Шарики отталкиваются от шариков", "upgrades.ball_repulse_ball.tooltip": "Шарики отталкиваются от шариков",
"upgrades.ball_repulse_ball.verbose_description": "Шарики, находящиеся на расстоянии менее четверти ширины экрана, начнут отталкиваться друг от друга. Сила отталкивания будет сильнее, если они находятся близко друг к другу. Частицы будут вылетать из шара, символизируя действие этой силы. Эта возможность доступна только в том случае, если у вас уже есть несколько шаров.", "upgrades.ball_repulse_ball.verbose_description": "Шарики, находящиеся на расстоянии менее четверти ширины экрана, начнут отталкиваться друг от друга. Сила отталкивания будет сильнее, если они находятся близко друг к другу. Частицы будут вылетать из шара, символизируя действие этой силы. Эта возможность доступна только в том случае, если у вас уже есть несколько шаров.",
"upgrades.base_combo.name": "Прочный фундамент", "upgrades.base_combo.name": "Прочный фундамент",
"upgrades.base_combo.tooltip": "", "upgrades.base_combo.tooltip": "Еще 3 монеты за каждый разбитый кирпич",
"upgrades.base_combo.verbose_description": "Обычно ваше комбо начинается с 1 в начале уровня и сбрасывается до 1, когда вы подпрыгиваете, не попадая ни во что. С этим перком комбо начинается на 3 пункта выше, поэтому вы всегда будете получать не менее 4 монет за кирпич. Когда ваше комбо обнулится, оно вернется к 4, а не к 1. Ваш шарик будет немного блестеть, чтобы показать, что его комбо выше единицы.", "upgrades.base_combo.verbose_description": "Обычно ваше комбо начинается с 1 в начале уровня и сбрасывается до 1, когда вы подпрыгиваете, не попадая ни во что. С этим перком комбо начинается на 3 пункта выше, поэтому вы всегда будете получать не менее 4 монет за кирпич. Когда ваше комбо обнулится, оно вернется к 4, а не к 1. Ваш шарик будет немного блестеть, чтобы показать, что его комбо выше единицы.",
"upgrades.bigger_explosions.name": "Kaboom", "upgrades.bigger_explosions.name": "Kaboom",
"upgrades.bigger_explosions.tooltip": "Большие взрывы", "upgrades.bigger_explosions.tooltip": "Большие взрывы",
@ -293,8 +293,8 @@
"upgrades.corner_shot.name": "Угловой удар", "upgrades.corner_shot.name": "Угловой удар",
"upgrades.corner_shot.tooltip": "Позволяет накладывать паддл на границы экрана", "upgrades.corner_shot.tooltip": "Позволяет накладывать паддл на границы экрана",
"upgrades.corner_shot.verbose_description": "Помогает прицеливаться на поворотах. Дальние уровни позволят вам выйти дальше.", "upgrades.corner_shot.verbose_description": "Помогает прицеливаться на поворотах. Дальние уровни позволят вам выйти дальше.",
"upgrades.double_or_nothing.name": "", "upgrades.double_or_nothing.name": "Двойной или ничего",
"upgrades.double_or_nothing.tooltip": "", "upgrades.double_or_nothing.tooltip": "Комбо поднимается в {{multiplier}} раз быстрее, но вы будете терять {{percent}}% своего счета при каждом сбросе.",
"upgrades.double_or_nothing.verbose_description": "", "upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Монеты, в космосе", "upgrades.etherealcoins.name": "Монеты, в космосе",
"upgrades.etherealcoins.tooltip": "На монеты больше не действует гравитация", "upgrades.etherealcoins.tooltip": "На монеты больше не действует гравитация",
@ -314,15 +314,15 @@
"upgrades.ghost_coins.name": "Призрачные монеты", "upgrades.ghost_coins.name": "Призрачные монеты",
"upgrades.ghost_coins.tooltip": "Монеты медленно проходят сквозь кирпичи", "upgrades.ghost_coins.tooltip": "Монеты медленно проходят сквозь кирпичи",
"upgrades.ghost_coins.verbose_description": "Это не ошибка, это особенность! Монеты пролетают сквозь кирпичи медленно. На более высоких уровнях они движутся быстрее.", "upgrades.ghost_coins.verbose_description": "Это не ошибка, это особенность! Монеты пролетают сквозь кирпичи медленно. На более высоких уровнях они движутся быстрее.",
"upgrades.golden_goose.name": "", "upgrades.golden_goose.name": "Золотой гусь",
"upgrades.golden_goose.tooltip": "", "upgrades.golden_goose.tooltip": "Монеты телепортируются к мячу после удара о кирпич",
"upgrades.golden_goose.verbose_description": "", "upgrades.golden_goose.verbose_description": "Всякий раз, когда монета ударяется о кирпич, телепортируйте эту монету к ближайшему шару. На втором уровне монеты телепортируются и после удара о сторону.",
"upgrades.happy_family.name": "", "upgrades.happy_family.name": "Счастливая семья.",
"upgrades.happy_family.tooltip": "", "upgrades.happy_family.tooltip": "Больше монет, если вы оставите все мячи в игре.",
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "+1 комбо за каждый дополнительный мяч за отскок ракетки. Комбо сбрасывается при потере мяча. Только мяч выше 1 дает комбо.",
"upgrades.helium.name": "Гелий", "upgrades.helium.name": "Гелий",
"upgrades.helium.tooltip": "Гравитация изменяется слева и справа от весла", "upgrades.helium.tooltip": "Гравитация изменяется слева и справа от весла",
"upgrades.helium.verbose_description": "", "upgrades.helium.verbose_description": "На уровне 1 гравитация уменьшается. На уровне 2 монеты медленно всплывают. На уровне 3 они действительно летают.",
"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 очков, но затем каждую секунду оно будет уменьшаться на одно. Эффект суммируется с другими перками.",
@ -339,8 +339,8 @@
"upgrades.metamorphosis.tooltip": "Каждая монета может окрасить {{lvl}} кирпичей в свой цвет", "upgrades.metamorphosis.tooltip": "Каждая монета может окрасить {{lvl}} кирпичей в свой цвет",
"upgrades.metamorphosis.verbose_description": "С этим перком монеты будут иметь цвет кирпича, из которого они появились, и окрасят первый кирпич, которого они коснутся, в тот же цвет. Монеты рождаются со скоростью разбившего их шара, а значит, вы можете немного прицелиться в направлении кирпичей, которые хотите \"раскрасить\". На первом уровне каждая монета может окрасить 1 кирпич, прежде чем она будет \"потрачена\" и появится в пустоте.", "upgrades.metamorphosis.verbose_description": "С этим перком монеты будут иметь цвет кирпича, из которого они появились, и окрасят первый кирпич, которого они коснутся, в тот же цвет. Монеты рождаются со скоростью разбившего их шара, а значит, вы можете немного прицелиться в направлении кирпичей, которые хотите \"раскрасить\". На первом уровне каждая монета может окрасить 1 кирпич, прежде чем она будет \"потрачена\" и появится в пустоте.",
"upgrades.minefield.name": "Минное поле", "upgrades.minefield.name": "Минное поле",
"upgrades.minefield.tooltip": "", "upgrades.minefield.tooltip": "+{{percent}}% монет за кирпич-бомбу на экране",
"upgrades.minefield.verbose_description": "", "upgrades.minefield.verbose_description": "Подсчет бомб ведется также во время их взрыва.",
"upgrades.multiball.name": "Мультишар", "upgrades.multiball.name": "Мультишар",
"upgrades.multiball.tooltip": "Начинайте каждый уровень с {{count}} шариков.", "upgrades.multiball.tooltip": "Начинайте каждый уровень с {{count}} шариков.",
"upgrades.multiball.verbose_description": "Как только вы бросите мяч в игре Breakout 71, вы проиграете.\n\nС этим преимуществом вы получаете два мяча, поэтому можете позволить себе потерять один.\n\nПотерянные мячи возвращаются на следующем уровне.\n\nНаличие более одного шара делает доступными некоторые дополнительные преимущества и, конечно, позволяет быстрее пройти уровень.", "upgrades.multiball.verbose_description": "Как только вы бросите мяч в игре Breakout 71, вы проиграете.\n\nС этим преимуществом вы получаете два мяча, поэтому можете позволить себе потерять один.\n\nПотерянные мячи возвращаются на следующем уровне.\n\nНаличие более одного шара делает доступными некоторые дополнительные преимущества и, конечно, позволяет быстрее пройти уровень.",
@ -411,8 +411,8 @@
"upgrades.soft_reset.tooltip": "Комбо-сброс сохраняет {{percent}}%", "upgrades.soft_reset.tooltip": "Комбо-сброс сохраняет {{percent}}%",
"upgrades.soft_reset.verbose_description": "Ограничьте влияние комбо-сброса.", "upgrades.soft_reset.verbose_description": "Ограничьте влияние комбо-сброса.",
"upgrades.sticky_coins.name": "Липкие монеты", "upgrades.sticky_coins.name": "Липкие монеты",
"upgrades.sticky_coins.tooltip": "", "upgrades.sticky_coins.tooltip": "Монеты прилипают к кирпичам того же цвета.",
"upgrades.sticky_coins.verbose_description": "", "upgrades.sticky_coins.verbose_description": "На уровне 2 они прилипают к кирпичам любого цвета.",
"upgrades.streak_shots.name": "Попадание в полосу", "upgrades.streak_shots.name": "Попадание в полосу",
"upgrades.streak_shots.tooltip": "Больше монет, если вы разобьете много кирпичей, прежде чем подпрыгнуть на лопатке.", "upgrades.streak_shots.tooltip": "Больше монет, если вы разобьете много кирпичей, прежде чем подпрыгнуть на лопатке.",
"upgrades.streak_shots.verbose_description": "Каждый раз, когда вы разбиваете кирпич, ваше комбо увеличивается на единицу.\n\nОднако как только мяч коснется вашего весла, комбо будет сброшено до стандартного значения.\n\nКак только ваше комбо поднимется выше базового значения, на лопатке появится красная рамка, напоминающая о том, что прикосновение мяча к ней уничтожит ваше комбо.", "upgrades.streak_shots.verbose_description": "Каждый раз, когда вы разбиваете кирпич, ваше комбо увеличивается на единицу.\n\nОднако как только мяч коснется вашего весла, комбо будет сброшено до стандартного значения.\n\nКак только ваше комбо поднимется выше базового значения, на лопатке появится красная рамка, напоминающая о том, что прикосновение мяча к ней уничтожит ваше комбо.",
@ -449,16 +449,16 @@
"upgrades.wind.name": "Ветер", "upgrades.wind.name": "Ветер",
"upgrades.wind.tooltip": "Положение весла создает ветер", "upgrades.wind.tooltip": "Положение весла создает ветер",
"upgrades.wind.verbose_description": "Ветер зависит от положения лопасти: левая дует влево, правая - вправо. Влияет как на шарики, так и на монеты.", "upgrades.wind.verbose_description": "Ветер зависит от положения лопасти: левая дует влево, правая - вправо. Влияет как на шарики, так и на монеты.",
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "Обернуть влево",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "Удар по левой стороне телепортирует мяч на правую сторону.",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "Более высокие уровни также телепортируют монеты.",
"upgrades.wrap_right.name": "", "upgrades.wrap_right.name": "Обернуть вправо",
"upgrades.wrap_right.tooltip": "", "upgrades.wrap_right.tooltip": "Удар по правой стороне телепортирует мяч на левую сторону.",
"upgrades.wrap_right.verbose_description": "", "upgrades.wrap_right.verbose_description": "Более высокие уровни также телепортируют монеты.",
"upgrades.yoyo.name": "Йо-йо", "upgrades.yoyo.name": "Йо-йо",
"upgrades.yoyo.tooltip": "Мяч падает на лопатку", "upgrades.yoyo.tooltip": "Мяч падает на лопатку",
"upgrades.yoyo.verbose_description": "Это противоположность телекинезу: управляйте мячом, пока он падает обратно.", "upgrades.yoyo.verbose_description": "Это противоположность телекинезу: управляйте мячом, пока он падает обратно.",
"upgrades.zen.name": "Дзен", "upgrades.zen.name": "Дзен",
"upgrades.zen.tooltip": "", "upgrades.zen.tooltip": "Больше монет, если не активировать бомбы",
"upgrades.zen.verbose_description": "" "upgrades.zen.verbose_description": "+{{lvl}} комбо каждые 3 с, сбрасывается при взрыве"
} }

View file

@ -55,7 +55,7 @@
"history.columns.score": "Gol", "history.columns.score": "Gol",
"history.columns.started": "Tarih", "history.columns.started": "Tarih",
"history.help": "En iyi {{count}} oyununuzu görün.", "history.help": "En iyi {{count}} oyununuzu görün.",
"history.include_past_versions": "", "history.include_past_versions": "Geçmiş sürümleri de göster",
"history.locked": "Kilidi açmak için en az on oyun oynayın", "history.locked": "Kilidi açmak için en az on oyun oynayın",
"history.title": "Koşu geçmişi", "history.title": "Koşu geçmişi",
"lab.help": "İstediğiniz herhangi bir yapıyı deneyin", "lab.help": "İstediğiniz herhangi bir yapıyı deneyin",
@ -227,24 +227,24 @@
"starting_perks.random": "Tüm avantajlar kaldırıldı, seçim rastgele olacak.", "starting_perks.random": "Tüm avantajlar kaldırıldı, seçim rastgele olacak.",
"starting_perks.title": "Başlangıç avantajları", "starting_perks.title": "Başlangıç avantajları",
"starting_perks.unchecked": "Aşağıdaki avantajlar başlangıç avantajı olarak sunulmamaktadır, ancak havuza eklemek için tıklayabilirsiniz.", "starting_perks.unchecked": "Aşağıdaki avantajlar başlangıç avantajı olarak sunulmamaktadır, ancak havuza eklemek için tıklayabilirsiniz.",
"unlocks.category.advanced": "", "unlocks.category.advanced": "## Gelişmiş yükseltmeler\n\nBunlar genellikle tek başlarına çok faydalı değildir, ancak doğru kombo yükseltmesiyle birleştirildiğinde çok güçlü hale gelebilir.",
"unlocks.category.beginner": "", "unlocks.category.beginner": "## Başlangıç seviyesindekilere uygun yükseltmeler\n\nBu yükseltmeler yeni başlayanlar için çok faydalıdır, daha uzun süre oynamanıza ve topu daha az kaçırmanıza yardımcı olur.",
"unlocks.category.combo": "", "unlocks.category.combo": "## Kombo yükseltmeleri\n\nBu yükseltmeler kombonuzu kademeli olarak artırmanıza yardımcı olur, ancak aynı zamanda bir kombo sıfırlama koşulu da ekler. Bir tane almak iyi bir fikirdir, daha fazlasını almak riski ve ödülü artırır.",
"unlocks.category.combo_boost": "", "unlocks.category.combo_boost": "## Kombo güçlendirici yükseltmeleri\n\nBu yükseltmeler, sıfırlama koşulu eklemeden komboyu veya kombo çarpanını artırır.",
"unlocks.category.simple": "", "unlocks.category.simple": "## Yardımcı yükseltmeleri\n\nBu yükseltmeler hemen hemen her yapıda faydalıdır.",
"unlocks.greyed_out_help": "Grileştirilmiş yükseltmeler toplam puanınızı artırarak açılabilir. Toplam puan, oyunda her puan aldığınızda artar.", "unlocks.greyed_out_help": "Grileştirilmiş yükseltmeler toplam puanınızı artırarak açılabilir. Toplam puan, oyunda her puan aldığınızda artar.",
"unlocks.intro": "", "unlocks.intro": "Toplam puanınız {{ts}}. Aşağıdaki yükseltmelerden birine tıklayarak onunla bir oyun başlatabilirsiniz.",
"unlocks.just_unlocked": "Seviye kilidi açıldı", "unlocks.just_unlocked": "Seviye kilidi açıldı",
"unlocks.just_unlocked_plural": "Az önce {{count}} seviyenin kilidini açtınız", "unlocks.just_unlocked_plural": "Az önce {{count}} seviyenin kilidini açtınız",
"unlocks.level": "", "unlocks.level": " {{out_of}}seviyeden {{unlocked}} tanesinin kilidini açtın",
"unlocks.level_description": " {{bricks}} tuğla, {{colors}} renk ve {{bombs}} bombadan oluşan {{size}}x{{size}} büyüklüğünde bir seviye.", "unlocks.level_description": " {{bricks}} tuğla, {{colors}} renk ve {{bombs}} bombadan oluşan {{size}}x{{size}} büyüklüğünde bir seviye.",
"unlocks.levels": "", "unlocks.levels": "Kilidi açılmış seviyeler",
"unlocks.minScore": "Kilidi açmak için bir koşuda ${{minScore}} 'a ulaşın.", "unlocks.minScore": "Kilidi açmak için bir koşuda ${{minScore}} 'a ulaşın.",
"unlocks.minScoreWithPerks": " {{required}} ile ancak {{forbidden}} olmadan bir koşuda ${{minScore}} 'a ulaşın.", "unlocks.minScoreWithPerks": " {{required}} ile ancak {{forbidden}} olmadan bir koşuda ${{minScore}} 'a ulaşın.",
"unlocks.minTotalScore": "Toplam ${{score}}biriktirin", "unlocks.minTotalScore": "Toplam ${{score}}biriktirin",
"unlocks.reached": "En iyi skorunuz {{reached}}idi.", "unlocks.reached": "En iyi skorunuz {{reached}}idi.",
"unlocks.title_upgrades": " {{out_of}}yükseltmeden {{unlocked}} tanesinin kilidini açtınız", "unlocks.title_upgrades": " {{out_of}}yükseltmeden {{unlocked}} tanesinin kilidini açtınız",
"unlocks.upgrades": "", "unlocks.upgrades": "Kilidi açılmış yükseltmeler",
"upgrades.addiction.name": "Bağımlılık", "upgrades.addiction.name": "Bağımlılık",
"upgrades.addiction.tooltip": "+{{lvl}} kombo / tuğla, kombo bir tuğlayı kırdıktan sonra {{delay}}saniye içinde sıfırlanır.", "upgrades.addiction.tooltip": "+{{lvl}} kombo / tuğla, kombo bir tuğlayı kırdıktan sonra {{delay}}saniye içinde sıfırlanır.",
"upgrades.addiction.verbose_description": "Geri sayım yalnızca her seviyenin ilk tuğlası kırıldıktan sonra başlar. Tüm tuğlalar yok edildiğinde durur.", "upgrades.addiction.verbose_description": "Geri sayım yalnızca her seviyenin ilk tuğlası kırıldıktan sonra başlar. Tüm tuğlalar yok edildiğinde durur.",
@ -261,7 +261,7 @@
"upgrades.ball_repulse_ball.tooltip": "Toplar topları iter", "upgrades.ball_repulse_ball.tooltip": "Toplar topları iter",
"upgrades.ball_repulse_ball.verbose_description": "Çeyrek ekran genişliğinden daha az uzaklıktaki toplar birbirini itmeye başlayacaktır. Birbirlerine yakınlarsa itme kuvveti daha güçlüdür. Parçacıklar bu kuvvetin uygulandığını sembolize etmek için dışarı fırlayacaktır. Bu avantaj yalnızca birden fazla topunuz varsa sunulur.", "upgrades.ball_repulse_ball.verbose_description": "Çeyrek ekran genişliğinden daha az uzaklıktaki toplar birbirini itmeye başlayacaktır. Birbirlerine yakınlarsa itme kuvveti daha güçlüdür. Parçacıklar bu kuvvetin uygulandığını sembolize etmek için dışarı fırlayacaktır. Bu avantaj yalnızca birden fazla topunuz varsa sunulur.",
"upgrades.base_combo.name": "Güçlü temeller", "upgrades.base_combo.name": "Güçlü temeller",
"upgrades.base_combo.tooltip": "", "upgrades.base_combo.tooltip": "Kırılan her tuğla için 3 jeton daha",
"upgrades.base_combo.verbose_description": "Kombonuz normalde seviyenin başında 1'den başlar ve hiçbir şeye çarpmadan zıpladığınızda 1'e sıfırlanır. Bu avantajla, kombo 3 puan daha yüksekte başlar, bu yüzden her zaman tuğla başına en az 4 jeton alırsınız. Kombonuz her sıfırlandığında, 1 yerine 4'e geri döner. Topunuz, kombosunun birden yüksek olduğunu belirtmek için biraz parıldayacaktır.", "upgrades.base_combo.verbose_description": "Kombonuz normalde seviyenin başında 1'den başlar ve hiçbir şeye çarpmadan zıpladığınızda 1'e sıfırlanır. Bu avantajla, kombo 3 puan daha yüksekte başlar, bu yüzden her zaman tuğla başına en az 4 jeton alırsınız. Kombonuz her sıfırlandığında, 1 yerine 4'e geri döner. Topunuz, kombosunun birden yüksek olduğunu belirtmek için biraz parıldayacaktır.",
"upgrades.bigger_explosions.name": "Kaboom", "upgrades.bigger_explosions.name": "Kaboom",
"upgrades.bigger_explosions.tooltip": "Daha büyük patlamalar", "upgrades.bigger_explosions.tooltip": "Daha büyük patlamalar",
@ -293,8 +293,8 @@
"upgrades.corner_shot.name": "Köşe vuruşu", "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.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.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.name": "Çift veya hiç",
"upgrades.double_or_nothing.tooltip": "", "upgrades.double_or_nothing.tooltip": "Kombo {{multiplier}} kat daha hızlı tırmanır, ancak her sıfırlamada puanınızın % {{percent}}kadarını kaybedersiniz.",
"upgrades.double_or_nothing.verbose_description": "", "upgrades.double_or_nothing.verbose_description": "",
"upgrades.etherealcoins.name": "Uzayda Madeni Paralar", "upgrades.etherealcoins.name": "Uzayda Madeni Paralar",
"upgrades.etherealcoins.tooltip": "Madeni paralar artık yer çekiminden etkilenmiyor", "upgrades.etherealcoins.tooltip": "Madeni paralar artık yer çekiminden etkilenmiyor",
@ -314,15 +314,15 @@
"upgrades.ghost_coins.name": "Hayalet paralar", "upgrades.ghost_coins.name": "Hayalet paralar",
"upgrades.ghost_coins.tooltip": "Madeni paralar yavaşça tuğlaların arasından geçiyor", "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.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.name": "Altın yumurtlayan tavuk",
"upgrades.golden_goose.tooltip": "", "upgrades.golden_goose.tooltip": "Madeni paralar bir tuğlaya çarptıktan sonra topa ışınlanır",
"upgrades.golden_goose.verbose_description": "", "upgrades.golden_goose.verbose_description": "Bir madeni para bir tuğlaya çarptığında, o madeni parayı en yakın topa ışınla. İkinci seviyede, madeni paralar bir tarafa çarptıktan sonra da ışınlanır.",
"upgrades.happy_family.name": "", "upgrades.happy_family.name": "Mutlu aile",
"upgrades.happy_family.tooltip": "", "upgrades.happy_family.tooltip": "Eğer tüm topları oyunda tutarsanız daha fazla jeton kazanırsınız.",
"upgrades.happy_family.verbose_description": "", "upgrades.happy_family.verbose_description": "Her kürek sıçraması için ekstra top başına +1 kombo. Bir top kaybedildiğinde kombo sıfırlanır. Sadece 1'in üzerindeki top kombo verir.",
"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": "", "upgrades.helium.verbose_description": "1. seviyede yer çekimi azalır. 2. seviyede paralar yavaşça yukarı doğru süzülür. 3. seviyede gerçekten uçarlar.",
"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.",
@ -339,8 +339,8 @@
"upgrades.metamorphosis.tooltip": "Her madeni para, {{lvl}} tuğlayı kendi rengiyle lekeleyebilir", "upgrades.metamorphosis.tooltip": "Her madeni para, {{lvl}} tuğlayı kendi rengiyle lekeleyebilir",
"upgrades.metamorphosis.verbose_description": "Bu yetenekle, madeni paralar geldikleri tuğlanın renginde olacak ve dokundukları ilk tuğlayı aynı renge boyayacak. Madeni paralar onları kıran topun hızıyla ortaya çıkar, bu da \"boyamak\" istediğiniz tuğlalara doğru biraz nişan alabileceğiniz anlamına gelir. 1. seviyede, her madeni para \"harcanmadan\" ve içi boş görünmeden önce 1 tuğlayı boyayabilir.", "upgrades.metamorphosis.verbose_description": "Bu yetenekle, madeni paralar geldikleri tuğlanın renginde olacak ve dokundukları ilk tuğlayı aynı renge boyayacak. Madeni paralar onları kıran topun hızıyla ortaya çıkar, bu da \"boyamak\" istediğiniz tuğlalara doğru biraz nişan alabileceğiniz anlamına gelir. 1. seviyede, her madeni para \"harcanmadan\" ve içi boş görünmeden önce 1 tuğlayı boyayabilir.",
"upgrades.minefield.name": "Mayın tarlası", "upgrades.minefield.name": "Mayın tarlası",
"upgrades.minefield.tooltip": "", "upgrades.minefield.tooltip": "Ekrandaki bomba tuğlası başına +{{percent}}% jeton",
"upgrades.minefield.verbose_description": "", "upgrades.minefield.verbose_description": "Bombalar patlarken de sayılır.",
"upgrades.multiball.name": "Çoklu top", "upgrades.multiball.name": "Çoklu top",
"upgrades.multiball.tooltip": "Her seviyeye {{count}} topla başlayın.", "upgrades.multiball.tooltip": "Her seviyeye {{count}} topla başlayın.",
"upgrades.multiball.verbose_description": "Breakout 71'de topu düşürdüğünüz anda kaybedersiniz. \n\nBu avantajla iki top elde edersiniz ve bu yüzden birini kaybetmeyi göze alabilirsiniz. \n\nKaybedilen toplar bir sonraki seviyede geri gelir. \n\nBirden fazla topa sahip olmak bazı ek avantajları kullanılabilir hale getirir ve tabii ki seviyeyi daha hızlı temizler.", "upgrades.multiball.verbose_description": "Breakout 71'de topu düşürdüğünüz anda kaybedersiniz. \n\nBu avantajla iki top elde edersiniz ve bu yüzden birini kaybetmeyi göze alabilirsiniz. \n\nKaybedilen toplar bir sonraki seviyede geri gelir. \n\nBirden fazla topa sahip olmak bazı ek avantajları kullanılabilir hale getirir ve tabii ki seviyeyi daha hızlı temizler.",
@ -411,8 +411,8 @@
"upgrades.soft_reset.tooltip": "Kombo sıfırlamaları % {{percent}}tutar", "upgrades.soft_reset.tooltip": "Kombo sıfırlamaları % {{percent}}tutar",
"upgrades.soft_reset.verbose_description": "Bir kombo sıfırlamanın etkisini sınırlayın.", "upgrades.soft_reset.verbose_description": "Bir kombo sıfırlamanın etkisini sınırlayın.",
"upgrades.sticky_coins.name": "Yapışkan paralar", "upgrades.sticky_coins.name": "Yapışkan paralar",
"upgrades.sticky_coins.tooltip": "", "upgrades.sticky_coins.tooltip": "Madeni paralar aynı renkteki tuğlalara yapışıyor",
"upgrades.sticky_coins.verbose_description": "", "upgrades.sticky_coins.verbose_description": "2. seviyede, herhangi bir renkteki tuğlalara yapışırlar",
"upgrades.streak_shots.name": "Vuruş serisi", "upgrades.streak_shots.name": "Vuruş serisi",
"upgrades.streak_shots.tooltip": "Kürek çekmeden önce çok sayıda tuğla kırarsanız daha fazla para kazanırsınız.", "upgrades.streak_shots.tooltip": "Kürek çekmeden önce çok sayıda tuğla kırarsanız daha fazla para kazanırsınız.",
"upgrades.streak_shots.verbose_description": "Her tuğlayı kırdığınızda, kombonuz bir artar. \n\nAncak, top küreğinize değdiği anda kombo varsayılan değerine sıfırlanır.\n\nKombonuz temel değerin üzerine çıktığında, küreğinizin topla dokunduğunuzda kombonuzu yok edeceğini size hatırlatmak için kırmızı bir kenarı olacaktır.", "upgrades.streak_shots.verbose_description": "Her tuğlayı kırdığınızda, kombonuz bir artar. \n\nAncak, top küreğinize değdiği anda kombo varsayılan değerine sıfırlanır.\n\nKombonuz temel değerin üzerine çıktığında, küreğinizin topla dokunduğunuzda kombonuzu yok edeceğini size hatırlatmak için kırmızı bir kenarı olacaktır.",
@ -449,16 +449,16 @@
"upgrades.wind.name": "Rüzgâr", "upgrades.wind.name": "Rüzgâr",
"upgrades.wind.tooltip": "Kürek pozisyonu rüzgar yaratı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.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.name": "Sola doğru sarın",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "Sol tarafa vurmak topu sağ tarafa ışınlar",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "Daha yüksek seviyelerde ışınlanma paraları da var.",
"upgrades.wrap_right.name": "", "upgrades.wrap_right.name": "Sağa doğru sarın",
"upgrades.wrap_right.tooltip": "", "upgrades.wrap_right.tooltip": "Sağ tarafa vurmak topu sol tarafa ışınlar",
"upgrades.wrap_right.verbose_description": "", "upgrades.wrap_right.verbose_description": "Daha yüksek seviyelerde ışınlanma paraları da var.",
"upgrades.yoyo.name": "Yo-yo", "upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "Top küreğe doğru düşer", "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.", "upgrades.yoyo.verbose_description": "Telekinezinin tam tersi, topun aşağı düşerken kontrol edilmesi.",
"upgrades.zen.name": "Zen", "upgrades.zen.name": "Zen",
"upgrades.zen.tooltip": "", "upgrades.zen.tooltip": "Bombaları tetiklemezseniz daha fazla para kazanırsınız",
"upgrades.zen.verbose_description": "" "upgrades.zen.verbose_description": "+{{lvl}} kombo her 3 saniyede bir, patlama olduğunda sıfırlanır"
} }

View file

@ -156,7 +156,10 @@ migrate("set_user_id", () => {
if (!localStorage.getItem("breakout_71_user_id")) { if (!localStorage.getItem("breakout_71_user_id")) {
localStorage.setItem( localStorage.setItem(
"breakout_71_user_id", "breakout_71_user_id",
JSON.stringify(self?.crypto?.randomUUID() || "user_" + Math.random()), JSON.stringify(
(self?.crypto?.randomUUID && self?.crypto?.randomUUID()) ||
"user_" + Math.random(),
),
); );
} }
}); });

View file

@ -94,6 +94,7 @@ export function newGameState(params: RunParams): GameState {
brickWidth: 0, brickWidth: 0,
score: 0, score: 0,
lastScoreIncrease: -1000, lastScoreIncrease: -1000,
levelCoughtCoins: 0,
lastExplosion: -1000, lastExplosion: -1000,
lastBrickBroken: 0, lastBrickBroken: 0,
highScore, highScore,

View file

@ -31,12 +31,12 @@ export function coinsBoostedCombo(gameState: GameState) {
}); });
boost += (min * gameState.perks.transparency) / 2; boost += (min * gameState.perks.transparency) / 2;
} }
if(gameState.perks.minefield){ if (gameState.perks.minefield) {
gameState.bricks.forEach(brick=>{ gameState.bricks.forEach((brick) => {
if(brick === 'black'){ if (brick === "black") {
boost+=0.1 * gameState.perks.minefield boost += 0.1 * gameState.perks.minefield;
} }
}) });
} }
return Math.ceil(Math.max(gameState.combo, gameState.lastCombo) * boost); return Math.ceil(Math.max(gameState.combo, gameState.lastCombo) * boost);
} }

View file

@ -76,8 +76,7 @@ export function render(gameState: GameState) {
} }
const catchRate = gameState.levelSpawnedCoins const catchRate = gameState.levelSpawnedCoins
? (gameState.score - gameState.levelStartScore) / ? gameState.levelCoughtCoins / (gameState.levelSpawnedCoins || 1)
(gameState.levelSpawnedCoins || 1)
: // (gameState.levelSpawnedCoins - gameState.levelLostCoins) / : // (gameState.levelSpawnedCoins - gameState.levelLostCoins) /
// gameState.levelSpawnedCoins // gameState.levelSpawnedCoins
1; 1;
@ -366,7 +365,7 @@ export function render(gameState: GameState) {
startWork("render:extra_life"); startWork("render:extra_life");
if (gameState.perks.extra_life) { if (gameState.perks.extra_life) {
ctx.globalAlpha = gameState.balls.length>1 ? 0.2:1; ctx.globalAlpha = gameState.balls.length > 1 ? 0.2 : 1;
ctx.globalCompositeOperation = "source-over"; ctx.globalCompositeOperation = "source-over";
ctx.fillStyle = gameState.puckColor; ctx.fillStyle = gameState.puckColor;
for (let i = 0; i < gameState.perks.extra_life; i++) { for (let i = 0; i < gameState.perks.extra_life; i++) {

View file

@ -1,116 +1,110 @@
import {isOptionOn} from "./options"; import { isOptionOn } from "./options";
export function setupTooltips() { export function setupTooltips() {
if (isOptionOn("mobile-mode")) {
setupMobileTooltips(tooltip);
if (isOptionOn("mobile-mode")) { } else {
setupMobileTooltips(tooltip) setupDesktopTooltips(tooltip);
} else { }
setupDesktopTooltips(tooltip)
}
} }
const tooltip = document.getElementById("tooltip") as HTMLDivElement; const tooltip = document.getElementById("tooltip") as HTMLDivElement;
function setupMobileTooltips(tooltip: HTMLDivElement) { function setupMobileTooltips(tooltip: HTMLDivElement) {
function openTooltip(e: Event) {
const hovering = e.target as HTMLElement;
if (!hovering?.hasAttribute("data-help-content")) {
return;
}
e.stopPropagation();
e.preventDefault();
tooltip.innerHTML = hovering.getAttribute("data-help-content") || "";
tooltip.style.display = "";
const { left, top, height } = hovering.getBoundingClientRect();
tooltip.style.transform = `translate(${left}px,${top}px) translate(${left > window.innerWidth / 2 ? "-100%" : "0"},${top > window.innerHeight / 3 ? "-100%" : height + "px"})`;
}
function openTooltip(e: Event) { document.body.addEventListener("touchstart", openTooltip, true);
const hovering = (e.target as HTMLElement) document.body.addEventListener("mousedown", openTooltip, true);
if (!hovering?.hasAttribute('data-help-content')) {
return function closeTooltip(e: Event) {
} const hovering = e.target as HTMLElement;
e.stopPropagation() if (!hovering?.hasAttribute("data-help-content")) {
e.preventDefault() return;
tooltip.innerHTML = hovering.getAttribute("data-help-content") || "";
tooltip.style.display = "";
const {left,top,height} = hovering.getBoundingClientRect()
tooltip.style.transform = `translate(${left}px,${top}px) translate(${left > window.innerWidth / 2 ? "-100%" : "0"},${top > window.innerHeight / 3 ? "-100%" :height+ "px"})`;
} }
document.body.addEventListener( "touchstart", openTooltip, true ) e.stopPropagation();
document.body.addEventListener( "mousedown", openTooltip, true ) e.preventDefault();
tooltip.style.display = "none";
}
function closeTooltip(e:Event){ document.body.addEventListener("touchend", closeTooltip, true);
const hovering = (e.target as HTMLElement) document.body.addEventListener("mouseup", closeTooltip, true);
if (!hovering?.hasAttribute('data-help-content')) {
return
}
e.stopPropagation() function ignoreClick(e: Event) {
e.preventDefault() const hovering = e.target as HTMLElement;
tooltip.style.display = "none" if (!hovering?.hasAttribute("data-help-content")) {
return;
} }
document.body.addEventListener( "touchend", closeTooltip, true ) e.stopPropagation();
document.body.addEventListener( "mouseup", closeTooltip, true ) e.preventDefault();
}
function ignoreClick(e:Event){ document.body.addEventListener("click", ignoreClick, true);
const hovering = (e.target as HTMLElement)
if (!hovering?.hasAttribute('data-help-content')) {
return
}
e.stopPropagation()
e.preventDefault()
}
document.body.addEventListener( "click", ignoreClick, true )
} }
function setupDesktopTooltips(tooltip: HTMLDivElement) { function setupDesktopTooltips(tooltip: HTMLDivElement) {
function updateTooltipPosition(e: { clientX: number; clientY: number }) {
function updateTooltipPosition(e: { clientX:number, clientY:number }) {
tooltip.style.transform = `translate(${e.clientX}px,${e.clientY}px) translate(${e.clientX > window.innerWidth / 2 ? "-100%" : "0"},${e.clientY > (window.innerHeight * 2) / 3 ? "-100%" : "20px"})`; tooltip.style.transform = `translate(${e.clientX}px,${e.clientY}px) translate(${e.clientX > window.innerWidth / 2 ? "-100%" : "0"},${e.clientY > (window.innerHeight * 2) / 3 ? "-100%" : "20px"})`;
} }
function closeToolTip() { function closeToolTip() {
tooltip.style.display = "none"; tooltip.style.display = "none";
hovering = null; hovering = null;
}
let hovering: HTMLElement | null = null;
document.body.addEventListener(
"mouseenter",
(e: MouseEvent) => {
let parent: HTMLElement | null = e.target as HTMLElement;
while (parent && !parent.hasAttribute("data-tooltip")) {
parent = parent.parentElement;
}
if (parent?.getAttribute("data-tooltip")?.trim()) {
hovering = parent as HTMLElement;
tooltip.innerHTML = hovering.getAttribute("data-tooltip") || "";
tooltip.style.display = "";
updateTooltipPosition(e);
} else {
closeToolTip();
}
},
true,
);
setInterval(() => {
if (hovering) {
if (!document.body.contains(hovering)) {
closeToolTip();
}
}
}, 200);
document.body.addEventListener(
"mousemove",
(e) => {
if (!tooltip.style.display) {
updateTooltipPosition(e);
}
},
true,
);
document.body.addEventListener(
"mouseleave",
(e) => {
closeToolTip();
},
true,
);
} }
let hovering: HTMLElement | null = null;
document.body.addEventListener(
"mouseenter",
(e: MouseEvent) => {
let parent: HTMLElement | null = e.target as HTMLElement;
while (parent && !parent.hasAttribute("data-tooltip")) {
parent = parent.parentElement;
}
if (parent?.getAttribute("data-tooltip")?.trim()) {
hovering = parent as HTMLElement;
tooltip.innerHTML = hovering.getAttribute("data-tooltip") || "";
tooltip.style.display = "";
updateTooltipPosition(e);
} else {
closeToolTip();
}
},
true,
);
setInterval(() => {
if (hovering) {
if (!document.body.contains(hovering)) {
closeToolTip();
}
}
}, 200);
document.body.addEventListener(
"mousemove",
(e) => {
if (!tooltip.style.display) {
updateTooltipPosition(e);
}
},
true,
);
document.body.addEventListener(
"mouseleave",
(e) => {
closeToolTip();
},
true,
);
}

1
src/types.d.ts vendored
View file

@ -220,6 +220,7 @@ export type GameState = {
score: number; score: number;
// levelTime of the last time the score increase, to render the score differently // levelTime of the last time the score increase, to render the score differently
lastScoreIncrease: number; lastScoreIncrease: number;
levelCoughtCoins: number;
// levelTime of the last explosion, for screen shake // levelTime of the last explosion, for screen shake
lastExplosion: number; lastExplosion: number;
lastBrickBroken: number; lastBrickBroken: number;

View file

@ -28,7 +28,8 @@ export const rawUpgrades = [
max: 2, max: 2,
name: t("upgrades.slow_down.name"), name: t("upgrades.slow_down.name"),
help: (lvl: number) => t("upgrades.slow_down.tooltip", { lvl }), help: (lvl: number) => t("upgrades.slow_down.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.slow_down.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.slow_down.verbose_description", { lvl }),
}, },
{ {
category: categories.beginner, category: categories.beginner,
@ -39,7 +40,8 @@ export const rawUpgrades = [
max: 2, max: 2,
name: t("upgrades.bigger_puck.name"), name: t("upgrades.bigger_puck.name"),
help: () => t("upgrades.bigger_puck.tooltip"), help: () => t("upgrades.bigger_puck.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.bigger_puck.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.bigger_puck.verbose_description", { lvl }),
}, },
{ {
@ -51,7 +53,8 @@ export const rawUpgrades = [
max: 7, max: 7,
name: t("upgrades.extra_life.name"), name: t("upgrades.extra_life.name"),
help: (lvl: number) => t("upgrades.extra_life.tooltip"), help: (lvl: number) => t("upgrades.extra_life.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.extra_life.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.extra_life.verbose_description", { lvl }),
}, },
{ {
category: categories.beginner, category: categories.beginner,
@ -61,8 +64,9 @@ export const rawUpgrades = [
id: "skip_last", id: "skip_last",
max: 7, max: 7,
name: t("upgrades.skip_last.name"), name: t("upgrades.skip_last.name"),
help: (lvl: number) =>t("upgrades.skip_last.tooltip") , help: (lvl: number) => t("upgrades.skip_last.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.skip_last.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.skip_last.verbose_description", { lvl }),
}, },
{ {
category: categories.beginner, category: categories.beginner,
@ -72,8 +76,9 @@ export const rawUpgrades = [
gift: true, gift: true,
max: 1, max: 1,
name: t("upgrades.telekinesis.name"), name: t("upgrades.telekinesis.name"),
help: (lvl: number) => t("upgrades.telekinesis.tooltip") , help: (lvl: number) => t("upgrades.telekinesis.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.telekinesis.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.telekinesis.verbose_description", { lvl }),
}, },
{ {
category: categories.beginner, category: categories.beginner,
@ -84,7 +89,7 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.yoyo.name"), name: t("upgrades.yoyo.name"),
help: (lvl: number) => t("upgrades.yoyo.tooltip"), help: (lvl: number) => t("upgrades.yoyo.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.yoyo.verbose_description",{lvl}), fullHelp: (lvl: number) => t("upgrades.yoyo.verbose_description", { lvl }),
}, },
{ {
category: categories.beginner, category: categories.beginner,
@ -95,7 +100,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.one_more_choice.name"), name: t("upgrades.one_more_choice.name"),
help: (lvl: number) => t("upgrades.one_more_choice.tooltip", { lvl }), help: (lvl: number) => t("upgrades.one_more_choice.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.one_more_choice.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.one_more_choice.verbose_description", { lvl }),
}, },
{ {
category: categories.beginner, category: categories.beginner,
@ -106,7 +112,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.concave_puck.name"), name: t("upgrades.concave_puck.name"),
help: (lvl: number) => t("upgrades.concave_puck.tooltip"), help: (lvl: number) => t("upgrades.concave_puck.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.concave_puck.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.concave_puck.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -117,7 +124,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.streak_shots.name"), name: t("upgrades.streak_shots.name"),
help: (lvl: number) => t("upgrades.streak_shots.tooltip", { lvl }), help: (lvl: number) => t("upgrades.streak_shots.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.streak_shots.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.streak_shots.verbose_description", { lvl }),
}, },
{ {
@ -129,7 +137,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.left_is_lava.name"), name: t("upgrades.left_is_lava.name"),
help: (lvl: number) => t("upgrades.left_is_lava.tooltip", { lvl }), help: (lvl: number) => t("upgrades.left_is_lava.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.left_is_lava.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.left_is_lava.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -140,7 +149,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.right_is_lava.name"), name: t("upgrades.right_is_lava.name"),
help: (lvl: number) => t("upgrades.right_is_lava.tooltip", { lvl }), help: (lvl: number) => t("upgrades.right_is_lava.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.right_is_lava.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.right_is_lava.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -151,7 +161,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.top_is_lava.name"), name: t("upgrades.top_is_lava.name"),
help: (lvl: number) => t("upgrades.top_is_lava.tooltip", { lvl }), help: (lvl: number) => t("upgrades.top_is_lava.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.top_is_lava.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.top_is_lava.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -166,9 +177,11 @@ export const rawUpgrades = [
start: lvl * 30 + 1, start: lvl * 30 + 1,
loss: lvl, loss: lvl,
}), }),
fullHelp: (lvl: number) =>t("upgrades.hot_start.verbose_description",{ fullHelp: (lvl: number) =>
t("upgrades.hot_start.verbose_description", {
start: lvl * 30 + 1, start: lvl * 30 + 1,
loss: lvl,}), loss: lvl,
}),
}, },
{ {
@ -180,7 +193,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.picky_eater.name"), name: t("upgrades.picky_eater.name"),
help: (lvl: number) => t("upgrades.picky_eater.tooltip", { lvl }), help: (lvl: number) => t("upgrades.picky_eater.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.picky_eater.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.picky_eater.verbose_description", { lvl }),
}, },
{ {
@ -192,7 +206,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.compound_interest.name"), name: t("upgrades.compound_interest.name"),
help: (lvl: number) => t("upgrades.compound_interest.tooltip", { lvl }), help: (lvl: number) => t("upgrades.compound_interest.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.compound_interest.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.compound_interest.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -204,7 +219,8 @@ export const rawUpgrades = [
name: t("upgrades.side_kick.name"), name: t("upgrades.side_kick.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.side_kick.tooltip", { lvl, loss: lvl * 2 }), t("upgrades.side_kick.tooltip", { lvl, loss: lvl * 2 }),
fullHelp: (lvl: number) =>t("upgrades.side_kick.verbose_description",{lvl, loss: lvl * 2}), fullHelp: (lvl: number) =>
t("upgrades.side_kick.verbose_description", { lvl, loss: lvl * 2 }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -216,7 +232,8 @@ export const rawUpgrades = [
name: t("upgrades.side_flip.name"), name: t("upgrades.side_flip.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.side_flip.tooltip", { lvl, loss: lvl * 2 }), t("upgrades.side_flip.tooltip", { lvl, loss: lvl * 2 }),
fullHelp: (lvl: number) =>t("upgrades.side_flip.verbose_description",{lvl, loss: lvl * 2}), fullHelp: (lvl: number) =>
t("upgrades.side_flip.verbose_description", { lvl, loss: lvl * 2 }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -228,7 +245,7 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.reach.name"), name: t("upgrades.reach.name"),
help: (lvl: number) => t("upgrades.reach.tooltip", { lvl }), help: (lvl: number) => t("upgrades.reach.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.reach.verbose_description",{lvl}), fullHelp: (lvl: number) => t("upgrades.reach.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -239,7 +256,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.happy_family.name"), name: t("upgrades.happy_family.name"),
help: () => t("upgrades.happy_family.tooltip"), help: () => t("upgrades.happy_family.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.happy_family.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.happy_family.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -251,7 +269,11 @@ export const rawUpgrades = [
name: t("upgrades.addiction.name"), name: t("upgrades.addiction.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.addiction.tooltip", { lvl, delay: (5 / lvl).toFixed(2) }), t("upgrades.addiction.tooltip", { lvl, delay: (5 / lvl).toFixed(2) }),
fullHelp: (lvl: number) =>t("upgrades.addiction.verbose_description",{lvl, delay: (5 / lvl).toFixed(2)}), fullHelp: (lvl: number) =>
t("upgrades.addiction.verbose_description", {
lvl,
delay: (5 / lvl).toFixed(2),
}),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -262,7 +284,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.nbricks.name"), name: t("upgrades.nbricks.name"),
help: (lvl: number) => t("upgrades.nbricks.tooltip", { lvl }), help: (lvl: number) => t("upgrades.nbricks.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.nbricks.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.nbricks.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -274,7 +297,8 @@ export const rawUpgrades = [
name: t("upgrades.three_cushion.name"), name: t("upgrades.three_cushion.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.three_cushion.tooltip", { max: lvl * 3 }), t("upgrades.three_cushion.tooltip", { max: lvl * 3 }),
fullHelp: (lvl: number) =>t("upgrades.three_cushion.verbose_description",{max: lvl * 3}), fullHelp: (lvl: number) =>
t("upgrades.three_cushion.verbose_description", { max: lvl * 3 }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -285,7 +309,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.trampoline.name"), name: t("upgrades.trampoline.name"),
help: (lvl: number) => t("upgrades.trampoline.tooltip", { lvl }), help: (lvl: number) => t("upgrades.trampoline.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.trampoline.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.trampoline.verbose_description", { lvl }),
}, },
{ {
@ -297,7 +322,7 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.zen.name"), name: t("upgrades.zen.name"),
help: (lvl: number) => t("upgrades.zen.tooltip", { lvl }), help: (lvl: number) => t("upgrades.zen.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.zen.verbose_description",{lvl}), fullHelp: (lvl: number) => t("upgrades.zen.verbose_description", { lvl }),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -308,7 +333,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.asceticism.name"), name: t("upgrades.asceticism.name"),
help: (lvl: number) => t("upgrades.asceticism.tooltip", { combo: lvl * 3 }), help: (lvl: number) => t("upgrades.asceticism.tooltip", { combo: lvl * 3 }),
fullHelp: (lvl: number) =>t("upgrades.asceticism.verbose_description",{combo: lvl * 3}), fullHelp: (lvl: number) =>
t("upgrades.asceticism.verbose_description", { combo: lvl * 3 }),
}, },
// Regular // Regular
@ -321,7 +347,8 @@ export const rawUpgrades = [
max: 4, max: 4,
name: t("upgrades.pierce_color.name"), name: t("upgrades.pierce_color.name"),
help: (lvl: number) => t("upgrades.pierce_color.tooltip", { lvl }), help: (lvl: number) => t("upgrades.pierce_color.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.pierce_color.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.pierce_color.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -332,7 +359,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.pierce.name"), name: t("upgrades.pierce.name"),
help: (lvl: number) => t("upgrades.pierce.tooltip", { count: 3 * lvl }), help: (lvl: number) => t("upgrades.pierce.tooltip", { count: 3 * lvl }),
fullHelp: (lvl: number) =>t("upgrades.pierce.verbose_description",{count: 3 * lvl}), fullHelp: (lvl: number) =>
t("upgrades.pierce.verbose_description", { count: 3 * lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -343,7 +371,8 @@ export const rawUpgrades = [
max: 6, max: 6,
name: t("upgrades.multiball.name"), name: t("upgrades.multiball.name"),
help: (lvl: number) => t("upgrades.multiball.tooltip", { count: lvl + 1 }), help: (lvl: number) => t("upgrades.multiball.tooltip", { count: lvl + 1 }),
fullHelp: (lvl: number) =>t("upgrades.multiball.verbose_description",{count: lvl + 1}), fullHelp: (lvl: number) =>
t("upgrades.multiball.verbose_description", { count: lvl + 1 }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -354,7 +383,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.ball_repulse_ball.name"), name: t("upgrades.ball_repulse_ball.name"),
help: (lvl: number) => t("upgrades.ball_repulse_ball.tooltip"), help: (lvl: number) => t("upgrades.ball_repulse_ball.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.ball_repulse_ball.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.ball_repulse_ball.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -365,7 +395,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.ball_attract_ball.name"), name: t("upgrades.ball_attract_ball.name"),
help: (lvl: number) => t("upgrades.ball_attract_ball.tooltip"), help: (lvl: number) => t("upgrades.ball_attract_ball.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.ball_attract_ball.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.ball_attract_ball.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -375,8 +406,9 @@ export const rawUpgrades = [
id: "puck_repulse_ball", id: "puck_repulse_ball",
max: 2, max: 2,
name: t("upgrades.puck_repulse_ball.name"), name: t("upgrades.puck_repulse_ball.name"),
help: (lvl: number) =>t("upgrades.puck_repulse_ball.tooltip"), help: (lvl: number) => t("upgrades.puck_repulse_ball.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.puck_repulse_ball.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.puck_repulse_ball.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -386,8 +418,8 @@ export const rawUpgrades = [
id: "wind", id: "wind",
max: 3, max: 3,
name: t("upgrades.wind.name"), name: t("upgrades.wind.name"),
help: (lvl: number) => t("upgrades.wind.tooltip") , help: (lvl: number) => t("upgrades.wind.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.wind.verbose_description",{lvl}), fullHelp: (lvl: number) => t("upgrades.wind.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -398,7 +430,8 @@ export const rawUpgrades = [
max: 3, 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: (lvl: number) =>t("upgrades.helium.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.helium.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -409,7 +442,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.bricks_attract_coins.name"), name: t("upgrades.bricks_attract_coins.name"),
help: (lvl: number) => t("upgrades.bricks_attract_coins.tooltip", { lvl }), help: (lvl: number) => t("upgrades.bricks_attract_coins.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.bricks_attract_coins.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.bricks_attract_coins.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -420,7 +454,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.wrap_left.name"), name: t("upgrades.wrap_left.name"),
help: () => t("upgrades.wrap_left.tooltip"), help: () => t("upgrades.wrap_left.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.wrap_left.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.wrap_left.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -431,7 +466,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.wrap_right.name"), name: t("upgrades.wrap_right.name"),
help: () => t("upgrades.wrap_right.tooltip"), help: () => t("upgrades.wrap_right.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.wrap_right.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.wrap_right.verbose_description", { lvl }),
}, },
{ {
@ -447,9 +483,11 @@ export const rawUpgrades = [
percent: Math.floor(100 * comboKeepingRate(lvl)), percent: Math.floor(100 * comboKeepingRate(lvl)),
delay: (3 / lvl).toFixed(2), delay: (3 / lvl).toFixed(2),
}), }),
fullHelp: (lvl: number) =>t("upgrades.respawn.verbose_description",{ fullHelp: (lvl: number) =>
t("upgrades.respawn.verbose_description", {
percent: Math.floor(100 * comboKeepingRate(lvl)), percent: Math.floor(100 * comboKeepingRate(lvl)),
delay: (3 / lvl).toFixed(2),}), delay: (3 / lvl).toFixed(2),
}),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -464,9 +502,11 @@ export const rawUpgrades = [
percent: lvl * 10, percent: lvl * 10,
multiplier: 1 + lvl, multiplier: 1 + lvl,
}), }),
fullHelp: (lvl: number) =>t("upgrades.double_or_nothing.verbose_description",{ fullHelp: (lvl: number) =>
t("upgrades.double_or_nothing.verbose_description", {
percent: lvl * 10, percent: lvl * 10,
multiplier: 1 + lvl,}), multiplier: 1 + lvl,
}),
}, },
{ {
@ -478,7 +518,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.unbounded.name"), name: t("upgrades.unbounded.name"),
help: (lvl: number) => t("upgrades.unbounded.tooltip", { lvl }), help: (lvl: number) => t("upgrades.unbounded.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.unbounded.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.unbounded.verbose_description", { lvl }),
}, },
{ {
@ -490,7 +531,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.etherealcoins.name"), name: t("upgrades.etherealcoins.name"),
help: (lvl: number) => t("upgrades.etherealcoins.tooltip"), help: (lvl: number) => t("upgrades.etherealcoins.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.etherealcoins.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.etherealcoins.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -501,7 +543,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.shocks.name"), name: t("upgrades.shocks.name"),
help: (lvl: number) => t("upgrades.shocks.tooltip"), help: (lvl: number) => t("upgrades.shocks.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.shocks.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.shocks.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -512,7 +555,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.sacrifice.name"), name: t("upgrades.sacrifice.name"),
help: (lvl: number) => t("upgrades.sacrifice.tooltip"), help: (lvl: number) => t("upgrades.sacrifice.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.sacrifice.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.sacrifice.verbose_description", { lvl }),
}, },
{ {
@ -524,7 +568,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.ghost_coins.name"), name: t("upgrades.ghost_coins.name"),
help: (lvl: number) => t("upgrades.ghost_coins.tooltip", { lvl }), help: (lvl: number) => t("upgrades.ghost_coins.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.ghost_coins.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.ghost_coins.verbose_description", { lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -535,7 +580,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.forgiving.name"), name: t("upgrades.forgiving.name"),
help: (lvl: number) => t("upgrades.forgiving.tooltip"), help: (lvl: number) => t("upgrades.forgiving.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.forgiving.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.forgiving.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -546,7 +592,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.ball_attracts_coins.name"), name: t("upgrades.ball_attracts_coins.name"),
help: (lvl: number) => t("upgrades.ball_attracts_coins.tooltip"), help: (lvl: number) => t("upgrades.ball_attracts_coins.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.ball_attracts_coins.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.ball_attracts_coins.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -557,7 +604,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.clairvoyant.name"), name: t("upgrades.clairvoyant.name"),
help: (lvl: number) => t("upgrades.clairvoyant.tooltip"), help: (lvl: number) => t("upgrades.clairvoyant.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.clairvoyant.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.clairvoyant.verbose_description", { lvl }),
}, },
{ {
@ -569,7 +617,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.implosions.name"), name: t("upgrades.implosions.name"),
help: (lvl: number) => t("upgrades.implosions.tooltip"), help: (lvl: number) => t("upgrades.implosions.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.implosions.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.implosions.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -580,7 +629,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.corner_shot.name"), name: t("upgrades.corner_shot.name"),
help: (lvl: number) => t("upgrades.corner_shot.tooltip"), help: (lvl: number) => t("upgrades.corner_shot.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.corner_shot.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.corner_shot.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -591,7 +641,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.limitless.name"), name: t("upgrades.limitless.name"),
help: (lvl: number) => t("upgrades.limitless.tooltip", { lvl }), help: (lvl: number) => t("upgrades.limitless.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.limitless.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.limitless.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -602,7 +653,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.trickledown.name"), name: t("upgrades.trickledown.name"),
help: (lvl: number) => t("upgrades.trickledown.tooltip", { lvl }), help: (lvl: number) => t("upgrades.trickledown.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.trickledown.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.trickledown.verbose_description", { lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -614,7 +666,11 @@ export const rawUpgrades = [
name: t("upgrades.transparency.name"), name: t("upgrades.transparency.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.transparency.tooltip", { lvl, percent: lvl * 50 }), t("upgrades.transparency.tooltip", { lvl, percent: lvl * 50 }),
fullHelp: (lvl: number) =>t("upgrades.transparency.verbose_description",{lvl, percent: lvl * 50}), fullHelp: (lvl: number) =>
t("upgrades.transparency.verbose_description", {
lvl,
percent: lvl * 50,
}),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -625,7 +681,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.superhot.name"), name: t("upgrades.superhot.name"),
help: (lvl: number) => t("upgrades.superhot.tooltip", { lvl }), help: (lvl: number) => t("upgrades.superhot.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.superhot.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.superhot.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -636,7 +693,8 @@ export const rawUpgrades = [
max: 7, max: 7,
name: t("upgrades.rainbow.name"), name: t("upgrades.rainbow.name"),
help: (lvl: number) => t("upgrades.rainbow.tooltip", { lvl }), help: (lvl: number) => t("upgrades.rainbow.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.rainbow.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.rainbow.verbose_description", { lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -647,7 +705,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.golden_goose.name"), name: t("upgrades.golden_goose.name"),
help: (lvl: number) => t("upgrades.golden_goose.tooltip", { lvl }), help: (lvl: number) => t("upgrades.golden_goose.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.golden_goose.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.golden_goose.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -659,7 +718,8 @@ export const rawUpgrades = [
name: t("upgrades.bricks_attract_ball.name"), name: t("upgrades.bricks_attract_ball.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.bricks_attract_ball.tooltip", { count: lvl * 3 }), t("upgrades.bricks_attract_ball.tooltip", { count: lvl * 3 }),
fullHelp: (lvl: number) =>t("upgrades.bricks_attract_ball.verbose_description",{count: lvl * 3}), fullHelp: (lvl: number) =>
t("upgrades.bricks_attract_ball.verbose_description", { count: lvl * 3 }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -670,7 +730,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.buoy.name"), name: t("upgrades.buoy.name"),
help: (lvl: number) => t("upgrades.buoy.tooltip", { duration: lvl * 0.5 }), help: (lvl: number) => t("upgrades.buoy.tooltip", { duration: lvl * 0.5 }),
fullHelp: (lvl: number) =>t("upgrades.buoy.verbose_description",{duration: lvl * 0.5}), fullHelp: (lvl: number) =>
t("upgrades.buoy.verbose_description", { duration: lvl * 0.5 }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -681,7 +742,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.ottawa_treaty.name"), name: t("upgrades.ottawa_treaty.name"),
help: () => t("upgrades.ottawa_treaty.tooltip"), help: () => t("upgrades.ottawa_treaty.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.ottawa_treaty.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.ottawa_treaty.verbose_description", { lvl }),
}, },
{ {
@ -693,7 +755,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.sticky_coins.name"), name: t("upgrades.sticky_coins.name"),
help: (lvl: number) => t("upgrades.sticky_coins.tooltip"), help: (lvl: number) => t("upgrades.sticky_coins.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.sticky_coins.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.sticky_coins.verbose_description", { lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -705,7 +768,8 @@ export const rawUpgrades = [
name: t("upgrades.base_combo.name"), name: t("upgrades.base_combo.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.base_combo.tooltip", { coins: 1 + lvl * 3 }), t("upgrades.base_combo.tooltip", { coins: 1 + lvl * 3 }),
fullHelp: (lvl: number) =>t("upgrades.base_combo.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.base_combo.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -716,7 +780,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.viscosity.name"), name: t("upgrades.viscosity.name"),
help: () => t("upgrades.viscosity.tooltip"), help: () => t("upgrades.viscosity.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.viscosity.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.viscosity.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -727,7 +792,8 @@ export const rawUpgrades = [
max: 3, max: 3,
name: t("upgrades.coin_magnet.name"), name: t("upgrades.coin_magnet.name"),
help: (lvl: number) => t("upgrades.coin_magnet.tooltip"), help: (lvl: number) => t("upgrades.coin_magnet.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.coin_magnet.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.coin_magnet.verbose_description", { lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -739,7 +805,8 @@ export const rawUpgrades = [
name: t("upgrades.smaller_puck.name"), name: t("upgrades.smaller_puck.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.smaller_puck.tooltip", { percent: 50 * lvl }), t("upgrades.smaller_puck.tooltip", { percent: 50 * lvl }),
fullHelp: (lvl: number) =>t("upgrades.smaller_puck.verbose_description",{percent: 50 * lvl}), fullHelp: (lvl: number) =>
t("upgrades.smaller_puck.verbose_description", { percent: 50 * lvl }),
}, },
{ {
category: categories.advanced, category: categories.advanced,
@ -750,7 +817,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.metamorphosis.name"), name: t("upgrades.metamorphosis.name"),
help: (lvl: number) => t("upgrades.metamorphosis.tooltip", { lvl }), help: (lvl: number) => t("upgrades.metamorphosis.tooltip", { lvl }),
fullHelp: (lvl: number) =>t("upgrades.metamorphosis.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.metamorphosis.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -761,7 +829,8 @@ export const rawUpgrades = [
max: 7, max: 7,
name: t("upgrades.sapper.name"), name: t("upgrades.sapper.name"),
help: (lvl: number) => t("upgrades.sapper.tooltip"), help: (lvl: number) => t("upgrades.sapper.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.sapper.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.sapper.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -772,7 +841,8 @@ export const rawUpgrades = [
max: 1, max: 1,
name: t("upgrades.bigger_explosions.name"), name: t("upgrades.bigger_explosions.name"),
help: (lvl: number) => t("upgrades.bigger_explosions.tooltip"), help: (lvl: number) => t("upgrades.bigger_explosions.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.bigger_explosions.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.bigger_explosions.verbose_description", { lvl }),
}, },
{ {
category: categories.simple, category: categories.simple,
@ -785,7 +855,8 @@ export const rawUpgrades = [
name: t("upgrades.extra_levels.name"), name: t("upgrades.extra_levels.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.extra_levels.tooltip", { count: lvl + 7 }), t("upgrades.extra_levels.tooltip", { count: lvl + 7 }),
fullHelp: (lvl: number) =>t("upgrades.extra_levels.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.extra_levels.verbose_description", { lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -796,7 +867,8 @@ export const rawUpgrades = [
max: 7, max: 7,
name: t("upgrades.fountain_toss.name"), name: t("upgrades.fountain_toss.name"),
help: () => t("upgrades.fountain_toss.tooltip"), help: () => t("upgrades.fountain_toss.tooltip"),
fullHelp: (lvl: number) =>t("upgrades.fountain_toss.verbose_description",{lvl}), fullHelp: (lvl: number) =>
t("upgrades.fountain_toss.verbose_description", { lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -806,8 +878,10 @@ export const rawUpgrades = [
id: "minefield", id: "minefield",
max: 3, max: 3,
name: t("upgrades.minefield.name"), name: t("upgrades.minefield.name"),
help: (lvl: number) => t("upgrades.minefield.tooltip", { percent:10*lvl }), help: (lvl: number) =>
fullHelp: (lvl: number) =>t("upgrades.minefield.verbose_description",{percent:10*lvl}), t("upgrades.minefield.tooltip", { percent: 10 * lvl }),
fullHelp: (lvl: number) =>
t("upgrades.minefield.verbose_description", { percent: 10 * lvl }),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -821,8 +895,10 @@ export const rawUpgrades = [
t("upgrades.soft_reset.tooltip", { t("upgrades.soft_reset.tooltip", {
percent: Math.round(comboKeepingRate(lvl) * 100), percent: Math.round(comboKeepingRate(lvl) * 100),
}), }),
fullHelp: (lvl: number) =>t("upgrades.soft_reset.verbose_description",{ fullHelp: (lvl: number) =>
percent: Math.round(comboKeepingRate(lvl) * 100),}), t("upgrades.soft_reset.verbose_description", {
percent: Math.round(comboKeepingRate(lvl) * 100),
}),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -836,8 +912,10 @@ export const rawUpgrades = [
t("upgrades.shunt.tooltip", { t("upgrades.shunt.tooltip", {
percent: Math.round(comboKeepingRate(lvl) * 100), percent: Math.round(comboKeepingRate(lvl) * 100),
}), }),
fullHelp: (lvl: number) =>t("upgrades.shunt.verbose_description",{ fullHelp: (lvl: number) =>
percent: Math.round(comboKeepingRate(lvl) * 100),}), t("upgrades.shunt.verbose_description", {
percent: Math.round(comboKeepingRate(lvl) * 100),
}),
}, },
{ {
category: categories.combo, category: categories.combo,
@ -849,7 +927,11 @@ export const rawUpgrades = [
name: t("upgrades.passive_income.name"), name: t("upgrades.passive_income.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.passive_income.tooltip", { time: lvl * 0.25, lvl }), t("upgrades.passive_income.tooltip", { time: lvl * 0.25, lvl }),
fullHelp: (lvl: number) =>t("upgrades.passive_income.verbose_description",{time: lvl * 0.25, lvl}), fullHelp: (lvl: number) =>
t("upgrades.passive_income.verbose_description", {
time: lvl * 0.25,
lvl,
}),
}, },
{ {
category: categories.combo_boost, category: categories.combo_boost,
@ -861,6 +943,10 @@ export const rawUpgrades = [
name: t("upgrades.sturdy_bricks.name"), name: t("upgrades.sturdy_bricks.name"),
help: (lvl: number) => help: (lvl: number) =>
t("upgrades.sturdy_bricks.tooltip", { lvl, percent: lvl * 50 }), t("upgrades.sturdy_bricks.tooltip", { lvl, percent: lvl * 50 }),
fullHelp: (lvl: number) =>t("upgrades.sturdy_bricks.verbose_description",{lvl, percent: lvl * 50}), fullHelp: (lvl: number) =>
t("upgrades.sturdy_bricks.verbose_description", {
lvl,
percent: lvl * 50,
}),
}, },
] as const; ] as const;