mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-20 04:05:06 -04:00
Build 29071527
This commit is contained in:
parent
9ae649743c
commit
c37b860fe3
13 changed files with 116 additions and 19 deletions
|
@ -29,6 +29,8 @@ Some upgrades currently are not really useful
|
|||
|
||||
## Done
|
||||
|
||||
- super hot : time moves only when paddle moves. Later levels slow down even more the time when you're not moving.
|
||||
- fixed memory leak in language detection code
|
||||
- transparency : ball becomes transparent towards top of screen, +50% coins.
|
||||
- space coins : coins bounce without loosing momentum
|
||||
- trickledown : coins spawn at the top of the screen
|
||||
|
@ -248,9 +250,8 @@ Some upgrades currently are not really useful
|
|||
- cash out : double last level's gains
|
||||
- snowball : Combo resets every 0.1s . +1 combo for each combo gained Since last reset.
|
||||
- Chain reaction : +lvl*lvl combo per brick broken by an explosion, combo resets after explosion is over
|
||||
- coins doubled when touched by ball, lvl times, looks smaller and lighter
|
||||
|
||||
- coins stained by balls
|
||||
- [vikingerik] : reward multiballs with combo somehow
|
||||
- fast pause : pause delay divided by {{lvl}} (helps with teleport)
|
||||
- [colin] Capital - les vies non perdues à la fin du niveau rapportent un bonus de points
|
||||
- ban 3 random perks from pool, gain 2 upgrades
|
||||
|
@ -327,6 +328,7 @@ Some upgrades currently are not really useful
|
|||
|
||||
- letters and an associated word or name
|
||||
- famous characters and movies
|
||||
- famous places : eiffel tower, taj mahal, etc..
|
||||
- fruits
|
||||
- animals
|
||||
- countries flags and shapes
|
||||
|
|
|
@ -29,8 +29,8 @@ android {
|
|||
applicationId = "me.lecaro.breakout"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 29071489
|
||||
versionName = "29071489"
|
||||
versionCode = 29071527
|
||||
versionName = "29071527"
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
useSupportLibrary = true
|
||||
|
|
File diff suppressed because one or more lines are too long
27
dist/index.html
vendored
27
dist/index.html
vendored
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
// The version of the cache.
|
||||
const VERSION = "29071489";
|
||||
const VERSION = "29071527";
|
||||
|
||||
// The name of the cache
|
||||
const CACHE_NAME = `breakout-71-${VERSION}`;
|
||||
|
|
|
@ -570,8 +570,8 @@
|
|||
},
|
||||
{
|
||||
"name": "icon:soft_reset",
|
||||
"size": 8,
|
||||
"bricks": "____yy______yyy_____yyyy____yyyyyyyyyyyyyyyyyyyy_yyyyyy___yyyy__",
|
||||
"size": 9,
|
||||
"bricks": "__rr______rrr_yy__rrrr_yyy_rrrr_yyyy_____yyyy_yyyyyyyy_yyyyyyyy__yyyyyy____yyyy__",
|
||||
"svg": null
|
||||
},
|
||||
{
|
||||
|
@ -1376,5 +1376,12 @@
|
|||
"bricks": "__W_W_W___________W_W_W_W_W_________W_W_W_W_W_________W_W_W_W_W___________W_W_W__",
|
||||
"svg": null,
|
||||
"color": ""
|
||||
},
|
||||
{
|
||||
"name": "icon:superhot",
|
||||
"size": 19,
|
||||
"bricks": "_________________________________________________________WWW_W_W_WWW_WWW_WWWW___W_W_W_W_W___W_WWWW_W_W_WWW_WW__WWW__W_W_W_W___W___WW_WWW_WWW_W___WWW_W_W___________________WW__WW_WWWWW_WWWWWWWW__WW_WWWWW_WWWWWWWW__WW_WW_WW___WW__WWWWWW_WW_WW___WW__WWWWWW_WW_WW___WW__WW__WW_WWWWW___WW__WW__WW_WWWWW___WW___________________________________________________________",
|
||||
"svg": null,
|
||||
"color": ""
|
||||
}
|
||||
]
|
||||
|
|
|
@ -1 +1 @@
|
|||
"29071489"
|
||||
"29071527"
|
||||
|
|
10
src/game.ts
10
src/game.ts
|
@ -68,6 +68,7 @@ import { hashCode } from "./getLevelBackground";
|
|||
import {
|
||||
catchRateBest,
|
||||
catchRateGood,
|
||||
clamp,
|
||||
hoursSpentPlaying,
|
||||
levelTimeBest,
|
||||
levelTimeGood,
|
||||
|
@ -397,7 +398,7 @@ export function tick() {
|
|||
const timeDeltaMs = currentTick - gameState.lastTick;
|
||||
gameState.lastTick = currentTick;
|
||||
|
||||
const frames = Math.min(4, timeDeltaMs / (1000 / 60));
|
||||
let frames = Math.min(4, timeDeltaMs / (1000 / 60));
|
||||
|
||||
if (gameState.keyboardPuckSpeed) {
|
||||
setMousePos(
|
||||
|
@ -405,6 +406,13 @@ export function tick() {
|
|||
gameState.puckPosition + gameState.keyboardPuckSpeed,
|
||||
);
|
||||
}
|
||||
if (gameState.perks.superhot) {
|
||||
frames *= clamp(
|
||||
Math.abs(gameState.puckPosition - gameState.lastPuckPosition) / 5,
|
||||
0.2 / gameState.perks.superhot,
|
||||
1,
|
||||
);
|
||||
}
|
||||
normalizeGameState(gameState);
|
||||
|
||||
if (gameState.running) {
|
||||
|
|
|
@ -1087,7 +1087,7 @@ export function gameStateTick(
|
|||
|
||||
if (
|
||||
!isOptionOn("basic") &&
|
||||
Math.random() * gameState.perks.ball_attracts_coins > 0.9
|
||||
Math.random() * gameState.perks.ball_attracts_coins * frames > 0.9
|
||||
) {
|
||||
makeParticle(
|
||||
gameState,
|
||||
|
@ -1108,6 +1108,7 @@ export function gameStateTick(
|
|||
1 -
|
||||
((gameState.perks.viscosity * 0.03 + 0.002) * frames) /
|
||||
(1 + gameState.perks.etherealcoins);
|
||||
|
||||
if (!gameState.perks.etherealcoins) {
|
||||
coin.vy *= ratio;
|
||||
coin.vx *= ratio;
|
||||
|
@ -1128,7 +1129,7 @@ export function gameStateTick(
|
|||
gameState.puckWidth + coin.size;
|
||||
coin.vy +=
|
||||
frames * coin.weight * 0.8 * (flip ? -gameState.perks.helium : 1);
|
||||
if (flip && !isOptionOn("basic") && Math.random() < 0.1) {
|
||||
if (flip && !isOptionOn("basic") && Math.random() < 0.1 * frames) {
|
||||
makeParticle(
|
||||
gameState,
|
||||
coin.x,
|
||||
|
|
|
@ -4902,6 +4902,56 @@
|
|||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>superhot</name>
|
||||
<children>
|
||||
<concept_node>
|
||||
<name>name</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>true</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>true</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>tooltip</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>true</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
<concept_node>
|
||||
<name>verbose_description</name>
|
||||
<description/>
|
||||
<comment/>
|
||||
<translations>
|
||||
<translation>
|
||||
<language>en-US</language>
|
||||
<approved>false</approved>
|
||||
</translation>
|
||||
<translation>
|
||||
<language>fr-FR</language>
|
||||
<approved>true</approved>
|
||||
</translation>
|
||||
</translations>
|
||||
</concept_node>
|
||||
</children>
|
||||
</folder_node>
|
||||
<folder_node>
|
||||
<name>telekinesis</name>
|
||||
<children>
|
||||
|
|
|
@ -303,6 +303,9 @@
|
|||
"upgrades.sturdy_bricks.name": "Sturdy bricks",
|
||||
"upgrades.sturdy_bricks.tooltip": "+{{lvl}} bricks HP, +{{percent}}% coins spawned when broken",
|
||||
"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.tooltip": "Time moves when the paddle moves.",
|
||||
"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.tooltip": "Paddle controls the ball's trajectory",
|
||||
|
|
|
@ -303,6 +303,9 @@
|
|||
"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.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.tooltip": "Le temps avance quand la raquette bouge. ",
|
||||
"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.tooltip": "Contrôler la trajectoire de la balle",
|
||||
|
|
|
@ -700,4 +700,14 @@ export const rawUpgrades = [
|
|||
help: (lvl: number) => t("upgrades.transparency.tooltip", { lvl }),
|
||||
fullHelp: t("upgrades.transparency.verbose_description"),
|
||||
},
|
||||
{
|
||||
requires: "",
|
||||
threshold: 195000,
|
||||
giftable: false,
|
||||
id: "superhot",
|
||||
max: 3,
|
||||
name: t("upgrades.superhot.name"),
|
||||
help: (lvl: number) => t("upgrades.superhot.tooltip", { lvl }),
|
||||
fullHelp: t("upgrades.superhot.verbose_description"),
|
||||
},
|
||||
] as const;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue