This commit is contained in:
Renan LE CARO 2025-04-21 15:41:01 +02:00
parent 88d746e7a1
commit 6b54fb82d6
12 changed files with 271 additions and 8 deletions

60
dist/index.html vendored

File diff suppressed because one or more lines are too long

View file

@ -1379,5 +1379,19 @@
"bricks": "__yyy___yrrry_yOOOrOyyOOrOOyyOOOOOy_yOrOy___yyy__", "bricks": "__yyy___yrrry_yOOOrOyyOOrOOyyOOOOOy_yOrOy___yyy__",
"svg": null, "svg": null,
"color": "" "color": ""
},
{
"name": "icon:wrap_left",
"size": 8,
"bricks": "WWWWWWWWW_W____WW__v___WW___v__WW____v_WWp____pWW_v____W__WWW___",
"svg": null,
"color": ""
},
{
"name": "icon:wrap_right",
"size": 8,
"bricks": "WWWWWWWWW___W__WW__v___WW_v____WWp____pWW____v_WW___v__W__WWW___",
"svg": null,
"color": ""
} }
] ]

View file

@ -1224,6 +1224,38 @@ export function gameStateTick(
const hitBorder = bordersHitCheck(gameState, coin, coin.size / 2, frames); const hitBorder = bordersHitCheck(gameState, coin, coin.size / 2, frames);
if (
gameState.perks.wrap_left >1&&
hitBorder % 2 &&
coin.x < gameState.offsetX + gameState.gameZoneWidth / 2
) {
schedulGameSound(gameState, "plouf", coin.x, 1)
coin.x= gameState.offsetX + gameState.gameZoneWidth - gameState.coinSize/2
if(coin.vx>0){
coin.vx*=-1
}
if(!isOptionOn('basic')){
spawnExplosion(gameState, 3 , coin.x, coin.y, "#6262EA");
spawnImplosion(gameState, 3 , coin.previousX, coin.previousY, "#6262EA");
}
}else if (
gameState.perks.wrap_right>1 &&
hitBorder % 2 &&
coin.x > gameState.offsetX + gameState.gameZoneWidth / 2
) {
schedulGameSound(gameState, "plouf", coin.x, 1)
coin.x= gameState.offsetX + gameState.coinSize/2
if(coin.vx<0){
coin.vx*=-1
}
if(!isOptionOn('basic')){
spawnExplosion(gameState, 3 , coin.x, coin.y, "#6262EA");
spawnImplosion(gameState, 3 , coin.previousX, coin.previousY, "#6262EA");
}
}
if ( if (
coin.previousY < gameState.gameZoneHeight && coin.previousY < gameState.gameZoneHeight &&
coin.y > gameState.gameZoneHeight && coin.y > gameState.gameZoneHeight &&
@ -1663,6 +1695,39 @@ export function ballTick(gameState: GameState, ball: Ball, frames: number) {
resetCombo(gameState, ball.x, ball.y); resetCombo(gameState, ball.x, ball.y);
} }
if (
gameState.perks.wrap_left &&
borderHitCode % 2 &&
ball.x < gameState.offsetX + gameState.gameZoneWidth / 2
) {
schedulGameSound(gameState, "plouf", ball.x, 1)
ball.x= gameState.offsetX + gameState.gameZoneWidth - gameState.ballSize/2
if(ball.vx>0){
ball.vx*=-1
}
if(!isOptionOn('basic')){
spawnExplosion(gameState, 7 , ball.x, ball.y, "#6262EA");
spawnImplosion(gameState, 7 , ball.previousX, ball.previousY, "#6262EA");
}
}else if (
gameState.perks.wrap_right &&
borderHitCode % 2 &&
ball.x > gameState.offsetX + gameState.gameZoneWidth / 2
) {
schedulGameSound(gameState, "plouf", ball.x, 1)
ball.x= gameState.offsetX + gameState.ballSize/2
if(ball.vx<0){
ball.vx*=-1
}
if(!isOptionOn('basic')){
spawnExplosion(gameState, 7 , ball.x, ball.y, "#6262EA");
spawnImplosion(gameState, 7 , ball.previousX, ball.previousY, "#6262EA");
}
}
if ( if (
gameState.perks.right_is_lava && gameState.perks.right_is_lava &&
borderHitCode % 2 && borderHitCode % 2 &&

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "",
"upgrades.wrap_right.name": "",
"upgrades.wrap_right.tooltip": "",
"upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "يو يو", "upgrades.yoyo.name": "يو يو",
"upgrades.yoyo.tooltip": "الكرة تسقط نحو المضرب", "upgrades.yoyo.tooltip": "الكرة تسقط نحو المضرب",
"upgrades.yoyo.verbose_description": "إنه عكس التحريك الذهني، أي التحكم بالكرة أثناء سقوطها مرة أخرى إلى الأسفل.", "upgrades.yoyo.verbose_description": "إنه عكس التحريك الذهني، أي التحكم بالكرة أثناء سقوطها مرة أخرى إلى الأسفل.",

View file

@ -16387,6 +16387,116 @@
</concept_node> </concept_node>
</children> </children>
</folder_node> </folder_node>
<folder_node>
<name>wrap_right</name>
<children>
<concept_node>
<name>name</name>
<description/>
<comment/>
<translations>
<translation>
<language>ar-LB</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>tooltip</name>
<description/>
<comment/>
<translations>
<translation>
<language>ar-LB</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
<concept_node>
<name>verbose_description</name>
<description/>
<comment/>
<translations>
<translation>
<language>ar-LB</language>
<approved>false</approved>
</translation>
<translation>
<language>de-DE</language>
<approved>false</approved>
</translation>
<translation>
<language>en-US</language>
<approved>false</approved>
</translation>
<translation>
<language>es-CL</language>
<approved>false</approved>
</translation>
<translation>
<language>fr-FR</language>
<approved>false</approved>
</translation>
<translation>
<language>ru-RU</language>
<approved>false</approved>
</translation>
<translation>
<language>tr-TR</language>
<approved>false</approved>
</translation>
</translations>
</concept_node>
</children>
</folder_node>
<folder_node> <folder_node>
<name>yoyo</name> <name>yoyo</name>
<children> <children>

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "",
"upgrades.wrap_right.name": "",
"upgrades.wrap_right.tooltip": "",
"upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "Yo-Yo", "upgrades.yoyo.name": "Yo-Yo",
"upgrades.yoyo.tooltip": "Ball fällt in Richtung Paddel", "upgrades.yoyo.tooltip": "Ball fällt in Richtung Paddel",
"upgrades.yoyo.verbose_description": "Es ist das Gegenteil von Telekinese, den Ball zu kontrollieren, während er wieder nach unten fällt.", "upgrades.yoyo.verbose_description": "Es ist das Gegenteil von Telekinese, den Ball zu kontrollieren, während er wieder nach unten fällt.",

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "Wrap left", "upgrades.wrap_left.name": "Wrap left",
"upgrades.wrap_left.tooltip": "Hitting the left side teleports the ball to the right side", "upgrades.wrap_left.tooltip": "Hitting the left side teleports the ball to the right side",
"upgrades.wrap_left.verbose_description": "Higher levels might teleport coins too", "upgrades.wrap_left.verbose_description": "Higher levels might teleport coins too",
"upgrades.wrap_right.name": "Wrap right",
"upgrades.wrap_right.tooltip": "Hitting the right side teleports the ball to the left side",
"upgrades.wrap_right.verbose_description": "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": "Ball falls toward 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.",

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "",
"upgrades.wrap_right.name": "",
"upgrades.wrap_right.tooltip": "",
"upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "Yo-Yo", "upgrades.yoyo.name": "Yo-Yo",
"upgrades.yoyo.tooltip": "La pelota desciende hacia la raqueta.", "upgrades.yoyo.tooltip": "La pelota desciende hacia la raqueta.",
"upgrades.yoyo.verbose_description": "Es lo contrario de la Telequinesis: controlar la pelota mientras cae hacia la raqueta.", "upgrades.yoyo.verbose_description": "Es lo contrario de la Telequinesis: controlar la pelota mientras cae hacia la raqueta.",

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "",
"upgrades.wrap_right.name": "",
"upgrades.wrap_right.tooltip": "",
"upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "Yo-yo", "upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "La balle se dirige vers la raquette en descendant.", "upgrades.yoyo.tooltip": "La balle se dirige vers la raquette en descendant.",
"upgrades.yoyo.verbose_description": "C'est l'inverse de Télékinésie, contrôlez la balle alors qu'elle redescend vers la raquette.", "upgrades.yoyo.verbose_description": "C'est l'inverse de Télékinésie, contrôlez la balle alors qu'elle redescend vers la raquette.",

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "",
"upgrades.wrap_right.name": "",
"upgrades.wrap_right.tooltip": "",
"upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "Йо-йо", "upgrades.yoyo.name": "Йо-йо",
"upgrades.yoyo.tooltip": "Мяч падает на лопатку", "upgrades.yoyo.tooltip": "Мяч падает на лопатку",
"upgrades.yoyo.verbose_description": "Это противоположность телекинезу: управляйте мячом, пока он падает обратно.", "upgrades.yoyo.verbose_description": "Это противоположность телекинезу: управляйте мячом, пока он падает обратно.",

View file

@ -454,6 +454,9 @@
"upgrades.wrap_left.name": "", "upgrades.wrap_left.name": "",
"upgrades.wrap_left.tooltip": "", "upgrades.wrap_left.tooltip": "",
"upgrades.wrap_left.verbose_description": "", "upgrades.wrap_left.verbose_description": "",
"upgrades.wrap_right.name": "",
"upgrades.wrap_right.tooltip": "",
"upgrades.wrap_right.verbose_description": "",
"upgrades.yoyo.name": "Yo-yo", "upgrades.yoyo.name": "Yo-yo",
"upgrades.yoyo.tooltip": "Top küreğe doğru düşer", "upgrades.yoyo.tooltip": "Top küreğe doğru düşer",
"upgrades.yoyo.verbose_description": "Telekinezinin tam tersi, topun aşağı düşerken kontrol edilmesi.", "upgrades.yoyo.verbose_description": "Telekinezinin tam tersi, topun aşağı düşerken kontrol edilmesi.",

View file

@ -882,5 +882,14 @@ export const rawUpgrades = [
name: t("upgrades.wrap_left.name"), name: t("upgrades.wrap_left.name"),
help: () => t("upgrades.wrap_left.tooltip"), help: () => t("upgrades.wrap_left.tooltip"),
fullHelp: t("upgrades.wrap_left.verbose_description"), fullHelp: t("upgrades.wrap_left.verbose_description"),
}, {
requires: "",
threshold: 245000,
gift: false,
id: "wrap_right",
max: 1,
name: t("upgrades.wrap_right.name"),
help: () => t("upgrades.wrap_right.tooltip"),
fullHelp: t("upgrades.wrap_right.verbose_description"),
}, },
] as const; ] as const;