mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-26 15:06:16 -04:00
wip
This commit is contained in:
parent
401e9b4548
commit
62a1feb015
32 changed files with 1483 additions and 1435 deletions
11
Readme.md
11
Readme.md
|
@ -14,17 +14,20 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
|
||||||
# Changelog
|
# Changelog
|
||||||
## To do
|
## To do
|
||||||
|
|
||||||
- wording of combo per brick *broken*
|
|
||||||
- rename hypnosis
|
- rename hypnosis
|
||||||
- more icons
|
|
||||||
- save global stats locally (sum of broken bricks, paddle hits, misses,)
|
- save global stats locally (sum of broken bricks, paddle hits, misses,)
|
||||||
|
|
||||||
## Done
|
## Done
|
||||||
|
|
||||||
- new level : Blinky by Big Goober
|
- extra life are transparent when you have 2+ balls
|
||||||
- color coded perks (green = noob friendly, red = combo with reset condition)
|
- categorized the icons
|
||||||
|
- color coded the icons
|
||||||
|
- changed the wording of perks help to be shorter
|
||||||
|
- added tooltips on perks with full help, and a help button on mobile
|
||||||
|
- wording of "combo per brick *broken*"
|
||||||
- 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
|
||||||
|
|
||||||
## 29088680
|
## 29088680
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,8 @@ android {
|
||||||
applicationId = "me.lecaro.breakout"
|
applicationId = "me.lecaro.breakout"
|
||||||
minSdk = 21
|
minSdk = 21
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 29090246
|
versionCode = 29090261
|
||||||
versionName = "29090246"
|
versionName = "29090261"
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
vectorDrawables {
|
vectorDrawables {
|
||||||
useSupportLibrary = true
|
useSupportLibrary = true
|
||||||
|
|
1
app/src/main/assets/index.html
Normal file
1
app/src/main/assets/index.html
Normal file
File diff suppressed because one or more lines are too long
553
dist/index.html
vendored
553
dist/index.html
vendored
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
||||||
// The version of the cache.
|
// The version of the cache.
|
||||||
const VERSION = "29090246";
|
const VERSION = "29090261";
|
||||||
|
|
||||||
// The name of the cache
|
// The name of the cache
|
||||||
const CACHE_NAME = `breakout-71-${VERSION}`;
|
const CACHE_NAME = `breakout-71-${VERSION}`;
|
||||||
|
|
|
@ -140,22 +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.className = "help";
|
helpBtn.setAttribute('data-help-content',tooltip);
|
||||||
let helpTooltip = document.createElement("div");
|
button.appendChild(helpBtn)
|
||||||
helpTooltip.textContent = tooltip;
|
|
||||||
helpTooltip.className = "help_button_tooltip";
|
|
||||||
helpBtn.addEventListener("click", (e) => {
|
|
||||||
e.stopPropagation();
|
|
||||||
});
|
|
||||||
helpBtn.addEventListener("touchstart", (e) => {
|
|
||||||
e.stopPropagation();
|
|
||||||
document.body.appendChild(helpTooltip);
|
|
||||||
});
|
|
||||||
helpBtn.addEventListener("touchend", (e) => {
|
|
||||||
document.body.removeChild(helpTooltip);
|
|
||||||
});
|
|
||||||
|
|
||||||
button.appendChild(helpBtn);
|
|
||||||
} else {
|
} else {
|
||||||
button.setAttribute("data-tooltip", tooltip);
|
button.setAttribute("data-tooltip", tooltip);
|
||||||
}
|
}
|
||||||
|
@ -199,3 +185,4 @@ function updateAlertsOpen(delta: number) {
|
||||||
}
|
}
|
||||||
document.body.classList[alertsOpen ? "add" : "remove"]("has-alert-open");
|
document.body.classList[alertsOpen ? "add" : "remove"]("has-alert-open");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ export async function openCreativeModePerksPicker() {
|
||||||
...upgrades
|
...upgrades
|
||||||
.filter((u) => !noCreative.includes(u.id))
|
.filter((u) => !noCreative.includes(u.id))
|
||||||
.map((u) => ({
|
.map((u) => ({
|
||||||
icon: icons['icon:'+u.id],
|
icon: icons["icon:" + u.id],
|
||||||
text: u.name,
|
text: u.name,
|
||||||
help:
|
help:
|
||||||
(creativeModePerks[u.id] || 0) +
|
(creativeModePerks[u.id] || 0) +
|
||||||
|
|
|
@ -272,7 +272,7 @@
|
||||||
{
|
{
|
||||||
"name": "icon:passive_income",
|
"name": "icon:passive_income",
|
||||||
"size": 8,
|
"size": 8,
|
||||||
"bricks": "_ttttt___ttt_t______yW_____________y______________WWW_______y___",
|
"bricks": "_ttttt___ttt_t______yW_____________y______________WWW_______r___",
|
||||||
"credit": ""
|
"credit": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -398,7 +398,7 @@
|
||||||
{
|
{
|
||||||
"name": "icon:smaller_puck",
|
"name": "icon:smaller_puck",
|
||||||
"size": 8,
|
"size": 8,
|
||||||
"bricks": "_________bbbbbb__bbbbbb_____________y_____________________yy____",
|
"bricks": "_________tttttt__tttttt_____________W_____________________yy____",
|
||||||
"credit": ""
|
"credit": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -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\""
|
||||||
}
|
}
|
||||||
]
|
]
|
|
@ -1 +1 @@
|
||||||
"29090246"
|
"29090261"
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
* {
|
* {
|
||||||
font-family:
|
font-family: Courier New,
|
||||||
Courier New,
|
Courier,
|
||||||
Courier,
|
Lucida Sans Typewriter,
|
||||||
Lucida Sans Typewriter,
|
Lucida Typewriter,
|
||||||
Lucida Typewriter,
|
monospace;
|
||||||
monospace;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +141,7 @@ body:not(.has-alert-open) #popup {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: stretch;
|
align-items: stretch;
|
||||||
|
|
||||||
button {
|
> button {
|
||||||
font: inherit;
|
font: inherit;
|
||||||
background: rgba(0, 0, 0, 0.8);
|
background: rgba(0, 0, 0, 0.8);
|
||||||
color: white;
|
color: white;
|
||||||
|
@ -190,6 +189,22 @@ body:not(.has-alert-open) #popup {
|
||||||
opacity: 0.2;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
button[data-help-content] {
|
||||||
|
border-radius: 4px;
|
||||||
|
outline: none;
|
||||||
|
align-self: flex-start;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
background: #5da3ea;
|
||||||
|
border: none;
|
||||||
|
color: white;
|
||||||
|
text-align: center;
|
||||||
|
flex-grow: 0;
|
||||||
|
flex-shrink: 0;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 22px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -501,9 +516,8 @@ h2.histogram-title strong {
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
transition:
|
transition: opacity 200ms,
|
||||||
opacity 200ms,
|
transform 200ms;
|
||||||
transform 200ms;
|
|
||||||
z-index: 7;
|
z-index: 7;
|
||||||
|
|
||||||
&.hidden {
|
&.hidden {
|
||||||
|
@ -603,13 +617,3 @@ h2.histogram-title strong {
|
||||||
opacity: 0.8;
|
opacity: 0.8;
|
||||||
color: #8a8a8a;
|
color: #8a8a8a;
|
||||||
}
|
}
|
||||||
|
|
||||||
.help_button_tooltip {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 8;
|
|
||||||
left: 0;
|
|
||||||
top: 0;
|
|
||||||
background: black;
|
|
||||||
padding: 20px;
|
|
||||||
border-bottom: 1px solid white;
|
|
||||||
}
|
|
||||||
|
|
|
@ -300,6 +300,7 @@ export async function openUpgradesPicker(gameState: GameState) {
|
||||||
value: PerkId | "reroll";
|
value: PerkId | "reroll";
|
||||||
help: string;
|
help: string;
|
||||||
className: string;
|
className: string;
|
||||||
|
tooltip: string;
|
||||||
}> = pickRandomUpgrades(gameState, 3 + gameState.perks.one_more_choice);
|
}> = pickRandomUpgrades(gameState, 3 + gameState.perks.one_more_choice);
|
||||||
if (!actions.length) break;
|
if (!actions.length) break;
|
||||||
|
|
||||||
|
@ -913,20 +914,20 @@ async function openUnlockedUpgradesList() {
|
||||||
const ts = getTotalScore();
|
const ts = getTotalScore();
|
||||||
const upgradeActions = upgrades
|
const upgradeActions = upgrades
|
||||||
.sort((a, b) => a.threshold - b.threshold)
|
.sort((a, b) => a.threshold - b.threshold)
|
||||||
.map(({ name, id, threshold, icon, help, category, fullHelp }) => ({
|
.map(({ name, id, threshold, help, category, fullHelp }) => ({
|
||||||
text: name,
|
text: name,
|
||||||
disabled: ts < threshold,
|
disabled: ts < threshold,
|
||||||
value: {
|
value: {
|
||||||
perks: { [id]: 1 },
|
perks: { [id]: 1 },
|
||||||
level: allLevelsAndIcons.find((l) => l.name === "icon:" + id),
|
level: allLevelsAndIcons.find((l) => l.name === "icon:" + id),
|
||||||
} as RunParams,
|
} as RunParams,
|
||||||
icon,
|
icon: icons["icon:" + id],
|
||||||
category,
|
category,
|
||||||
help:
|
help:
|
||||||
ts < threshold
|
ts < threshold
|
||||||
? t("unlocks.minTotalScore", { score: threshold })
|
? t("unlocks.minTotalScore", { score: threshold })
|
||||||
: help(1),
|
: help(1),
|
||||||
tooltip: ts < threshold ? "" : fullHelp,
|
tooltip: ts < threshold ? "" : fullHelp(1)+ ' [id:'+id+ ']',
|
||||||
}));
|
}));
|
||||||
|
|
||||||
const tryOn = await asyncAlert<RunParams>({
|
const tryOn = await asyncAlert<RunParams>({
|
||||||
|
|
|
@ -608,6 +608,7 @@ export function pickRandomUpgrades(gameState: GameState, count: number) {
|
||||||
value: u.id as PerkId,
|
value: u.id as PerkId,
|
||||||
help: u.help(gameState.perks[u.id] + 1),
|
help: u.help(gameState.perks[u.id] + 1),
|
||||||
className: "upgrade ",
|
className: "upgrade ",
|
||||||
|
tooltip: u.fullHelp(gameState.perks[u.id] + 1),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,7 @@ export function pickedUpgradesHTMl(gameState: GameState) {
|
||||||
state,
|
state,
|
||||||
html: `
|
html: `
|
||||||
<div class="upgrade ${["??", "used", "banned", "free"][state]}">
|
<div class="upgrade ${["??", "used", "banned", "free"][state]}">
|
||||||
${icons['icon:'+u.id]}
|
${icons["icon:" + u.id]}
|
||||||
<p>
|
<p>
|
||||||
<strong>${u.name}</strong>
|
<strong>${u.name}</strong>
|
||||||
${u.help(Math.max(1, gameState.perks[u.id]))}
|
${u.help(Math.max(1, gameState.perks[u.id]))}
|
||||||
|
|
|
@ -39,14 +39,14 @@ export function helpMenuEntry() {
|
||||||
...upgrades.map(
|
...upgrades.map(
|
||||||
(u) => `
|
(u) => `
|
||||||
<div class="upgrade used">
|
<div class="upgrade used">
|
||||||
${icons['icon:'+u.id]}
|
${icons["icon:" + u.id]}
|
||||||
<p>
|
<p>
|
||||||
<strong>${u.name}</strong><br/>
|
<strong>${u.name}</strong><br/>
|
||||||
${u.help(1)}
|
${u.help(1)}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
${miniMarkDown(u.fullHelp)}
|
${miniMarkDown(u.fullHelp(1))}
|
||||||
`,
|
`,
|
||||||
),
|
),
|
||||||
"<h2>" + t("help.levels") + "</h2>",
|
"<h2>" + t("help.levels") + "</h2>",
|
||||||
|
|
|
@ -263,7 +263,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": "تبدأ المجموعة عند {{coins}} بدلاً من 1.",
|
"upgrades.base_combo.tooltip": "",
|
||||||
"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": "انفجارات أكبر",
|
||||||
|
@ -305,7 +305,6 @@
|
||||||
"upgrades.extra_levels.name": "5 دقائق إضافية",
|
"upgrades.extra_levels.name": "5 دقائق إضافية",
|
||||||
"upgrades.extra_levels.tooltip": "العب {{count}} مستوى بدلاً من 7",
|
"upgrades.extra_levels.tooltip": "العب {{count}} مستوى بدلاً من 7",
|
||||||
"upgrades.extra_levels.verbose_description": "يمكن أن تستمر اللعبة الافتراضية لسبعة مستويات كحد أقصى، تنتهي بعدها.\n\nيتيح لك كل مستوى من هذه الميزة الانتقال إلى مستوى أعلى. غالبًا ما تكون المستويات الأخيرة هي التي تحقق فيها أعلى النقاط، لذا قد يكون الفرق كبيرًا.",
|
"upgrades.extra_levels.verbose_description": "يمكن أن تستمر اللعبة الافتراضية لسبعة مستويات كحد أقصى، تنتهي بعدها.\n\nيتيح لك كل مستوى من هذه الميزة الانتقال إلى مستوى أعلى. غالبًا ما تكون المستويات الأخيرة هي التي تحقق فيها أعلى النقاط، لذا قد يكون الفرق كبيرًا.",
|
||||||
"upgrades.extra_life.help_plural": "سترتد الكرة (الأخيرة) إلى الأسفل بدلاً من أن تضيع ({{lvl}} مرة).",
|
|
||||||
"upgrades.extra_life.name": "حياة إضافية",
|
"upgrades.extra_life.name": "حياة إضافية",
|
||||||
"upgrades.extra_life.tooltip": "سترتد الكرة مرة واحدة على الخط السفلي قبل أن تضيع.",
|
"upgrades.extra_life.tooltip": "سترتد الكرة مرة واحدة على الخط السفلي قبل أن تضيع.",
|
||||||
"upgrades.extra_life.verbose_description": "عادةً، لديك كرة واحدة، وتنتهي اللعبة بمجرد إسقاطها.\n\nتضيف هذه الميزة شريطًا أبيض أسفل الشاشة يحفظ الكرة مرة واحدة، ثم ينكسر أثناء ذلك.\n\nستخسر مستوى واحدًا من هذه الميزة في كل مرة ترتد فيها كرة أسفل الشاشة.",
|
"upgrades.extra_life.verbose_description": "عادةً، لديك كرة واحدة، وتنتهي اللعبة بمجرد إسقاطها.\n\nتضيف هذه الميزة شريطًا أبيض أسفل الشاشة يحفظ الكرة مرة واحدة، ثم ينكسر أثناء ذلك.\n\nستخسر مستوى واحدًا من هذه الميزة في كل مرة ترتد فيها كرة أسفل الشاشة.",
|
||||||
|
@ -385,9 +384,8 @@
|
||||||
"upgrades.right_is_lava.name": "تجنب الجانب الأيمن",
|
"upgrades.right_is_lava.name": "تجنب الجانب الأيمن",
|
||||||
"upgrades.right_is_lava.tooltip": "+{{lvl}} مجموعة لكل مكعب. تُعاد المجموعة إلى وضعها الطبيعي إذا ضربت الكرة الجانب الأيسر من الشاشة.",
|
"upgrades.right_is_lava.tooltip": "+{{lvl}} مجموعة لكل مكعب. تُعاد المجموعة إلى وضعها الطبيعي إذا ضربت الكرة الجانب الأيسر من الشاشة.",
|
||||||
"upgrades.right_is_lava.verbose_description": "كلما كسرتَ لبنة، ستزداد مجموعتكَ بواحدة، ما يعني أنك ستحصل على عملة إضافية من كل لبنة تكسرها لاحقًا.\n\nمع ذلك، ستُعاد ضبط مجموعتكَ حالما تصطدم كرتكَ بالجانب الأيمن.\n\nبمجرد أن ترتفع مجموعتكَ، يصبح الجانب الأيمن أحمر لتذكيرك بضرورة تجنب ضربها.\n\n",
|
"upgrades.right_is_lava.verbose_description": "كلما كسرتَ لبنة، ستزداد مجموعتكَ بواحدة، ما يعني أنك ستحصل على عملة إضافية من كل لبنة تكسرها لاحقًا.\n\nمع ذلك، ستُعاد ضبط مجموعتكَ حالما تصطدم كرتكَ بالجانب الأيمن.\n\nبمجرد أن ترتفع مجموعتكَ، يصبح الجانب الأيمن أحمر لتذكيرك بضرورة تجنب ضربها.\n\n",
|
||||||
"upgrades.sacrifice.help_l1": "فقدان الحياة يزيل كل الطوب",
|
|
||||||
"upgrades.sacrifice.help_over": "خسارة حياة {{lvl}}× المجموعة ثم إزالة كل الطوب",
|
|
||||||
"upgrades.sacrifice.name": "تصحية",
|
"upgrades.sacrifice.name": "تصحية",
|
||||||
|
"upgrades.sacrifice.tooltip": "خسارة حياة {{lvl}}× المجموعة ثم إزالة كل الطوب",
|
||||||
"upgrades.sacrifice.verbose_description": "قد يؤدي هذا إلى ارتفاع المجموعة إلى حد كبير.",
|
"upgrades.sacrifice.verbose_description": "قد يؤدي هذا إلى ارتفاع المجموعة إلى حد كبير.",
|
||||||
"upgrades.sapper.help_plural": "أول {{lvl}} طوبة مكسورة تصبح قنابل.",
|
"upgrades.sapper.help_plural": "أول {{lvl}} طوبة مكسورة تصبح قنابل.",
|
||||||
"upgrades.sapper.name": "مهندس",
|
"upgrades.sapper.name": "مهندس",
|
||||||
|
@ -405,7 +403,6 @@
|
||||||
"upgrades.side_kick.name": "عسراء",
|
"upgrades.side_kick.name": "عسراء",
|
||||||
"upgrades.side_kick.tooltip": "+{{lvl}} مجموعة لكل لبنة مكسورة من اليسار، -{{loss}} خلاف ذلك",
|
"upgrades.side_kick.tooltip": "+{{lvl}} مجموعة لكل لبنة مكسورة من اليسار، -{{loss}} خلاف ذلك",
|
||||||
"upgrades.side_kick.verbose_description": "اضرب الطوبة على جانبها الأيسر لتحصل على ضربة كومبو واحدة، لكن تجنب ضربها على الجانب الأيمن لأن ذلك سيُزيل ضربتين كومبو. الضرب من الأعلى والأسفل لا يُجدي نفعًا.",
|
"upgrades.side_kick.verbose_description": "اضرب الطوبة على جانبها الأيسر لتحصل على ضربة كومبو واحدة، لكن تجنب ضربها على الجانب الأيمن لأن ذلك سيُزيل ضربتين كومبو. الضرب من الأعلى والأسفل لا يُجدي نفعًا.",
|
||||||
"upgrades.skip_last.help_plural": "سوف تنفجر آخر {{lvl}} طوبة.",
|
|
||||||
"upgrades.skip_last.name": "تنظيف سهل",
|
"upgrades.skip_last.name": "تنظيف سهل",
|
||||||
"upgrades.skip_last.tooltip": "الطوبة الاخيرة سوف تنفجر",
|
"upgrades.skip_last.tooltip": "الطوبة الاخيرة سوف تنفجر",
|
||||||
"upgrades.skip_last.verbose_description": "عليك كسر جميع الطوب للانتقال إلى المستوى التالي. مع ذلك، قد يكون من الصعب الحصول على الطوب الأخير.\n\nيمنحك إكمال المستوى مبكرًا خيارات إضافية عند الترقية. كما أن عدم تفويت الطوب أبدًا مفيد جدًا.\n\nلذا، إذا واجهت صعوبة في كسر الطوب الأخير، فإن الحصول على هذه الميزة بضع مرات قد يساعدك.",
|
"upgrades.skip_last.verbose_description": "عليك كسر جميع الطوب للانتقال إلى المستوى التالي. مع ذلك، قد يكون من الصعب الحصول على الطوب الأخير.\n\nيمنحك إكمال المستوى مبكرًا خيارات إضافية عند الترقية. كما أن عدم تفويت الطوب أبدًا مفيد جدًا.\n\nلذا، إذا واجهت صعوبة في كسر الطوب الأخير، فإن الحصول على هذه الميزة بضع مرات قد يساعدك.",
|
||||||
|
@ -430,7 +427,6 @@
|
||||||
"upgrades.superhot.name": "حار جدًا",
|
"upgrades.superhot.name": "حار جدًا",
|
||||||
"upgrades.superhot.tooltip": "يتحرك الزمن عندما يتحرك المجداف.",
|
"upgrades.superhot.tooltip": "يتحرك الزمن عندما يتحرك المجداف.",
|
||||||
"upgrades.superhot.verbose_description": "سوبر هوت سوبر هوت سوبر هوت سوبر هوت سوبر هوت",
|
"upgrades.superhot.verbose_description": "سوبر هوت سوبر هوت سوبر هوت سوبر هوت سوبر هوت",
|
||||||
"upgrades.telekinesis.help_plural": "تأثير أقوى على الكرة",
|
|
||||||
"upgrades.telekinesis.name": "التحريك الذهني",
|
"upgrades.telekinesis.name": "التحريك الذهني",
|
||||||
"upgrades.telekinesis.tooltip": "يتحكم المضرب في مسار الكرة",
|
"upgrades.telekinesis.tooltip": "يتحكم المضرب في مسار الكرة",
|
||||||
"upgrades.telekinesis.verbose_description": "تتحكم بالكرة أثناء صعودها.",
|
"upgrades.telekinesis.verbose_description": "تتحكم بالكرة أثناء صعودها.",
|
||||||
|
|
|
@ -10930,41 +10930,6 @@
|
||||||
<folder_node>
|
<folder_node>
|
||||||
<name>extra_life</name>
|
<name>extra_life</name>
|
||||||
<children>
|
<children>
|
||||||
<concept_node>
|
|
||||||
<name>help_plural</name>
|
|
||||||
<description/>
|
|
||||||
<comment/>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>ar-LB</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>de-DE</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-CL</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-FR</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>ru-RU</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>tr-TR</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>name</name>
|
<name>name</name>
|
||||||
<description/>
|
<description/>
|
||||||
|
@ -13860,76 +13825,6 @@
|
||||||
<folder_node>
|
<folder_node>
|
||||||
<name>sacrifice</name>
|
<name>sacrifice</name>
|
||||||
<children>
|
<children>
|
||||||
<concept_node>
|
|
||||||
<name>help_l1</name>
|
|
||||||
<description/>
|
|
||||||
<comment/>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>ar-LB</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>de-DE</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-CL</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-FR</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>ru-RU</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>tr-TR</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
|
||||||
<name>help_over</name>
|
|
||||||
<description/>
|
|
||||||
<comment/>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>ar-LB</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>de-DE</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-CL</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-FR</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>ru-RU</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>tr-TR</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>name</name>
|
<name>name</name>
|
||||||
<description/>
|
<description/>
|
||||||
|
@ -13965,6 +13860,41 @@
|
||||||
</translation>
|
</translation>
|
||||||
</translations>
|
</translations>
|
||||||
</concept_node>
|
</concept_node>
|
||||||
|
<concept_node>
|
||||||
|
<name>tooltip</name>
|
||||||
|
<description/>
|
||||||
|
<comment/>
|
||||||
|
<translations>
|
||||||
|
<translation>
|
||||||
|
<language>ar-LB</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>de-DE</language>
|
||||||
|
<approved>true</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>en-US</language>
|
||||||
|
<approved>true</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>es-CL</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>fr-FR</language>
|
||||||
|
<approved>true</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>ru-RU</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
<translation>
|
||||||
|
<language>tr-TR</language>
|
||||||
|
<approved>false</approved>
|
||||||
|
</translation>
|
||||||
|
</translations>
|
||||||
|
</concept_node>
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>verbose_description</name>
|
<name>verbose_description</name>
|
||||||
<description/>
|
<description/>
|
||||||
|
@ -13988,7 +13918,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>
|
||||||
|
@ -14590,41 +14520,6 @@
|
||||||
<folder_node>
|
<folder_node>
|
||||||
<name>skip_last</name>
|
<name>skip_last</name>
|
||||||
<children>
|
<children>
|
||||||
<concept_node>
|
|
||||||
<name>help_plural</name>
|
|
||||||
<description/>
|
|
||||||
<comment/>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>ar-LB</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>de-DE</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-CL</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-FR</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>ru-RU</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>tr-TR</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>name</name>
|
<name>name</name>
|
||||||
<description/>
|
<description/>
|
||||||
|
@ -15505,41 +15400,6 @@
|
||||||
<folder_node>
|
<folder_node>
|
||||||
<name>telekinesis</name>
|
<name>telekinesis</name>
|
||||||
<children>
|
<children>
|
||||||
<concept_node>
|
|
||||||
<name>help_plural</name>
|
|
||||||
<description/>
|
|
||||||
<comment/>
|
|
||||||
<translations>
|
|
||||||
<translation>
|
|
||||||
<language>ar-LB</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>de-DE</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>en-US</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>es-CL</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>fr-FR</language>
|
|
||||||
<approved>true</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>ru-RU</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
<translation>
|
|
||||||
<language>tr-TR</language>
|
|
||||||
<approved>false</approved>
|
|
||||||
</translation>
|
|
||||||
</translations>
|
|
||||||
</concept_node>
|
|
||||||
<concept_node>
|
<concept_node>
|
||||||
<name>name</name>
|
<name>name</name>
|
||||||
<description/>
|
<description/>
|
||||||
|
|
|
@ -263,7 +263,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": "Combo beginnt bei {{coins}} statt bei 1.",
|
"upgrades.base_combo.tooltip": "",
|
||||||
"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",
|
||||||
|
@ -305,7 +305,6 @@
|
||||||
"upgrades.extra_levels.name": "5 min mehr",
|
"upgrades.extra_levels.name": "5 min mehr",
|
||||||
"upgrades.extra_levels.tooltip": "Spielen Sie {{count}} Stufen statt 7",
|
"upgrades.extra_levels.tooltip": "Spielen Sie {{count}} Stufen statt 7",
|
||||||
"upgrades.extra_levels.verbose_description": "Das Standardspiel kann maximal 7 Stufen dauern, danach ist das Spiel vorbei.\n\nMit jeder Stufe dieses Vorteils können Sie eine Stufe höher gehen. Die letzten Level sind oft diejenigen, in denen man die meisten Punkte macht, so dass der Unterschied dramatisch sein kann.",
|
"upgrades.extra_levels.verbose_description": "Das Standardspiel kann maximal 7 Stufen dauern, danach ist das Spiel vorbei.\n\nMit jeder Stufe dieses Vorteils können Sie eine Stufe höher gehen. Die letzten Level sind oft diejenigen, in denen man die meisten Punkte macht, so dass der Unterschied dramatisch sein kann.",
|
||||||
"upgrades.extra_life.help_plural": "Dein (letzter) Ball wird auf dem Boden aufspringen, anstatt verloren zu gehen ({{lvl}} mal).",
|
|
||||||
"upgrades.extra_life.name": "Extraleben",
|
"upgrades.extra_life.name": "Extraleben",
|
||||||
"upgrades.extra_life.tooltip": "Der Ball prallt einmal auf der unteren Linie auf, bevor er verloren ist.",
|
"upgrades.extra_life.tooltip": "Der Ball prallt einmal auf der unteren Linie auf, bevor er verloren ist.",
|
||||||
"upgrades.extra_life.verbose_description": "Normalerweise hat man nur einen Ball, und das Spiel ist vorbei, sobald man ihn fallen lässt.\n\nDieser Vorteil fügt eine weiße Leiste am unteren Rand des Bildschirms hinzu, die einen Ball einmal speichert und dabei zerbricht.\n\nJedes Mal, wenn ein Ball am unteren Rand des Bildschirms aufprallt, verlierst du eine Stufe dieses Vorteils.",
|
"upgrades.extra_life.verbose_description": "Normalerweise hat man nur einen Ball, und das Spiel ist vorbei, sobald man ihn fallen lässt.\n\nDieser Vorteil fügt eine weiße Leiste am unteren Rand des Bildschirms hinzu, die einen Ball einmal speichert und dabei zerbricht.\n\nJedes Mal, wenn ein Ball am unteren Rand des Bildschirms aufprallt, verlierst du eine Stufe dieses Vorteils.",
|
||||||
|
@ -385,9 +384,8 @@
|
||||||
"upgrades.right_is_lava.name": "Vermeiden Sie die rechte Seite",
|
"upgrades.right_is_lava.name": "Vermeiden Sie die rechte Seite",
|
||||||
"upgrades.right_is_lava.tooltip": "+{{lvl}} Kombo pro Stein. Combo wird zurückgesetzt, wenn der Ball die rechte Seite des Bildschirms trifft.",
|
"upgrades.right_is_lava.tooltip": "+{{lvl}} Kombo pro Stein. Combo wird zurückgesetzt, wenn der Ball die rechte Seite des Bildschirms trifft.",
|
||||||
"upgrades.right_is_lava.verbose_description": "Jedes Mal, wenn du einen Ziegelstein zerbrichst, erhöht sich deine Kombo um eins, so dass du von allen weiteren Ziegelsteinen, die du zerbrichst, eine Münze mehr bekommst.\n\nAllerdings wird deine Kombo zurückgesetzt, sobald dein Ball die rechte Seite trifft.\n\nSobald deine Combo ansteigt, wird die rechte Seite rot, um dich daran zu erinnern, dass du es vermeiden solltest, sie zu treffen.\n",
|
"upgrades.right_is_lava.verbose_description": "Jedes Mal, wenn du einen Ziegelstein zerbrichst, erhöht sich deine Kombo um eins, so dass du von allen weiteren Ziegelsteinen, die du zerbrichst, eine Münze mehr bekommst.\n\nAllerdings wird deine Kombo zurückgesetzt, sobald dein Ball die rechte Seite trifft.\n\nSobald deine Combo ansteigt, wird die rechte Seite rot, um dich daran zu erinnern, dass du es vermeiden solltest, sie zu treffen.\n",
|
||||||
"upgrades.sacrifice.help_l1": "Der Verlust eines Lebens löscht alle Steine",
|
|
||||||
"upgrades.sacrifice.help_over": "Der Verlust eines Lebens {{lvl}}x die Combo löscht dann alle Steine",
|
|
||||||
"upgrades.sacrifice.name": "Opfern Sie",
|
"upgrades.sacrifice.name": "Opfern Sie",
|
||||||
|
"upgrades.sacrifice.tooltip": "Der Verlust eines Lebens {{lvl}}x die Combo löscht dann alle Steine",
|
||||||
"upgrades.sacrifice.verbose_description": "Damit könnte die Kombination ziemlich hoch werden.",
|
"upgrades.sacrifice.verbose_description": "Damit könnte die Kombination ziemlich hoch werden.",
|
||||||
"upgrades.sapper.help_plural": "Die ersten {{lvl}} Steine, die zerbrochen werden, werden zu Bomben.",
|
"upgrades.sapper.help_plural": "Die ersten {{lvl}} Steine, die zerbrochen werden, werden zu Bomben.",
|
||||||
"upgrades.sapper.name": "Sapper",
|
"upgrades.sapper.name": "Sapper",
|
||||||
|
@ -405,7 +403,6 @@
|
||||||
"upgrades.side_kick.name": "Linkshändig",
|
"upgrades.side_kick.name": "Linkshändig",
|
||||||
"upgrades.side_kick.tooltip": "+{{lvl}} Combo pro von links gebrochenem Stein, sonst -{{loss}} ",
|
"upgrades.side_kick.tooltip": "+{{lvl}} Combo pro von links gebrochenem Stein, sonst -{{loss}} ",
|
||||||
"upgrades.side_kick.verbose_description": "Triff den Ziegelstein auf der linken Seite, um einen Combo zu erhalten, aber vermeide es, ihn auf der rechten Seite zu treffen, da dies 2 Combo entfernen würde. Schläge von oben und unten haben keinen Effekt.",
|
"upgrades.side_kick.verbose_description": "Triff den Ziegelstein auf der linken Seite, um einen Combo zu erhalten, aber vermeide es, ihn auf der rechten Seite zu treffen, da dies 2 Combo entfernen würde. Schläge von oben und unten haben keinen Effekt.",
|
||||||
"upgrades.skip_last.help_plural": "Die letzten {{lvl}} Steine werden explodieren.",
|
|
||||||
"upgrades.skip_last.name": "Einfaches Aufräumen",
|
"upgrades.skip_last.name": "Einfaches Aufräumen",
|
||||||
"upgrades.skip_last.tooltip": "Der letzte Stein wird explodieren.",
|
"upgrades.skip_last.tooltip": "Der letzte Stein wird explodieren.",
|
||||||
"upgrades.skip_last.verbose_description": "Du musst alle Steine zerbrechen, um die nächste Ebene zu erreichen. Es kann jedoch schwierig sein, die letzten Steine zu bekommen.\n\nWenn du ein Level früh beendest, hast du zusätzliche Möglichkeiten, um aufzurüsten. Es ist auch sehr vorteilhaft, nie die Steine zu verpassen.\n\nWenn es dir also schwerfällt, die letzten Steine zu zerbrechen, kann es helfen, wenn du diesen Vorteil ein paar Mal bekommst.",
|
"upgrades.skip_last.verbose_description": "Du musst alle Steine zerbrechen, um die nächste Ebene zu erreichen. Es kann jedoch schwierig sein, die letzten Steine zu bekommen.\n\nWenn du ein Level früh beendest, hast du zusätzliche Möglichkeiten, um aufzurüsten. Es ist auch sehr vorteilhaft, nie die Steine zu verpassen.\n\nWenn es dir also schwerfällt, die letzten Steine zu zerbrechen, kann es helfen, wenn du diesen Vorteil ein paar Mal bekommst.",
|
||||||
|
@ -430,7 +427,6 @@
|
||||||
"upgrades.superhot.name": "SUPER HEISS",
|
"upgrades.superhot.name": "SUPER HEISS",
|
||||||
"upgrades.superhot.tooltip": "Die Zeit bewegt sich, wenn sich das Paddel bewegt.",
|
"upgrades.superhot.tooltip": "Die Zeit bewegt sich, wenn sich das Paddel bewegt.",
|
||||||
"upgrades.superhot.verbose_description": "SUPERHEISS SUPERHEISS SUPERHEISS SUPERHEISS",
|
"upgrades.superhot.verbose_description": "SUPERHEISS SUPERHEISS SUPERHEISS SUPERHEISS",
|
||||||
"upgrades.telekinesis.help_plural": "Stärkere Wirkung auf den Ball",
|
|
||||||
"upgrades.telekinesis.name": "Telekinese",
|
"upgrades.telekinesis.name": "Telekinese",
|
||||||
"upgrades.telekinesis.tooltip": "Das Paddel steuert die Flugbahn des Balls",
|
"upgrades.telekinesis.tooltip": "Das Paddel steuert die Flugbahn des Balls",
|
||||||
"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.",
|
||||||
|
|
|
@ -246,10 +246,10 @@
|
||||||
"unlocks.title_upgrades": "You unlocked {{unlocked}} upgrades out of {{out_of}}",
|
"unlocks.title_upgrades": "You unlocked {{unlocked}} upgrades out of {{out_of}}",
|
||||||
"unlocks.upgrades": "Unlocked upgrades",
|
"unlocks.upgrades": "Unlocked upgrades",
|
||||||
"upgrades.addiction.name": "Addiction",
|
"upgrades.addiction.name": "Addiction",
|
||||||
"upgrades.addiction.tooltip": "+{{lvl}} combo / brick broken, combo resets {{delay}}s after breaking a brick. ",
|
"upgrades.addiction.tooltip": "More coins if you break bricks without pause",
|
||||||
"upgrades.addiction.verbose_description": "The countdown only starts after breaking the first brick of each level. It stops as soon as all bricks are destroyed.",
|
"upgrades.addiction.verbose_description": "+{{lvl}} combo / brick broken, combo resets {{delay}}s after breaking a brick. The countdown only starts after breaking the first brick of each level. It stops as soon as all bricks are destroyed.",
|
||||||
"upgrades.asceticism.name": "Asceticism",
|
"upgrades.asceticism.name": "Asceticism",
|
||||||
"upgrades.asceticism.tooltip": "+{{combo}} combo / brick broken, - {{combo}} on coin catch",
|
"upgrades.asceticism.tooltip": "More coins if you don't catch them immediately",
|
||||||
"upgrades.asceticism.verbose_description": "You'll need to store the coins somewhere while your combo climbs. ",
|
"upgrades.asceticism.verbose_description": "You'll need to store the coins somewhere while your combo climbs. ",
|
||||||
"upgrades.ball_attract_ball.help_plural": "Stronger attraction force",
|
"upgrades.ball_attract_ball.help_plural": "Stronger attraction force",
|
||||||
"upgrades.ball_attract_ball.name": "Gravity",
|
"upgrades.ball_attract_ball.name": "Gravity",
|
||||||
|
@ -263,7 +263,7 @@
|
||||||
"upgrades.ball_repulse_ball.tooltip": "Balls repulse balls",
|
"upgrades.ball_repulse_ball.tooltip": "Balls repulse balls",
|
||||||
"upgrades.ball_repulse_ball.verbose_description": "Balls that are less than a quarter screen width away will start repulsing each other. The repulsion force is stronger if they are close to each other. Particles will jet out to symbolize this force being applied. This perk is only offered if you have more than one ball already.",
|
"upgrades.ball_repulse_ball.verbose_description": "Balls that are less than a quarter screen width away will start repulsing each other. The repulsion force is stronger if they are close to each other. Particles will jet out to symbolize this force being applied. This perk is only offered if you have more than one ball already.",
|
||||||
"upgrades.base_combo.name": "Strong foundations",
|
"upgrades.base_combo.name": "Strong foundations",
|
||||||
"upgrades.base_combo.tooltip": "Combo starts at {{coins}} instead of 1.",
|
"upgrades.base_combo.tooltip": "3 more coins per brick broken",
|
||||||
"upgrades.base_combo.verbose_description": "Your combo normally starts at 1 at the beginning of the level, and resets to 1 when you bounce around without hitting anything. With this perk, the combo starts 3 points higher, so you'll always get at least 4 coins per brick. Whenever your combo reset, it will go back to 4 and not 1. Your ball will glitter a bit to indicate that its combo is higher than one.",
|
"upgrades.base_combo.verbose_description": "Your combo normally starts at 1 at the beginning of the level, and resets to 1 when you bounce around without hitting anything. With this perk, the combo starts 3 points higher, so you'll always get at least 4 coins per brick. Whenever your combo reset, it will go back to 4 and not 1. Your ball will glitter a bit to indicate that its combo is higher than one.",
|
||||||
"upgrades.bigger_explosions.name": "Kaboom",
|
"upgrades.bigger_explosions.name": "Kaboom",
|
||||||
"upgrades.bigger_explosions.tooltip": "Bigger explosions",
|
"upgrades.bigger_explosions.tooltip": "Bigger explosions",
|
||||||
|
@ -288,7 +288,7 @@
|
||||||
"upgrades.coin_magnet.tooltip": "Paddle attracts coins",
|
"upgrades.coin_magnet.tooltip": "Paddle attracts coins",
|
||||||
"upgrades.coin_magnet.verbose_description": "Directs the coins to the paddle. The effect is stronger if the coin is close to it already.",
|
"upgrades.coin_magnet.verbose_description": "Directs the coins to the paddle. The effect is stronger if the coin is close to it already.",
|
||||||
"upgrades.compound_interest.name": "Compound interest",
|
"upgrades.compound_interest.name": "Compound interest",
|
||||||
"upgrades.compound_interest.tooltip": "+{{lvl}} combo per brick broken, resets on coin lost",
|
"upgrades.compound_interest.tooltip": "More coins if you catch all coins",
|
||||||
"upgrades.compound_interest.verbose_description": "Your combo will grow by one every time you break a brick, spawning more and more coin with every brick you break. \nBe sure however to catch every one of those coins with your paddle, as any lost coin will reset your combo.\nOnce your combo is above the minimum, the bottom of the play area will have a red line to remind you that coins should not go there.",
|
"upgrades.compound_interest.verbose_description": "Your combo will grow by one every time you break a brick, spawning more and more coin with every brick you break. \nBe sure however to catch every one of those coins with your paddle, as any lost coin will reset your combo.\nOnce your combo is above the minimum, the bottom of the play area will have a red line to remind you that coins should not go there.",
|
||||||
"upgrades.concave_puck.name": "Concave paddle",
|
"upgrades.concave_puck.name": "Concave paddle",
|
||||||
"upgrades.concave_puck.tooltip": "Improves vertical aiming precision",
|
"upgrades.concave_puck.tooltip": "Improves vertical aiming precision",
|
||||||
|
@ -305,36 +305,35 @@
|
||||||
"upgrades.extra_levels.name": "5 min more",
|
"upgrades.extra_levels.name": "5 min more",
|
||||||
"upgrades.extra_levels.tooltip": "Play {{count}} levels instead of 7",
|
"upgrades.extra_levels.tooltip": "Play {{count}} levels instead of 7",
|
||||||
"upgrades.extra_levels.verbose_description": "The default game can last a max of 7 levels, after which the game is over. \n\nEach level of this perk lets you go one level higher. The last levels are often the ones where you make the most score, so the difference can be dramatic.",
|
"upgrades.extra_levels.verbose_description": "The default game can last a max of 7 levels, after which the game is over. \n\nEach level of this perk lets you go one level higher. The last levels are often the ones where you make the most score, so the difference can be dramatic.",
|
||||||
"upgrades.extra_life.help_plural": "Your (last) ball will bounce on the bottom instead of being lost ({{lvl}} times).",
|
|
||||||
"upgrades.extra_life.name": "Extra Life",
|
"upgrades.extra_life.name": "Extra Life",
|
||||||
"upgrades.extra_life.tooltip": "The ball will bounce once on the bottom line before being lost.",
|
"upgrades.extra_life.tooltip": "Saves your ball once",
|
||||||
"upgrades.extra_life.verbose_description": "Normally, you have one ball, and the game is over as soon as you drop it.\n\nThis perk adds a white bar at the bottom of the screen that will save a ball once, and break in the process. \n\nYou'll lose one level of that perk every time a ball bounces at the bottom of the screen.",
|
"upgrades.extra_life.verbose_description": "Normally, you have one ball, and the game is over as soon as you drop it.\n\nThis perk adds a white bar at the bottom of the screen that will save a ball once, and break in the process. \n\nYou'll lose one level of that perk every time a ball bounces at the bottom of the screen.\n\nIf you have multiple balls, only the last one will be saved by the extra life. ",
|
||||||
"upgrades.forgiving.name": "Forgiving",
|
"upgrades.forgiving.name": "Forgiving",
|
||||||
"upgrades.forgiving.tooltip": "Missing breaks reduces combo progressively instead of all at once.",
|
"upgrades.forgiving.tooltip": "Keep most of your combo when missing",
|
||||||
"upgrades.forgiving.verbose_description": "The first miss per level is free, then 10% of the combo, then 20% .. ",
|
"upgrades.forgiving.verbose_description": "The first miss per level is free, then 10% of the combo, then 20% .. ",
|
||||||
"upgrades.fountain_toss.name": "Fountain toss",
|
"upgrades.fountain_toss.name": "Fountain toss",
|
||||||
"upgrades.fountain_toss.tooltip": "Gain some combo when you miss some coins. ",
|
"upgrades.fountain_toss.tooltip": "Gain combo when you miss coins. ",
|
||||||
"upgrades.fountain_toss.verbose_description": "When you miss a coin and your combo was under level*30, your combo has a probability of level/combo to grow by one.",
|
"upgrades.fountain_toss.verbose_description": "When you miss a coin and your combo was under level*30, your combo has a probability of level/combo to grow by one.",
|
||||||
"upgrades.ghost_coins.name": "Ghost coins",
|
"upgrades.ghost_coins.name": "Ghost coins",
|
||||||
"upgrades.ghost_coins.tooltip": "Coins slowly pass through bricks",
|
"upgrades.ghost_coins.tooltip": "Coins slowly pass through bricks",
|
||||||
"upgrades.ghost_coins.verbose_description": "It's not a bug, it's a feature ! Coins fly through bricks slowly. Higher levels let them move faster. ",
|
"upgrades.ghost_coins.verbose_description": "It's not a bug, it's a feature ! Coins fly through bricks slowly. Higher levels let them move faster. ",
|
||||||
"upgrades.happy_family.name": "Happy family",
|
"upgrades.happy_family.name": "Happy family",
|
||||||
"upgrades.happy_family.tooltip": "+1 combo per extra ball per paddle bounce. Combo resets when a ball is lost. ",
|
"upgrades.happy_family.tooltip": "More coins if you keep all balls in game. ",
|
||||||
"upgrades.happy_family.verbose_description": "Only the ball above 1 give combo.",
|
"upgrades.happy_family.verbose_description": "+1 combo per extra ball per paddle bounce. Combo resets when a ball is lost. Only the ball above 1 give combo.",
|
||||||
"upgrades.helium.name": "Helium",
|
"upgrades.helium.name": "Helium",
|
||||||
"upgrades.helium.tooltip": "Gravity limited left and right of paddle",
|
"upgrades.helium.tooltip": "Gravity limited left and right of paddle",
|
||||||
"upgrades.helium.verbose_description": "At level 1, gravity is reduced. At level 2, coins slowly float up. At level 3 they really fly.",
|
"upgrades.helium.verbose_description": "At level 1, gravity is reduced. At level 2, coins slowly float up. At level 3 they really fly.",
|
||||||
"upgrades.hot_start.name": "Hot start",
|
"upgrades.hot_start.name": "Hot start",
|
||||||
"upgrades.hot_start.tooltip": "Start at combo {{start}}, -{{loss}} combo per second",
|
"upgrades.hot_start.tooltip": "More coins if you clear the level under 30s",
|
||||||
"upgrades.hot_start.verbose_description": "At the start of every level, your combo will start at +30 points, but then every second it will be decreased by one. The effect stacks with other perks. ",
|
"upgrades.hot_start.verbose_description": "At the start of every level, your combo will start at +30 points, but then every second it will be decreased by one. The effect stacks with other perks. ",
|
||||||
"upgrades.hypnosis.name": "Hypnosis",
|
"upgrades.hypnosis.name": "Hypnosis",
|
||||||
"upgrades.hypnosis.tooltip": "Whenever a brick changes color, teleport that coin to the nearest ball and recharge its ability to stain a brick. ",
|
"upgrades.hypnosis.tooltip": "Coins teleport to the ball",
|
||||||
"upgrades.hypnosis.verbose_description": "",
|
"upgrades.hypnosis.verbose_description": "Whenever a brick changes color, teleport that coin to the nearest ball and recharge its ability to stain a brick. ",
|
||||||
"upgrades.implosions.name": "Implosions",
|
"upgrades.implosions.name": "Implosions",
|
||||||
"upgrades.implosions.tooltip": "Explosions suck coins in instead of blowing them out",
|
"upgrades.implosions.tooltip": "Explosions suck coins in instead of blowing them out",
|
||||||
"upgrades.implosions.verbose_description": "The explosion force is applied the other way. Further levels act as \"bigger explosion\"",
|
"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": "+{{lvl}} combo per brick broken. Combo resets if ball hits the left side of the screen",
|
"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",
|
||||||
"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}} ",
|
||||||
|
@ -349,19 +348,19 @@
|
||||||
"upgrades.multiball.tooltip": "Start every levels with {{count}} balls.",
|
"upgrades.multiball.tooltip": "Start every levels with {{count}} balls.",
|
||||||
"upgrades.multiball.verbose_description": "As soon as you drop the ball in Breakout 71, you lose. \n\nWith this perk, you get two balls, and so you can afford to lose one. \n\nThe lost balls come back on the next level. \n\nHaving more than one balls makes some further perks available, and of course clears the level faster.",
|
"upgrades.multiball.verbose_description": "As soon as you drop the ball in Breakout 71, you lose. \n\nWith this perk, you get two balls, and so you can afford to lose one. \n\nThe lost balls come back on the next level. \n\nHaving more than one balls makes some further perks available, and of course clears the level faster.",
|
||||||
"upgrades.nbricks.name": "Strict sample size",
|
"upgrades.nbricks.name": "Strict sample size",
|
||||||
"upgrades.nbricks.tooltip": "Hit exactly {{lvl}} bricks per paddle bounce for +{{lvl}} combo, otherwise it resets",
|
"upgrades.nbricks.tooltip": "More coins if you break bricks one by one.",
|
||||||
"upgrades.nbricks.verbose_description": "You don't necessarily need to destroy those bricks, but you need to hit them. Bricks destroyed by explosions don't count",
|
"upgrades.nbricks.verbose_description": "Hit exactly {{lvl}} bricks per paddle bounce for +{{lvl}} combo, otherwise it resets. You don't necessarily need to destroy those bricks, but you need to hit them. Bricks destroyed by explosions don't count",
|
||||||
"upgrades.one_more_choice.name": "Extra choice",
|
"upgrades.one_more_choice.name": "Extra choice",
|
||||||
"upgrades.one_more_choice.tooltip": "Further level ups will offer {{lvl}} more option(s) in the list",
|
"upgrades.one_more_choice.tooltip": "More upgrade choices",
|
||||||
"upgrades.one_more_choice.verbose_description": "Every upgrade menu will have one more option. Doesn't increase the number of upgrades you can pick.",
|
"upgrades.one_more_choice.verbose_description": "Every upgrade menu will have one more option. Doesn't increase the number of upgrades you can pick.",
|
||||||
"upgrades.ottawa_treaty.name": "Ottawa treaty",
|
"upgrades.ottawa_treaty.name": "Ottawa treaty",
|
||||||
"upgrades.ottawa_treaty.tooltip": "Breaking a brick near a bomb disarms it",
|
"upgrades.ottawa_treaty.tooltip": "Breaking a brick near a bomb disarms it",
|
||||||
"upgrades.ottawa_treaty.verbose_description": "The nearby bomb will be replaced by a colored block. If you have sapper, the ball will loose its sapper effect until next bounce. Only one bomb can be replaced at a time.",
|
"upgrades.ottawa_treaty.verbose_description": "The nearby bomb will be replaced by a colored block. If you have sapper, the ball will loose its sapper effect until next bounce. Only one bomb can be replaced at a time.",
|
||||||
"upgrades.passive_income.name": "Passive income",
|
"upgrades.passive_income.name": "Passive income",
|
||||||
"upgrades.passive_income.tooltip": "+{{lvl}} combo / brick broken, paddle is immaterial {{time}}s after moving",
|
"upgrades.passive_income.tooltip": "More coins but a moving paddle doesn't catch balls or coins",
|
||||||
"upgrades.passive_income.verbose_description": "Some perks can help the balls do what you want without needing to do anything.",
|
"upgrades.passive_income.verbose_description": "+{{lvl}} combo / brick broken, paddle is immaterial {{time}}s after moving. Some perks can help the balls do what you want without needing to do anything.",
|
||||||
"upgrades.picky_eater.name": "Picky eater",
|
"upgrades.picky_eater.name": "Picky eater",
|
||||||
"upgrades.picky_eater.tooltip": "+{{lvl}} combo per brick broken, resets on ball color change",
|
"upgrades.picky_eater.tooltip": "More coins if you break bricks color by color",
|
||||||
"upgrades.picky_eater.verbose_description": "Whenever you break a brick the same color as your ball, your combo increases by one. \nIf it's a different color, the ball takes that new color, but the combo resets, unless there were no bricks left of the ball's color. \nOnce you get a combo higher than your minimum, the bricks of the wrong color will get a red border. \nIf you have more than one ball, they all switch color whenever one of them hits a brick.",
|
"upgrades.picky_eater.verbose_description": "Whenever you break a brick the same color as your ball, your combo increases by one. \nIf it's a different color, the ball takes that new color, but the combo resets, unless there were no bricks left of the ball's color. \nOnce you get a combo higher than your minimum, the bricks of the wrong color will get a red border. \nIf you have more than one ball, they all switch color whenever one of them hits a brick.",
|
||||||
"upgrades.pierce.name": "Piercing",
|
"upgrades.pierce.name": "Piercing",
|
||||||
"upgrades.pierce.tooltip": "Ball pierces {{count}} bricks after a paddle bounce",
|
"upgrades.pierce.tooltip": "Ball pierces {{count}} bricks after a paddle bounce",
|
||||||
|
@ -377,18 +376,17 @@
|
||||||
"upgrades.rainbow.tooltip": "Coins spawn with rainbow color.",
|
"upgrades.rainbow.tooltip": "Coins spawn with rainbow color.",
|
||||||
"upgrades.rainbow.verbose_description": "Each level increases the proportion of colored coins. The color depends on level time. ",
|
"upgrades.rainbow.verbose_description": "Each level increases the proportion of colored coins. The color depends on level time. ",
|
||||||
"upgrades.reach.name": "Top down",
|
"upgrades.reach.name": "Top down",
|
||||||
"upgrades.reach.tooltip": " Touching the N bricks of the lowest row resets the combo. Otherwise, +N combo",
|
"upgrades.reach.tooltip": "More coins if you avoid the lowest row of bricks",
|
||||||
"upgrades.reach.verbose_description": "If there is only one row of bricks, or if the lowest row of bricks cover the whole width of the game, then this perk does nothing. Otherwise, breaking this lowest row resets the combo, while breaking anything else increases the combo by the number of bricks present on that lowest row. \n\nThe lowest row will be highlighted in red. ",
|
"upgrades.reach.verbose_description": " Touching the N bricks of the lowest row resets the combo. Otherwise, +N combo\n\nIf there is only one row of bricks, or if the lowest row of bricks cover the whole width of the game, then this perk does nothing. Otherwise, breaking this lowest row resets the combo, while breaking anything else increases the combo by the number of bricks present on that lowest row. \n\nThe lowest row will be highlighted in red. ",
|
||||||
"upgrades.respawn.name": "Re-spawn",
|
"upgrades.respawn.name": "Re-spawn",
|
||||||
"upgrades.respawn.tooltip": "{{percent}}% of bricks re-spawn after {{delay}}s.",
|
"upgrades.respawn.tooltip": "{{percent}}% of bricks re-spawn after {{delay}}s.",
|
||||||
"upgrades.respawn.verbose_description": "Some particle effect will let you know where bricks will appear. ",
|
"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": "+{{lvl}} combo per brick. Combo resets if ball hits the right side of the screen",
|
"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",
|
||||||
"upgrades.sacrifice.help_l1": "Loosing a life clears all bricks",
|
|
||||||
"upgrades.sacrifice.help_over": "Loosing a life {{lvl}}x the combo then clears all bricks",
|
|
||||||
"upgrades.sacrifice.name": "Sacrifice",
|
"upgrades.sacrifice.name": "Sacrifice",
|
||||||
"upgrades.sacrifice.verbose_description": "This might get the combo pretty high.",
|
"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.sapper.help_plural": "The first {{lvl}} bricks broken become bombs.",
|
"upgrades.sapper.help_plural": "The first {{lvl}} bricks broken become bombs.",
|
||||||
"upgrades.sapper.name": "Sapper",
|
"upgrades.sapper.name": "Sapper",
|
||||||
"upgrades.sapper.tooltip": "The first brick broken becomes a bomb.",
|
"upgrades.sapper.tooltip": "The first brick broken becomes a bomb.",
|
||||||
|
@ -400,49 +398,47 @@
|
||||||
"upgrades.shunt.tooltip": "Keep {{percent}}% of your combo between levels",
|
"upgrades.shunt.tooltip": "Keep {{percent}}% of your combo between levels",
|
||||||
"upgrades.shunt.verbose_description": "If you also have hot start, the hot start is just added to the current combo",
|
"upgrades.shunt.verbose_description": "If you also have hot start, the hot start is just added to the current combo",
|
||||||
"upgrades.side_flip.name": "Right handed",
|
"upgrades.side_flip.name": "Right handed",
|
||||||
"upgrades.side_flip.tooltip": "+{{lvl}} combo per brick broken from the right, -{{loss}} otherwise",
|
"upgrades.side_flip.tooltip": "More coins if you hit bricks from the right only",
|
||||||
"upgrades.side_flip.verbose_description": "Impact the brick on its right side to gain one combo, but avoid hitting it on the left side as the would remove 2 combo. Hitting from the top and bottom has no effect. ",
|
"upgrades.side_flip.verbose_description": "+{{lvl}} combo per brick broken from the right, -{{loss}} otherwise. Impact the brick on its right side to gain one combo, but avoid hitting it on the left side as the would remove 2 combo. Hitting from the top and bottom has no effect. ",
|
||||||
"upgrades.side_kick.name": "Left handed",
|
"upgrades.side_kick.name": "Left handed",
|
||||||
"upgrades.side_kick.tooltip": "+{{lvl}} combo per brick broken from the left, -{{loss}} otherwise",
|
"upgrades.side_kick.tooltip": "More coins if you hit bricks from the left only",
|
||||||
"upgrades.side_kick.verbose_description": "Impact the brick on its left side to gain one combo, but avoid hitting it on the right side as the would remove 2 combo. Hitting from the top and bottom has no effect. ",
|
"upgrades.side_kick.verbose_description": "+{{lvl}} combo per brick broken from the left, -{{loss}} otherwise. Impact the brick on its left side to gain one combo, but avoid hitting it on the right side as the would remove 2 combo. Hitting from the top and bottom has no effect. ",
|
||||||
"upgrades.skip_last.help_plural": "The last {{lvl}} bricks will explode.",
|
|
||||||
"upgrades.skip_last.name": "Easy Cleanup",
|
"upgrades.skip_last.name": "Easy Cleanup",
|
||||||
"upgrades.skip_last.tooltip": "The last brick will explode.",
|
"upgrades.skip_last.tooltip": "The last brick will self destruct.",
|
||||||
"upgrades.skip_last.verbose_description": "You need to break all bricks to go to the next level. However, it can be hard to get the last ones. \n\nClearing a level early brings extra choices when upgrading. Never missing the bricks is also very beneficial. \n\nSo if you find it difficult to break the last bricks, getting this perk a few time can help.",
|
"upgrades.skip_last.verbose_description": "You need to break all bricks to go to the next level. However, it can be hard to get the last ones. \nEach level of this perk increases the number of bricks that will self destruct.\nClearing a level early brings extra choices when upgrading. Never missing the bricks is also very beneficial. \n\nSo if you find it difficult to break the last bricks, getting this perk a few time can help. ",
|
||||||
"upgrades.slow_down.name": "Slower ball",
|
"upgrades.slow_down.name": "Slower ball",
|
||||||
"upgrades.slow_down.tooltip": "Ball moves more slowly",
|
"upgrades.slow_down.tooltip": "Ball moves more slowly",
|
||||||
"upgrades.slow_down.verbose_description": "The ball starts relatively slow, but every level of your game it will start a bit faster. \n\nIt will also accelerate if you spend a lot of time in one level. \n\nThis perk makes it more manageable. \n\nYou can get it at the start every time by enabling kid mode in the menu.",
|
"upgrades.slow_down.verbose_description": "The ball starts relatively slow, but every level of your game it will start a bit faster. \n\nIt will also accelerate if you spend a lot of time in one level. \n\nThis perk makes it more manageable. \n\nYou can get it at the start every time by enabling kid mode in the menu.",
|
||||||
"upgrades.smaller_puck.name": "Smaller paddle",
|
"upgrades.smaller_puck.name": "Smaller paddle",
|
||||||
"upgrades.smaller_puck.tooltip": "Also gives +{{percent}}% coins",
|
"upgrades.smaller_puck.tooltip": "{{percent}}% more coins",
|
||||||
"upgrades.smaller_puck.verbose_description": "This makes the paddle smaller, which in theory makes some corner shots easier, but really just raises the difficulty.\n\nThat's why you also get a nice bonus of +50% coins spawn.",
|
"upgrades.smaller_puck.verbose_description": "This makes the paddle smaller, which in theory makes some corner shots easier, but really just raises the difficulty.\n\nThat's why you also get a nice bonus of +50% coins spawn.",
|
||||||
"upgrades.soft_reset.name": "Soft reset",
|
"upgrades.soft_reset.name": "Soft reset",
|
||||||
"upgrades.soft_reset.tooltip": "Combo resets keeps {{percent}}%",
|
"upgrades.soft_reset.tooltip": "Keep {{percent}}% of your combo when it resets",
|
||||||
"upgrades.soft_reset.verbose_description": "Limit the impact of a combo reset.",
|
"upgrades.soft_reset.verbose_description": "Limit the impact of a combo reset.",
|
||||||
"upgrades.sticky_coins.name": "Sticky coins",
|
"upgrades.sticky_coins.name": "Sticky coins",
|
||||||
"upgrades.sticky_coins.tooltip": "Coins stick to bricks of the same color",
|
"upgrades.sticky_coins.tooltip": "Coins stick to bricks of the same color",
|
||||||
"upgrades.sticky_coins.verbose_description": "At level 2, they stick to bricks of any color",
|
"upgrades.sticky_coins.verbose_description": "At level 2, they stick to bricks of any color",
|
||||||
"upgrades.streak_shots.name": "Hit streak",
|
"upgrades.streak_shots.name": "Hit streak",
|
||||||
"upgrades.streak_shots.tooltip": "More coins if you break many bricks before bouncing on the paddle.",
|
"upgrades.streak_shots.tooltip": "More coins if you break many bricks at once",
|
||||||
"upgrades.streak_shots.verbose_description": "Every time you break a brick, your combo increases by one. \n\nHowever, as soon as the ball touches your paddle, the combo is reset to its default value.\n\nOnce your combo rises above the base value, your paddle will have a red border to remind you that it will destroy your combo to touch it with the ball.",
|
"upgrades.streak_shots.verbose_description": "Every time you break a brick, your combo increases by one. \n\nHowever, as soon as the ball touches your paddle, the combo is reset to its default value.\n\nOnce your combo rises above the base value, your paddle will have a red border to remind you that it will destroy your combo to touch it with the ball.",
|
||||||
"upgrades.sturdy_bricks.name": "Sturdy bricks",
|
"upgrades.sturdy_bricks.name": "Sturdy bricks",
|
||||||
"upgrades.sturdy_bricks.tooltip": "+{{lvl}} bricks HP, +{{percent}}% coins spawned when broken",
|
"upgrades.sturdy_bricks.tooltip": "+{{lvl}} bricks HP, +{{percent}}% coins",
|
||||||
"upgrades.sturdy_bricks.verbose_description": "Each level of this perk adds one HP to all bricks. You can see the HP number with the \"clairvoyant\" perk. You can increase ball damage by getting the \"piercing\" perk. Each level of the perk adds +50% coins spawn. ",
|
"upgrades.sturdy_bricks.verbose_description": "Each level of this perk adds one HP to all bricks. You can see the HP number with the \"clairvoyant\" perk. You can increase ball damage by getting the \"piercing\" perk. Each level of the perk adds +50% coins spawn. ",
|
||||||
"upgrades.superhot.name": "SUPER HOT",
|
"upgrades.superhot.name": "SUPER HOT",
|
||||||
"upgrades.superhot.tooltip": "Time moves when the paddle moves.",
|
"upgrades.superhot.tooltip": "Time moves when the paddle moves.",
|
||||||
"upgrades.superhot.verbose_description": "SUPER HOT SUPER HOT SUPER HOT SUPER HOT",
|
"upgrades.superhot.verbose_description": "SUPER HOT SUPER HOT SUPER HOT SUPER HOT",
|
||||||
"upgrades.telekinesis.help_plural": "Stronger effect on the ball",
|
|
||||||
"upgrades.telekinesis.name": "Telekinesis",
|
"upgrades.telekinesis.name": "Telekinesis",
|
||||||
"upgrades.telekinesis.tooltip": "Paddle controls the ball's trajectory",
|
"upgrades.telekinesis.tooltip": "The paddle controls the ball",
|
||||||
"upgrades.telekinesis.verbose_description": "You control the ball while it's going up. ",
|
"upgrades.telekinesis.verbose_description": "You control the ball while it's going up. The effect is stronger when the ball is in the bottom half of the screen. ",
|
||||||
"upgrades.three_cushion.name": "Three cushion",
|
"upgrades.three_cushion.name": "Three cushion",
|
||||||
"upgrades.three_cushion.tooltip": "+1 combo per hit on sides and top, up to +{{max}} per paddle bounce. Combo resets when you hit a brick without bouncing first. ",
|
"upgrades.three_cushion.tooltip": "More coins if you hit bricks only indirectly",
|
||||||
"upgrades.three_cushion.verbose_description": "Every hit on a side will raise the combo by one, up to +3. After that, no combo will be gained until next paddle bounce. ",
|
"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": "+{{lvl}} combo per brick, reset when the top is hit",
|
"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. ",
|
||||||
"upgrades.trampoline.name": "Trampoline",
|
"upgrades.trampoline.name": "Trampoline",
|
||||||
"upgrades.trampoline.tooltip": "+{{lvl}} combo per paddle bounce,-{{lvl}} combo per bounce on any border",
|
"upgrades.trampoline.tooltip": "More coins if you avoid the side and top.",
|
||||||
"upgrades.trampoline.verbose_description": "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",
|
||||||
"upgrades.transparency.name": "Transparency",
|
"upgrades.transparency.name": "Transparency",
|
||||||
"upgrades.transparency.tooltip": "Ball becomes transparent at the top of the screen. +{{percent}} % coins when all balls are at full transparency",
|
"upgrades.transparency.tooltip": "Ball becomes transparent at the top of the screen. +{{percent}} % coins when all balls are at full transparency",
|
||||||
"upgrades.transparency.verbose_description": "Higher levels make the ball transparent sooner and increase the point bonus.",
|
"upgrades.transparency.verbose_description": "Higher levels make the ball transparent sooner and increase the point bonus.",
|
||||||
|
@ -466,9 +462,9 @@
|
||||||
"upgrades.wrap_right.tooltip": "Hitting the right side teleports the ball to the left side",
|
"upgrades.wrap_right.tooltip": "Hitting the right side teleports the ball to the left side",
|
||||||
"upgrades.wrap_right.verbose_description": "Teleporting will NOT count as a left side bounce. Higher levels might teleport coins too",
|
"upgrades.wrap_right.verbose_description": "Teleporting will NOT count as a left side bounce. Higher levels might teleport coins too",
|
||||||
"upgrades.yoyo.name": "Yo-yo",
|
"upgrades.yoyo.name": "Yo-yo",
|
||||||
"upgrades.yoyo.tooltip": "Ball falls toward paddle",
|
"upgrades.yoyo.tooltip": "The ball falls toward the paddle",
|
||||||
"upgrades.yoyo.verbose_description": "It's the opposite of telekinesis, control the ball while it's falling back down.",
|
"upgrades.yoyo.verbose_description": "It's the opposite of telekinesis, control the ball while it's falling back down.",
|
||||||
"upgrades.zen.name": "Zen",
|
"upgrades.zen.name": "Zen",
|
||||||
"upgrades.zen.tooltip": "+{{lvl}} combo every 3s, reset when there's an explosion",
|
"upgrades.zen.tooltip": "More coins if you don't trigger bombs",
|
||||||
"upgrades.zen.verbose_description": ""
|
"upgrades.zen.verbose_description": "+{{lvl}} combo every 3s, reset when there's an explosion"
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,7 +263,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": "El combo comienza en {{coins}} en lugar de 1.",
|
"upgrades.base_combo.tooltip": "",
|
||||||
"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",
|
||||||
|
@ -305,7 +305,6 @@
|
||||||
"upgrades.extra_levels.name": "5 minutos más",
|
"upgrades.extra_levels.name": "5 minutos más",
|
||||||
"upgrades.extra_levels.tooltip": "Juega {{count}} niveles en lugar de 7",
|
"upgrades.extra_levels.tooltip": "Juega {{count}} niveles en lugar de 7",
|
||||||
"upgrades.extra_levels.verbose_description": "El juego suele durar 7 niveles, tras los cuales se acaba la partida y la puntuación que hayas alcanzado es tu puntuación del juego.\n\nElegir esta mejora te permite prolongar el juego un nivel. Los últimos niveles suelen ser en los que más puntos consigues, así que la diferencia puede ser espectacular.",
|
"upgrades.extra_levels.verbose_description": "El juego suele durar 7 niveles, tras los cuales se acaba la partida y la puntuación que hayas alcanzado es tu puntuación del juego.\n\nElegir esta mejora te permite prolongar el juego un nivel. Los últimos niveles suelen ser en los que más puntos consigues, así que la diferencia puede ser espectacular.",
|
||||||
"upgrades.extra_life.help_plural": "La (última) bola rebota hasta el fondo de la pantalla en lugar de perderse ( {{lvl}} veces).",
|
|
||||||
"upgrades.extra_life.name": "Segunda oportunidad",
|
"upgrades.extra_life.name": "Segunda oportunidad",
|
||||||
"upgrades.extra_life.tooltip": "La pelota rebota una vez antes de perderse.",
|
"upgrades.extra_life.tooltip": "La pelota rebota una vez antes de perderse.",
|
||||||
"upgrades.extra_life.verbose_description": "Normalmente, sólo tienes una bola por ronda, y la ronda termina en cuanto la sueltas.\n\nEsta habilidad añade una barra blanca en la parte inferior de la pantalla que guardará una bola una vez, y se romperá en el proceso.\n\nPuedes coger varias vidas por adelantado, que se usan cada vez que una bola está a punto de perderse.",
|
"upgrades.extra_life.verbose_description": "Normalmente, sólo tienes una bola por ronda, y la ronda termina en cuanto la sueltas.\n\nEsta habilidad añade una barra blanca en la parte inferior de la pantalla que guardará una bola una vez, y se romperá en el proceso.\n\nPuedes coger varias vidas por adelantado, que se usan cada vez que una bola está a punto de perderse.",
|
||||||
|
@ -385,9 +384,8 @@
|
||||||
"upgrades.right_is_lava.name": "Evitar el lado derecho",
|
"upgrades.right_is_lava.name": "Evitar el lado derecho",
|
||||||
"upgrades.right_is_lava.tooltip": "+{{lvl}} combo por ladrillo, perdido en el impacto con el lado derecho",
|
"upgrades.right_is_lava.tooltip": "+{{lvl}} combo por ladrillo, perdido en el impacto con el lado derecho",
|
||||||
"upgrades.right_is_lava.verbose_description": "Cada vez que rompes un ladrillo, tu combo aumenta en uno, dándote una moneda extra cada vez que rompas los ladrillos siguientes.\n\nSin embargo, tu combo se reinicia en cuanto tu bola toca el lado derecho del área de juego.\n\nEn cuanto tu combo aumenta, el lado derecho se vuelve rojo para recordarte que debes evitar golpearlo.",
|
"upgrades.right_is_lava.verbose_description": "Cada vez que rompes un ladrillo, tu combo aumenta en uno, dándote una moneda extra cada vez que rompas los ladrillos siguientes.\n\nSin embargo, tu combo se reinicia en cuanto tu bola toca el lado derecho del área de juego.\n\nEn cuanto tu combo aumenta, el lado derecho se vuelve rojo para recordarte que debes evitar golpearlo.",
|
||||||
"upgrades.sacrifice.help_l1": "Perder una vida destruye todos los ladrillos",
|
|
||||||
"upgrades.sacrifice.help_over": "Perder una vida multiplica el combo por {{lvl}} y luego destruye todos los ladrillos de la pantalla",
|
|
||||||
"upgrades.sacrifice.name": "Sacrificio",
|
"upgrades.sacrifice.name": "Sacrificio",
|
||||||
|
"upgrades.sacrifice.tooltip": "Perder una vida multiplica el combo por {{lvl}} y luego destruye todos los ladrillos de la pantalla",
|
||||||
"upgrades.sacrifice.verbose_description": "El combo podría llegar muy alto.",
|
"upgrades.sacrifice.verbose_description": "El combo podría llegar muy alto.",
|
||||||
"upgrades.sapper.help_plural": "Los primeros {{lvl}} ladrillos rotos se convierten en bombas.",
|
"upgrades.sapper.help_plural": "Los primeros {{lvl}} ladrillos rotos se convierten en bombas.",
|
||||||
"upgrades.sapper.name": "Zapador",
|
"upgrades.sapper.name": "Zapador",
|
||||||
|
@ -405,7 +403,6 @@
|
||||||
"upgrades.side_kick.name": "Zurdos",
|
"upgrades.side_kick.name": "Zurdos",
|
||||||
"upgrades.side_kick.tooltip": "+{{lvl}} combo por ladrillo roto de la izquierda, -{{loss}} de lo contrario",
|
"upgrades.side_kick.tooltip": "+{{lvl}} combo por ladrillo roto de la izquierda, -{{loss}} de lo contrario",
|
||||||
"upgrades.side_kick.verbose_description": "Golpea el ladrillo por su lado izquierdo para conseguir un combo, pero evita golpearlo por su lado derecho ya que esto cancelará dos combos. Golpear desde arriba y desde abajo no tiene efecto.",
|
"upgrades.side_kick.verbose_description": "Golpea el ladrillo por su lado izquierdo para conseguir un combo, pero evita golpearlo por su lado derecho ya que esto cancelará dos combos. Golpear desde arriba y desde abajo no tiene efecto.",
|
||||||
"upgrades.skip_last.help_plural": "Los últimos {{lvl}} ladrillos restantes se autodestruirán",
|
|
||||||
"upgrades.skip_last.name": "Fácil de limpiar",
|
"upgrades.skip_last.name": "Fácil de limpiar",
|
||||||
"upgrades.skip_last.tooltip": "El último ladrillo se autodestruye.",
|
"upgrades.skip_last.tooltip": "El último ladrillo se autodestruye.",
|
||||||
"upgrades.skip_last.verbose_description": "Tienes que romper todos los ladrillos para pasar al siguiente nivel.\n\nSin embargo, puede ser difícil conseguir los últimos ladrillos.\n\nCompletar un nivel antes de tiempo te da opciones extra al subir de nivel.\n\nNo quedarte nunca sin ladrillos también es una gran ventaja.\n\nAsí que si te cuesta romper los últimos ladrillos, conseguir esta ventaja unas cuantas veces puede ayudarte.",
|
"upgrades.skip_last.verbose_description": "Tienes que romper todos los ladrillos para pasar al siguiente nivel.\n\nSin embargo, puede ser difícil conseguir los últimos ladrillos.\n\nCompletar un nivel antes de tiempo te da opciones extra al subir de nivel.\n\nNo quedarte nunca sin ladrillos también es una gran ventaja.\n\nAsí que si te cuesta romper los últimos ladrillos, conseguir esta ventaja unas cuantas veces puede ayudarte.",
|
||||||
|
@ -430,7 +427,6 @@
|
||||||
"upgrades.superhot.name": "Súper caliente",
|
"upgrades.superhot.name": "Súper caliente",
|
||||||
"upgrades.superhot.tooltip": "El tiempo se mueve cuando se mueve la paleta.",
|
"upgrades.superhot.tooltip": "El tiempo se mueve cuando se mueve la paleta.",
|
||||||
"upgrades.superhot.verbose_description": "SUPER CALIENTE SUPER CALIENTE SUPER CALIENTE SUPER CALIENTE",
|
"upgrades.superhot.verbose_description": "SUPER CALIENTE SUPER CALIENTE SUPER CALIENTE SUPER CALIENTE",
|
||||||
"upgrades.telekinesis.help_plural": "Mayor efecto sobre el balón",
|
|
||||||
"upgrades.telekinesis.name": "Telequinesis",
|
"upgrades.telekinesis.name": "Telequinesis",
|
||||||
"upgrades.telekinesis.tooltip": "Control de la trayectoria del balón",
|
"upgrades.telekinesis.tooltip": "Control de la trayectoria del balón",
|
||||||
"upgrades.telekinesis.verbose_description": "Controla la bola mientras sube.",
|
"upgrades.telekinesis.verbose_description": "Controla la bola mientras sube.",
|
||||||
|
|
|
@ -263,7 +263,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": "Le combo commence à {{coins}} au lieu de 1.",
|
"upgrades.base_combo.tooltip": "",
|
||||||
"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",
|
||||||
|
@ -305,7 +305,6 @@
|
||||||
"upgrades.extra_levels.name": "Encore 5 minutes",
|
"upgrades.extra_levels.name": "Encore 5 minutes",
|
||||||
"upgrades.extra_levels.tooltip": "Jouer {{count}} niveaux au lieu de 7",
|
"upgrades.extra_levels.tooltip": "Jouer {{count}} niveaux au lieu de 7",
|
||||||
"upgrades.extra_levels.verbose_description": "La partie dure normalement 7 niveaux, après quoi le jeu est terminé et le score que vous avez atteint est votre score de partie.\n\nChoisir cette amélioration vous permet de prolonger la partie d'un niveau. Les derniers niveaux sont souvent ceux où vous faites le plus de points, la différence peut donc être spectaculaire.",
|
"upgrades.extra_levels.verbose_description": "La partie dure normalement 7 niveaux, après quoi le jeu est terminé et le score que vous avez atteint est votre score de partie.\n\nChoisir cette amélioration vous permet de prolonger la partie d'un niveau. Les derniers niveaux sont souvent ceux où vous faites le plus de points, la différence peut donc être spectaculaire.",
|
||||||
"upgrades.extra_life.help_plural": "La (dernière) balle rebondit en bas de l'écran au lieu d'être perdue ( {{lvl}} fois).",
|
|
||||||
"upgrades.extra_life.name": "Seconde chance",
|
"upgrades.extra_life.name": "Seconde chance",
|
||||||
"upgrades.extra_life.tooltip": "La balle rebondit une fois avant d'être perdue.",
|
"upgrades.extra_life.tooltip": "La balle rebondit une fois avant d'être perdue.",
|
||||||
"upgrades.extra_life.verbose_description": "Normalement, vous n'avez qu'une seule balle par manche, et la manche est terminée dès que vous la laissez tomber.\n\nCette compétence ajoute une barre blanche en bas de l'écran qui sauvera une balle une fois, et se brisera au cours du processus.\n\nVous pouvez prendre plusieurs vies d'avances, elle seront utilisées à chaque fois qu'une balle est sur le point d'être perdue. ",
|
"upgrades.extra_life.verbose_description": "Normalement, vous n'avez qu'une seule balle par manche, et la manche est terminée dès que vous la laissez tomber.\n\nCette compétence ajoute une barre blanche en bas de l'écran qui sauvera une balle une fois, et se brisera au cours du processus.\n\nVous pouvez prendre plusieurs vies d'avances, elle seront utilisées à chaque fois qu'une balle est sur le point d'être perdue. ",
|
||||||
|
@ -328,8 +327,8 @@
|
||||||
"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. ",
|
||||||
"upgrades.hypnosis.name": "Hypnose",
|
"upgrades.hypnosis.name": "Hypnose",
|
||||||
"upgrades.hypnosis.tooltip": "Chaque fois qu'une brique change de couleur, téléportez cette pièce vers la boule la plus proche et rechargez sa capacité à tacher une brique.",
|
"upgrades.hypnosis.tooltip": "Les pièces se téléportent sur la balle",
|
||||||
"upgrades.hypnosis.verbose_description": "",
|
"upgrades.hypnosis.verbose_description": "Chaque fois qu'une brique change de couleur, téléportez cette pièce vers la boule la plus proche et rechargez sa capacité à tacher une brique.",
|
||||||
"upgrades.implosions.name": "Implosions",
|
"upgrades.implosions.name": "Implosions",
|
||||||
"upgrades.implosions.tooltip": "Les explosions aspirent les pièces au lieu de les faire exploser.",
|
"upgrades.implosions.tooltip": "Les explosions aspirent les pièces au lieu de les faire exploser.",
|
||||||
"upgrades.implosions.verbose_description": "La force d’explosion est appliquée dans l’autre sens. Les niveaux 2+ augmentent la puissance de l'implosion. ",
|
"upgrades.implosions.verbose_description": "La force d’explosion est appliquée dans l’autre sens. Les niveaux 2+ augmentent la puissance de l'implosion. ",
|
||||||
|
@ -352,7 +351,7 @@
|
||||||
"upgrades.nbricks.tooltip": "Frappez exactement {{lvl}} briques par rebond pour +{{lvl}} combo, sinon combo perdu",
|
"upgrades.nbricks.tooltip": "Frappez exactement {{lvl}} briques par rebond pour +{{lvl}} combo, sinon combo perdu",
|
||||||
"upgrades.nbricks.verbose_description": "Si votre balle rebondis sans casser une brique, ça compte quand même comme une frappe. Les briques détruites par des explosions ne comptent pas.",
|
"upgrades.nbricks.verbose_description": "Si votre balle rebondis sans casser une brique, ça compte quand même comme une frappe. Les briques détruites par des explosions ne comptent pas.",
|
||||||
"upgrades.one_more_choice.name": "La réponse D",
|
"upgrades.one_more_choice.name": "La réponse D",
|
||||||
"upgrades.one_more_choice.tooltip": "1 choix supplémentaire d'amélioration proposé jusqu'à la fin de la partie",
|
"upgrades.one_more_choice.tooltip": "Plus de choix d'amélioration",
|
||||||
"upgrades.one_more_choice.verbose_description": "Chaque menu d'amélioration comportera une option supplémentaire. Cela n'augmente pas le nombre d'améliorations que vous pouvez choisir, mais vous aide à créer le profile idéal. \"La réponse D\" est une référence à un sketch classique. ",
|
"upgrades.one_more_choice.verbose_description": "Chaque menu d'amélioration comportera une option supplémentaire. Cela n'augmente pas le nombre d'améliorations que vous pouvez choisir, mais vous aide à créer le profile idéal. \"La réponse D\" est une référence à un sketch classique. ",
|
||||||
"upgrades.ottawa_treaty.name": "Traité d'Ottawa",
|
"upgrades.ottawa_treaty.name": "Traité d'Ottawa",
|
||||||
"upgrades.ottawa_treaty.tooltip": "Casser une brique près d'une bombe la désamorce",
|
"upgrades.ottawa_treaty.tooltip": "Casser une brique près d'une bombe la désamorce",
|
||||||
|
@ -385,10 +384,9 @@
|
||||||
"upgrades.right_is_lava.name": "Éviter le côté droit",
|
"upgrades.right_is_lava.name": "Éviter le côté droit",
|
||||||
"upgrades.right_is_lava.tooltip": "+{{lvl}} combo par brique, perdu en cas de choc avec le coté droit",
|
"upgrades.right_is_lava.tooltip": "+{{lvl}} combo par brique, perdu en cas de choc avec le coté droit",
|
||||||
"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.help_l1": "Perdre une vie détruit toutes les briques",
|
|
||||||
"upgrades.sacrifice.help_over": "Perdre une vie multiplie le combo par {{lvl}} puis détruit toutes les briques à l'écran",
|
|
||||||
"upgrades.sacrifice.name": "Sacrifice",
|
"upgrades.sacrifice.name": "Sacrifice",
|
||||||
"upgrades.sacrifice.verbose_description": "Le combo pourrait monter assez haut.",
|
"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.sapper.help_plural": "Les premières briques {{lvl}} cassées deviennent des bombes.",
|
"upgrades.sapper.help_plural": "Les premières briques {{lvl}} cassées deviennent des bombes.",
|
||||||
"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.",
|
||||||
|
@ -405,7 +403,6 @@
|
||||||
"upgrades.side_kick.name": "Gaucher",
|
"upgrades.side_kick.name": "Gaucher",
|
||||||
"upgrades.side_kick.tooltip": "+{{lvl}} combo par brique cassé de la gauche, -{{loss}} sinon",
|
"upgrades.side_kick.tooltip": "+{{lvl}} combo par brique cassé de la gauche, -{{loss}} sinon",
|
||||||
"upgrades.side_kick.verbose_description": "Impactez la brique sur son côté gauche pour obtenir un combo, mais évitez de la frapper sur son côté droit, car cela annulerait deux combos. Frapper du haut et du bas n'a aucun effet.",
|
"upgrades.side_kick.verbose_description": "Impactez la brique sur son côté gauche pour obtenir un combo, mais évitez de la frapper sur son côté droit, car cela annulerait deux combos. Frapper du haut et du bas n'a aucun effet.",
|
||||||
"upgrades.skip_last.help_plural": "Les {{lvl}} dernières briques restantes s'autodétruiront",
|
|
||||||
"upgrades.skip_last.name": "Nettoyage facile",
|
"upgrades.skip_last.name": "Nettoyage facile",
|
||||||
"upgrades.skip_last.tooltip": "La dernière brique s'autodétruit.",
|
"upgrades.skip_last.tooltip": "La dernière brique s'autodétruit.",
|
||||||
"upgrades.skip_last.verbose_description": "Vous devez casser toutes les briques pour passer au niveau suivant. \n\nCependant, il peut être difficile d'obtenir les dernières briques.\n\nTerminer un niveau plus tôt permet d'obtenir des choix supplémentaires lors de la mise à niveau. \n\nNe jamais manquer de briques est également très avantageux.\n\nDonc, si vous avez du mal à casser les dernières briques, obtenir cet avantage plusieurs fois peut vous aider.",
|
"upgrades.skip_last.verbose_description": "Vous devez casser toutes les briques pour passer au niveau suivant. \n\nCependant, il peut être difficile d'obtenir les dernières briques.\n\nTerminer un niveau plus tôt permet d'obtenir des choix supplémentaires lors de la mise à niveau. \n\nNe jamais manquer de briques est également très avantageux.\n\nDonc, si vous avez du mal à casser les dernières briques, obtenir cet avantage plusieurs fois peut vous aider.",
|
||||||
|
@ -413,7 +410,7 @@
|
||||||
"upgrades.slow_down.tooltip": "La balle se déplace plus lentement",
|
"upgrades.slow_down.tooltip": "La balle se déplace plus lentement",
|
||||||
"upgrades.slow_down.verbose_description": "La balle démarre relativement lentement, mais à chaque niveau de votre partie, elle démarre un peu plus vite, et elle accélère également si vous passez beaucoup de temps dans un niveau.\n\nCet avantage rend la balle plus facile à gérer. \n\nVous pouvez l'obtenir au début de chaque partie en activant le mode enfant dans le menu.",
|
"upgrades.slow_down.verbose_description": "La balle démarre relativement lentement, mais à chaque niveau de votre partie, elle démarre un peu plus vite, et elle accélère également si vous passez beaucoup de temps dans un niveau.\n\nCet avantage rend la balle plus facile à gérer. \n\nVous pouvez l'obtenir au début de chaque partie en activant le mode enfant dans le menu.",
|
||||||
"upgrades.smaller_puck.name": "Raquette plus petite",
|
"upgrades.smaller_puck.name": "Raquette plus petite",
|
||||||
"upgrades.smaller_puck.tooltip": "Donne également +{{percent}}% de pièces",
|
"upgrades.smaller_puck.tooltip": "+{{percent}}% de pièces",
|
||||||
"upgrades.smaller_puck.verbose_description": "Cela réduit la taille de la raquette, ce qui, en théorie, facilite certains tirs en coin, mais augmente en réalité la difficulté.\n\nC'est pourquoi vous obtenez également un bonus intéressant de +50 % d'apparition de pièces.",
|
"upgrades.smaller_puck.verbose_description": "Cela réduit la taille de la raquette, ce qui, en théorie, facilite certains tirs en coin, mais augmente en réalité la difficulté.\n\nC'est pourquoi vous obtenez également un bonus intéressant de +50 % d'apparition de pièces.",
|
||||||
"upgrades.soft_reset.name": "Réinitialisation progressive",
|
"upgrades.soft_reset.name": "Réinitialisation progressive",
|
||||||
"upgrades.soft_reset.tooltip": "La remise à zéro du combo conserve {{percent}}% des points",
|
"upgrades.soft_reset.tooltip": "La remise à zéro du combo conserve {{percent}}% des points",
|
||||||
|
@ -425,12 +422,11 @@
|
||||||
"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.",
|
||||||
"upgrades.sturdy_bricks.name": "Briques solides",
|
"upgrades.sturdy_bricks.name": "Briques solides",
|
||||||
"upgrades.sturdy_bricks.tooltip": "+{{lvl}} points de vie des briques, +{{percent}}% pièces quand elles sont détruites",
|
"upgrades.sturdy_bricks.tooltip": "+{{lvl}} PV des briques, +{{percent}}% pièces",
|
||||||
"upgrades.sturdy_bricks.verbose_description": "Chaque niveau de cet amélioration ajoute un PV à toutes les briques. Vous pouvez consulter le nombre de PV avec l'avantage \"clairvoyant\". Vous pouvez augmenter les dégâts des balles en obtenant l'amélioration \"Balle perçante\". Chaque niveau de cet amélioration ajoute 50% de pièces en plus.",
|
"upgrades.sturdy_bricks.verbose_description": "Chaque niveau de cet amélioration ajoute un PV à toutes les briques. Vous pouvez consulter le nombre de PV avec l'avantage \"clairvoyant\". Vous pouvez augmenter les dégâts des balles en obtenant l'amélioration \"Balle perçante\". Chaque niveau de cet amélioration ajoute 50% de pièces en plus.",
|
||||||
"upgrades.superhot.name": "SUPER HOT",
|
"upgrades.superhot.name": "SUPER HOT",
|
||||||
"upgrades.superhot.tooltip": "Le temps avance quand la raquette bouge. ",
|
"upgrades.superhot.tooltip": "Le temps avance quand la raquette bouge. ",
|
||||||
"upgrades.superhot.verbose_description": "SUPER HOT SUPER HOT SUPER HOT SUPER HOT",
|
"upgrades.superhot.verbose_description": "SUPER HOT SUPER HOT SUPER HOT SUPER HOT",
|
||||||
"upgrades.telekinesis.help_plural": "Effet plus fort sur la balle",
|
|
||||||
"upgrades.telekinesis.name": "Télékinésie",
|
"upgrades.telekinesis.name": "Télékinésie",
|
||||||
"upgrades.telekinesis.tooltip": "Contrôler la trajectoire de la balle",
|
"upgrades.telekinesis.tooltip": "Contrôler la trajectoire de la balle",
|
||||||
"upgrades.telekinesis.verbose_description": "Vous contrôlez la balle pendant qu'elle monte.",
|
"upgrades.telekinesis.verbose_description": "Vous contrôlez la balle pendant qu'elle monte.",
|
||||||
|
|
|
@ -110,6 +110,7 @@ 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)
|
||||||
for (let key in params) {
|
for (let key in params) {
|
||||||
template = template.split("{{" + key + "}}").join(`${params[key]}`);
|
template = template.split("{{" + key + "}}").join(`${params[key]}`);
|
||||||
}
|
}
|
||||||
|
|
|
@ -263,7 +263,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": "Комбо начинается с {{coins}} вместо 1.",
|
"upgrades.base_combo.tooltip": "",
|
||||||
"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": "Большие взрывы",
|
||||||
|
@ -305,7 +305,6 @@
|
||||||
"upgrades.extra_levels.name": "Еще 5 минут",
|
"upgrades.extra_levels.name": "Еще 5 минут",
|
||||||
"upgrades.extra_levels.tooltip": "Играйте {{count}} уровней вместо 7",
|
"upgrades.extra_levels.tooltip": "Играйте {{count}} уровней вместо 7",
|
||||||
"upgrades.extra_levels.verbose_description": "По умолчанию игра может длиться максимум 7 уровней, после чего игра заканчивается.\n\nКаждый уровень этой привилегии позволяет вам подняться на один уровень выше. Последние уровни часто являются теми, где вы набираете больше всего очков, так что разница может быть значительной.",
|
"upgrades.extra_levels.verbose_description": "По умолчанию игра может длиться максимум 7 уровней, после чего игра заканчивается.\n\nКаждый уровень этой привилегии позволяет вам подняться на один уровень выше. Последние уровни часто являются теми, где вы набираете больше всего очков, так что разница может быть значительной.",
|
||||||
"upgrades.extra_life.help_plural": "Ваш (последний) мяч отскочит на дно, а не будет потерян ({{lvl}} раз).",
|
|
||||||
"upgrades.extra_life.name": "Экстра жизнь",
|
"upgrades.extra_life.name": "Экстра жизнь",
|
||||||
"upgrades.extra_life.tooltip": "Мяч отскочит один раз на нижнюю линию, после чего будет потерян.",
|
"upgrades.extra_life.tooltip": "Мяч отскочит один раз на нижнюю линию, после чего будет потерян.",
|
||||||
"upgrades.extra_life.verbose_description": "Обычно у вас один шар, и игра заканчивается, как только вы его бросите.\n\nЭто преимущество добавляет белую полоску в нижней части экрана, которая сохранит шарик один раз и разобьется в процессе.\n\nВы будете терять один уровень этого перка каждый раз, когда мяч будет отскакивать в нижнюю часть экрана.",
|
"upgrades.extra_life.verbose_description": "Обычно у вас один шар, и игра заканчивается, как только вы его бросите.\n\nЭто преимущество добавляет белую полоску в нижней части экрана, которая сохранит шарик один раз и разобьется в процессе.\n\nВы будете терять один уровень этого перка каждый раз, когда мяч будет отскакивать в нижнюю часть экрана.",
|
||||||
|
@ -385,9 +384,8 @@
|
||||||
"upgrades.right_is_lava.name": "Избегайте правой стороны",
|
"upgrades.right_is_lava.name": "Избегайте правой стороны",
|
||||||
"upgrades.right_is_lava.tooltip": "+{{lvl}} комбо на кирпич. Комбо сбрасывается, если мяч попадает в правую часть экрана",
|
"upgrades.right_is_lava.tooltip": "+{{lvl}} комбо на кирпич. Комбо сбрасывается, если мяч попадает в правую часть экрана",
|
||||||
"upgrades.right_is_lava.verbose_description": "Каждый раз, когда вы разбиваете кирпич, ваше комбо увеличивается на один, так что вы получите на одну монету больше со всех следующих разбитых кирпичей.\n\nОднако, как только ваш шарик попадет в правую сторону, ваша комбинация обнулится.\n\nКак только ваше комбо увеличится, правая сторона станет красной, чтобы напомнить вам, что вы должны избегать столкновения с ней.\n",
|
"upgrades.right_is_lava.verbose_description": "Каждый раз, когда вы разбиваете кирпич, ваше комбо увеличивается на один, так что вы получите на одну монету больше со всех следующих разбитых кирпичей.\n\nОднако, как только ваш шарик попадет в правую сторону, ваша комбинация обнулится.\n\nКак только ваше комбо увеличится, правая сторона станет красной, чтобы напомнить вам, что вы должны избегать столкновения с ней.\n",
|
||||||
"upgrades.sacrifice.help_l1": "Потеря жизни очищает все кирпичи",
|
|
||||||
"upgrades.sacrifice.help_over": "Потеряв жизнь {{lvl}}x, комбо затем очищает все кирпичи.",
|
|
||||||
"upgrades.sacrifice.name": "Жертвоприношение",
|
"upgrades.sacrifice.name": "Жертвоприношение",
|
||||||
|
"upgrades.sacrifice.tooltip": "Потеряв жизнь {{lvl}}x, комбо затем очищает все кирпичи.",
|
||||||
"upgrades.sacrifice.verbose_description": "Это может поднять комбо довольно высоко.",
|
"upgrades.sacrifice.verbose_description": "Это может поднять комбо довольно высоко.",
|
||||||
"upgrades.sapper.help_plural": "Первые разбитые {{lvl}} кирпичей становятся бомбами.",
|
"upgrades.sapper.help_plural": "Первые разбитые {{lvl}} кирпичей становятся бомбами.",
|
||||||
"upgrades.sapper.name": "Сапёр",
|
"upgrades.sapper.name": "Сапёр",
|
||||||
|
@ -405,7 +403,6 @@
|
||||||
"upgrades.side_kick.name": "Левая рука",
|
"upgrades.side_kick.name": "Левая рука",
|
||||||
"upgrades.side_kick.tooltip": "+{{lvl}} комбо за каждый кирпич, разбитый слева, -{{loss}} в противном случае",
|
"upgrades.side_kick.tooltip": "+{{lvl}} комбо за каждый кирпич, разбитый слева, -{{loss}} в противном случае",
|
||||||
"upgrades.side_kick.verbose_description": "Ударьте кирпич с левой стороны, чтобы получить одно комбо, но избегайте ударов с правой стороны, так как это снимет 2 комбо. Удары сверху и снизу не дают никакого эффекта.",
|
"upgrades.side_kick.verbose_description": "Ударьте кирпич с левой стороны, чтобы получить одно комбо, но избегайте ударов с правой стороны, так как это снимет 2 комбо. Удары сверху и снизу не дают никакого эффекта.",
|
||||||
"upgrades.skip_last.help_plural": "Последние {{lvl}} кирпичей взорвутся.",
|
|
||||||
"upgrades.skip_last.name": "Легкая очистка",
|
"upgrades.skip_last.name": "Легкая очистка",
|
||||||
"upgrades.skip_last.tooltip": "Последний кирпич взорвется.",
|
"upgrades.skip_last.tooltip": "Последний кирпич взорвется.",
|
||||||
"upgrades.skip_last.verbose_description": "Вам нужно разбить все кирпичи, чтобы перейти на следующий уровень. Однако получить последние может быть непросто.\n\nРаннее прохождение уровня дает дополнительные возможности при улучшении. Никогда не пропускать кирпичи также очень полезно.\n\nТак что если вам трудно разбить последние кирпичи, получите эту привилегию несколько раз.",
|
"upgrades.skip_last.verbose_description": "Вам нужно разбить все кирпичи, чтобы перейти на следующий уровень. Однако получить последние может быть непросто.\n\nРаннее прохождение уровня дает дополнительные возможности при улучшении. Никогда не пропускать кирпичи также очень полезно.\n\nТак что если вам трудно разбить последние кирпичи, получите эту привилегию несколько раз.",
|
||||||
|
@ -430,7 +427,6 @@
|
||||||
"upgrades.superhot.name": "СУПЕР ГОРЯЧИЙ",
|
"upgrades.superhot.name": "СУПЕР ГОРЯЧИЙ",
|
||||||
"upgrades.superhot.tooltip": "Время движется, когда движется весло.",
|
"upgrades.superhot.tooltip": "Время движется, когда движется весло.",
|
||||||
"upgrades.superhot.verbose_description": "СУПЕР ГОРЯЧИЙ СУПЕР ГОРЯЧИЙ СУПЕР ГОРЯЧИЙ СУПЕР ГОРЯЧИЙ",
|
"upgrades.superhot.verbose_description": "СУПЕР ГОРЯЧИЙ СУПЕР ГОРЯЧИЙ СУПЕР ГОРЯЧИЙ СУПЕР ГОРЯЧИЙ",
|
||||||
"upgrades.telekinesis.help_plural": "Более сильное воздействие на мяч",
|
|
||||||
"upgrades.telekinesis.name": "Телекинез",
|
"upgrades.telekinesis.name": "Телекинез",
|
||||||
"upgrades.telekinesis.tooltip": "Паддл управляет траекторией полета мяча",
|
"upgrades.telekinesis.tooltip": "Паддл управляет траекторией полета мяча",
|
||||||
"upgrades.telekinesis.verbose_description": "Вы управляете мячом, пока он поднимается вверх.",
|
"upgrades.telekinesis.verbose_description": "Вы управляете мячом, пока он поднимается вверх.",
|
||||||
|
|
|
@ -263,7 +263,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": "Kombo 1 yerine {{coins}} 'dan başlar.",
|
"upgrades.base_combo.tooltip": "",
|
||||||
"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",
|
||||||
|
@ -305,7 +305,6 @@
|
||||||
"upgrades.extra_levels.name": "5 dakika daha",
|
"upgrades.extra_levels.name": "5 dakika daha",
|
||||||
"upgrades.extra_levels.tooltip": "7 yerine {{count}} seviye oyna",
|
"upgrades.extra_levels.tooltip": "7 yerine {{count}} seviye oyna",
|
||||||
"upgrades.extra_levels.verbose_description": "Varsayılan oyun en fazla 7 seviye sürebilir, ardından oyun biter. \n\nBu avantajın her seviyesi bir seviye daha yukarı çıkmanızı sağlar. Son seviyeler genellikle en fazla puanı aldığınız seviyelerdir, bu yüzden fark dramatik olabilir.",
|
"upgrades.extra_levels.verbose_description": "Varsayılan oyun en fazla 7 seviye sürebilir, ardından oyun biter. \n\nBu avantajın her seviyesi bir seviye daha yukarı çıkmanızı sağlar. Son seviyeler genellikle en fazla puanı aldığınız seviyelerdir, bu yüzden fark dramatik olabilir.",
|
||||||
"upgrades.extra_life.help_plural": "(Son) topunuz kaybolmak yerine ({{lvl}} kez) dipte sekecektir.",
|
|
||||||
"upgrades.extra_life.name": "Ekstra Hayat",
|
"upgrades.extra_life.name": "Ekstra Hayat",
|
||||||
"upgrades.extra_life.tooltip": "Top, kaybedilmeden önce alt çizgide bir kez sekecektir.",
|
"upgrades.extra_life.tooltip": "Top, kaybedilmeden önce alt çizgide bir kez sekecektir.",
|
||||||
"upgrades.extra_life.verbose_description": "Normalde bir topunuz vardır ve oyun onu bıraktığınız anda biter.\n\nBu yetenek, ekranın altına bir kez topu kurtaracak ve bu süreçte kırılacak beyaz bir çubuk ekler. \n\nEkranın altında bir top her zıpladığında bu yeteneğin bir seviyesini kaybedersiniz.",
|
"upgrades.extra_life.verbose_description": "Normalde bir topunuz vardır ve oyun onu bıraktığınız anda biter.\n\nBu yetenek, ekranın altına bir kez topu kurtaracak ve bu süreçte kırılacak beyaz bir çubuk ekler. \n\nEkranın altında bir top her zıpladığında bu yeteneğin bir seviyesini kaybedersiniz.",
|
||||||
|
@ -385,9 +384,8 @@
|
||||||
"upgrades.right_is_lava.name": "Sağ taraftan kaçının",
|
"upgrades.right_is_lava.name": "Sağ taraftan kaçının",
|
||||||
"upgrades.right_is_lava.tooltip": "Tuğla başına +{{lvl}} kombo. Top ekranın sağ tarafına çarparsa kombo sıfırlanır",
|
"upgrades.right_is_lava.tooltip": "Tuğla başına +{{lvl}} kombo. Top ekranın sağ tarafına çarparsa kombo sıfırlanır",
|
||||||
"upgrades.right_is_lava.verbose_description": "Bir tuğlayı kırdığınızda, kombonuz bir artacak, böylece kırdığınız sonraki tüm tuğlalardan bir jeton daha alacaksınız.\n\nAncak, topunuz sağ tarafa çarptığı anda kombonuz sıfırlanacaktır.\n\nKombonuz yükseldiği anda, onlara çarpmaktan kaçınmanız gerektiğini hatırlatmak için sağ taraf kırmızı olur.",
|
"upgrades.right_is_lava.verbose_description": "Bir tuğlayı kırdığınızda, kombonuz bir artacak, böylece kırdığınız sonraki tüm tuğlalardan bir jeton daha alacaksınız.\n\nAncak, topunuz sağ tarafa çarptığı anda kombonuz sıfırlanacaktır.\n\nKombonuz yükseldiği anda, onlara çarpmaktan kaçınmanız gerektiğini hatırlatmak için sağ taraf kırmızı olur.",
|
||||||
"upgrades.sacrifice.help_l1": "Bir canı kaybetmek tüm tuğlaları temizler",
|
|
||||||
"upgrades.sacrifice.help_over": "Komboya {{lvl}}can eklendiğinde tüm tuğlalar temizlenir",
|
|
||||||
"upgrades.sacrifice.name": "Kurban etmek",
|
"upgrades.sacrifice.name": "Kurban etmek",
|
||||||
|
"upgrades.sacrifice.tooltip": "Komboya {{lvl}}can eklendiğinde tüm tuğlalar temizlenir",
|
||||||
"upgrades.sacrifice.verbose_description": "Bu, komboyu oldukça yükseğe çıkarabilir.",
|
"upgrades.sacrifice.verbose_description": "Bu, komboyu oldukça yükseğe çıkarabilir.",
|
||||||
"upgrades.sapper.help_plural": "İlk kırılan {{lvl}} tuğla bombaya dönüşür.",
|
"upgrades.sapper.help_plural": "İlk kırılan {{lvl}} tuğla bombaya dönüşür.",
|
||||||
"upgrades.sapper.name": "Kazmacı",
|
"upgrades.sapper.name": "Kazmacı",
|
||||||
|
@ -405,7 +403,6 @@
|
||||||
"upgrades.side_kick.name": "Solak",
|
"upgrades.side_kick.name": "Solak",
|
||||||
"upgrades.side_kick.tooltip": "Soldan kırılan tuğla başına +{{lvl}} kombo, aksi takdirde -{{loss}} ",
|
"upgrades.side_kick.tooltip": "Soldan kırılan tuğla başına +{{lvl}} kombo, aksi takdirde -{{loss}} ",
|
||||||
"upgrades.side_kick.verbose_description": "Tuğlanın sol tarafına vurarak bir kombo elde edin, ancak sağ tarafına vurmaktan kaçının çünkü bu 2 komboyu kaldırır. Üstten ve alttan vurmanın bir etkisi yoktur.",
|
"upgrades.side_kick.verbose_description": "Tuğlanın sol tarafına vurarak bir kombo elde edin, ancak sağ tarafına vurmaktan kaçının çünkü bu 2 komboyu kaldırır. Üstten ve alttan vurmanın bir etkisi yoktur.",
|
||||||
"upgrades.skip_last.help_plural": "Son {{lvl}} tuğla patlayacak.",
|
|
||||||
"upgrades.skip_last.name": "Kolay Temizlik",
|
"upgrades.skip_last.name": "Kolay Temizlik",
|
||||||
"upgrades.skip_last.tooltip": "Son tuğla patlayacak.",
|
"upgrades.skip_last.tooltip": "Son tuğla patlayacak.",
|
||||||
"upgrades.skip_last.verbose_description": "Bir sonraki seviyeye geçmek için tüm tuğlaları kırmanız gerekir. Ancak son tuğlaları elde etmek zor olabilir. \n\nBir seviyeyi erken bitirmek, yükseltme sırasında ekstra seçenekler sunar. Tuğlaları asla kaçırmamak da çok faydalıdır. \n\nYani son tuğlaları kırmakta zorlanıyorsanız, bu yeteneği birkaç kez elde etmek yardımcı olabilir.",
|
"upgrades.skip_last.verbose_description": "Bir sonraki seviyeye geçmek için tüm tuğlaları kırmanız gerekir. Ancak son tuğlaları elde etmek zor olabilir. \n\nBir seviyeyi erken bitirmek, yükseltme sırasında ekstra seçenekler sunar. Tuğlaları asla kaçırmamak da çok faydalıdır. \n\nYani son tuğlaları kırmakta zorlanıyorsanız, bu yeteneği birkaç kez elde etmek yardımcı olabilir.",
|
||||||
|
@ -430,7 +427,6 @@
|
||||||
"upgrades.superhot.name": "SÜPER SICAK",
|
"upgrades.superhot.name": "SÜPER SICAK",
|
||||||
"upgrades.superhot.tooltip": "Kürek hareket ettikçe zaman da hareket eder.",
|
"upgrades.superhot.tooltip": "Kürek hareket ettikçe zaman da hareket eder.",
|
||||||
"upgrades.superhot.verbose_description": "SÜPER SICAK SÜPER SICAK SÜPER SICAK SÜPER SICAK",
|
"upgrades.superhot.verbose_description": "SÜPER SICAK SÜPER SICAK SÜPER SICAK SÜPER SICAK",
|
||||||
"upgrades.telekinesis.help_plural": "Top üzerinde daha güçlü etki",
|
|
||||||
"upgrades.telekinesis.name": "Telekinezi",
|
"upgrades.telekinesis.name": "Telekinezi",
|
||||||
"upgrades.telekinesis.tooltip": "Kürek topun yörüngesini kontrol eder",
|
"upgrades.telekinesis.tooltip": "Kürek topun yörüngesini kontrol eder",
|
||||||
"upgrades.telekinesis.verbose_description": "Top yukarı doğru giderken onu kontrol ediyorsun.",
|
"upgrades.telekinesis.verbose_description": "Top yukarı doğru giderken onu kontrol ediyorsun.",
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
<button id="close-modale"></button>
|
<button id="close-modale"></button>
|
||||||
</div>
|
</div>
|
||||||
<div id="tooltip" style="display: none"></div>
|
<div id="tooltip" style="display: none"></div>
|
||||||
|
<div id="tooltip_mobile" style="display: none"></div>
|
||||||
<script type="module">
|
<script type="module">
|
||||||
import "./game.ts";
|
import "./game.ts";
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -7,10 +7,7 @@ const levelIconHTMLCanvasCtx =
|
||||||
alpha: true,
|
alpha: true,
|
||||||
}) as CanvasRenderingContext2D);
|
}) as CanvasRenderingContext2D);
|
||||||
|
|
||||||
export function levelIconHTML(
|
export function levelIconHTML(bricks: string[], levelSize: number) {
|
||||||
bricks: string[],
|
|
||||||
levelSize: number,
|
|
||||||
) {
|
|
||||||
const size = 46;
|
const size = 46;
|
||||||
const c = levelIconHTMLCanvas;
|
const c = levelIconHTMLCanvas;
|
||||||
const ctx = levelIconHTMLCanvasCtx;
|
const ctx = levelIconHTMLCanvasCtx;
|
||||||
|
|
|
@ -8,7 +8,9 @@ import { levelIconHTML } from "./levelIcon";
|
||||||
|
|
||||||
import { automaticBackgroundColor } from "./pure_functions";
|
import { automaticBackgroundColor } from "./pure_functions";
|
||||||
|
|
||||||
export const upgrades = [...rawUpgrades].sort((a, b) => a.category - b.category || a.threshold - b.threshold) as Upgrade[];
|
export const upgrades = [...rawUpgrades].sort(
|
||||||
|
(a, b) => a.category - b.category || a.threshold - b.threshold,
|
||||||
|
) as Upgrade[];
|
||||||
const palette = _palette as Palette;
|
const palette = _palette as Palette;
|
||||||
|
|
||||||
const rawLevelsList = _rawLevelsList as RawLevel[];
|
const rawLevelsList = _rawLevelsList as RawLevel[];
|
||||||
|
@ -43,4 +45,3 @@ export const allLevelsAndIcons = rawLevelsList.map(
|
||||||
export const allLevels = allLevelsAndIcons.filter(
|
export const allLevels = allLevelsAndIcons.filter(
|
||||||
(l) => !l.name.startsWith("icon:"),
|
(l) => !l.name.startsWith("icon:"),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -366,7 +366,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 = 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++) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { getHistory } from "./gameOver";
|
import { getHistory } from "./gameOver";
|
||||||
import {appVersion, icons, upgrades} from "./loadGameData";
|
import { appVersion, icons, upgrades } from "./loadGameData";
|
||||||
import { t } from "./i18n/i18n";
|
import { t } from "./i18n/i18n";
|
||||||
import { asyncAlert } from "./asyncAlert";
|
import { asyncAlert } from "./asyncAlert";
|
||||||
import { getSettingValue, setSettingValue } from "./settings";
|
import { getSettingValue, setSettingValue } from "./settings";
|
||||||
|
|
|
@ -31,7 +31,7 @@ export async function openStartingPerksEditor() {
|
||||||
const buttons = avaliable.map((u) => {
|
const buttons = avaliable.map((u) => {
|
||||||
const checked = isStartingPerk(u);
|
const checked = isStartingPerk(u);
|
||||||
return {
|
return {
|
||||||
icon: icons['icon:'+u.id],
|
icon: icons["icon:" + u.id],
|
||||||
text: u.name,
|
text: u.name,
|
||||||
tooltip: u.help(1),
|
tooltip: u.help(1),
|
||||||
value: [u],
|
value: [u],
|
||||||
|
|
161
src/tooltip.ts
161
src/tooltip.ts
|
@ -1,61 +1,116 @@
|
||||||
import { isOptionOn } from "./options";
|
import {isOptionOn} from "./options";
|
||||||
|
|
||||||
export function setupTooltips() {
|
export function setupTooltips() {
|
||||||
const tooltip = document.getElementById("tooltip") as HTMLDivElement;
|
|
||||||
if (isOptionOn("mobile-mode")) {
|
|
||||||
tooltip.style.display = "none";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
function updateTooltipPosition(e: MouseEvent) {
|
|
||||||
|
if (isOptionOn("mobile-mode")) {
|
||||||
|
setupMobileTooltips(tooltip)
|
||||||
|
} else {
|
||||||
|
setupDesktopTooltips(tooltip)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const tooltip = document.getElementById("tooltip") as 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"})`;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.addEventListener( "touchstart", openTooltip, true )
|
||||||
|
document.body.addEventListener( "mousedown", openTooltip, true )
|
||||||
|
|
||||||
|
function closeTooltip(e:Event){
|
||||||
|
const hovering = (e.target as HTMLElement)
|
||||||
|
if (!hovering?.hasAttribute('data-help-content')) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
e.stopPropagation()
|
||||||
|
e.preventDefault()
|
||||||
|
tooltip.style.display = "none"
|
||||||
|
}
|
||||||
|
|
||||||
|
document.body.addEventListener( "touchend", closeTooltip, true )
|
||||||
|
document.body.addEventListener( "mouseup", closeTooltip, true )
|
||||||
|
|
||||||
|
function ignoreClick(e:Event){
|
||||||
|
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 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,
|
||||||
|
);
|
||||||
|
}
|
2
src/types.d.ts
vendored
2
src/types.d.ts
vendored
|
@ -30,7 +30,7 @@ export type Upgrade = {
|
||||||
category: number;
|
category: number;
|
||||||
max: number;
|
max: number;
|
||||||
help: (lvl: number) => string;
|
help: (lvl: number) => string;
|
||||||
fullHelp: string;
|
fullHelp: (lvl: number) => string;
|
||||||
requires: PerkId | "";
|
requires: PerkId | "";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
1711
src/upgrades.ts
1711
src/upgrades.ts
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue