mirror of
https://gitlab.com/lecarore/breakout71.git
synced 2025-04-26 06:56:14 -04:00
Build 29092809
This commit is contained in:
parent
e2d8a0ab5c
commit
30e684e838
12 changed files with 124 additions and 96 deletions
15
Readme.md
15
Readme.md
|
@ -27,16 +27,19 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
|
|||
|
||||
## Done
|
||||
|
||||
- fixed: context menu and tooltip stuck on windows
|
||||
|
||||
## 29091656
|
||||
|
||||
- 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
|
||||
- all or nothing : don't show negative number of coins cought, don't reduce score if no combo was lost
|
||||
- rename hypnosis to golden_goose, apply when hitting any brick, any side at level 2
|
||||
- removed comboIncreaseTexts option
|
||||
- minefield : +10% coins per bomb on screen
|
||||
- extra life are transparent when you have 2+ balls
|
||||
- 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
|
||||
- nerfed : helium : now need to be level 3 to have the same effect of keeping coins up
|
||||
- new level : Blinky by Big Goober
|
||||
|
@ -369,6 +372,8 @@ Break colourful bricks, catch bouncing coins and select powerful upgrades !
|
|||
|
||||
## Easy perk ideas
|
||||
|
||||
- b71 tooltip stays stuck
|
||||
- allow dropping balls that are about to miss.
|
||||
- square coins : coins loose all horizontal momentum when hitting something.
|
||||
- ball turns following puck motion
|
||||
- "+1 coin for each ball within a small radius of the broken brick" ?
|
||||
|
|
|
@ -29,8 +29,8 @@ android {
|
|||
applicationId = "me.lecaro.breakout"
|
||||
minSdk = 21
|
||||
targetSdk = 34
|
||||
versionCode = 29091656
|
||||
versionName = "29091656"
|
||||
versionCode = 29092809
|
||||
versionName = "29092809"
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
useSupportLibrary = true
|
||||
|
|
File diff suppressed because one or more lines are too long
168
dist/index.html
vendored
168
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 = "29091656";
|
||||
const VERSION = "29092809";
|
||||
|
||||
// The name of the cache
|
||||
const CACHE_NAME = `breakout-71-${VERSION}`;
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import { t } from "./i18n/i18n";
|
||||
import { isOptionOn } from "./options";
|
||||
import { hideAnyTooltip } from "./tooltip";
|
||||
|
||||
export let alertsOpen = 0,
|
||||
closeModal: null | (() => void) = null;
|
||||
|
@ -45,6 +46,7 @@ export async function asyncAlert<t>({
|
|||
allowClose?: boolean;
|
||||
className?: string;
|
||||
}): Promise<t | void> {
|
||||
hideAnyTooltip();
|
||||
updateAlertsOpen(+1);
|
||||
return new Promise((resolve) => {
|
||||
popupWrap.className = className;
|
||||
|
|
|
@ -1 +1 @@
|
|||
"29091656"
|
||||
"29092809"
|
||||
|
|
|
@ -89,7 +89,7 @@ import {
|
|||
} from "./pure_functions";
|
||||
import { helpMenuEntry } from "./help";
|
||||
import { creativeMode } from "./creative";
|
||||
import { setupTooltips } from "./tooltip";
|
||||
import { hideAnyTooltip, setupTooltips } from "./tooltip";
|
||||
import { startingPerkMenuButton } from "./startingPerks";
|
||||
import "./migrations";
|
||||
import { getHistory } from "./gameOver";
|
||||
|
@ -109,6 +109,7 @@ export async function play() {
|
|||
startRecordingGame(gameState);
|
||||
getAudioContext()?.resume();
|
||||
resumeRecording();
|
||||
hideAnyTooltip();
|
||||
// document.body.classList[gameState.running ? 'add' : 'remove']('running')
|
||||
}
|
||||
|
||||
|
@ -121,7 +122,6 @@ export function pause(playerAskedForPause: boolean) {
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
const stop = () => {
|
||||
gameState.running = false;
|
||||
|
||||
|
@ -150,6 +150,7 @@ export function pause(playerAskedForPause: boolean) {
|
|||
if (document.exitPointerLock) {
|
||||
document.exitPointerLock();
|
||||
}
|
||||
hideAnyTooltip();
|
||||
}
|
||||
|
||||
export const fitSize = (gameState: GameState) => {
|
||||
|
|
|
@ -147,12 +147,16 @@ export function pickedUpgradesHTMl(gameState: GameState) {
|
|||
return ` <p>${t("score_panel.upgrades_picked")}</p>` + upgradesList.join("");
|
||||
}
|
||||
|
||||
export function levelsListHTMl(gameState: GameState, level: number) {
|
||||
export function levelsListHTMl(
|
||||
gameState: GameState,
|
||||
currentLevelIndex: number,
|
||||
) {
|
||||
if (!gameState.perks.clairvoyant) return "";
|
||||
if (gameState.creative) return "";
|
||||
let list = "";
|
||||
for (let i = 0; i < max_levels(gameState); i++) {
|
||||
list += `<span style="opacity: ${i >= level ? 1 : 0.2}" title="${gameState.runLevels[i].name}">${icons[gameState.runLevels[i].name]}</span>`;
|
||||
let level = gameState.runLevels[i % gameState.runLevels.length];
|
||||
list += `<span style="opacity: ${i >= currentLevelIndex ? 1 : 0.2}" title="${level.name}">${icons[level.name]}</span>`;
|
||||
}
|
||||
return `<p>${t("score_panel.upcoming_levels")}</p><p>${list}</p>`;
|
||||
}
|
||||
|
|
|
@ -345,7 +345,7 @@
|
|||
"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.nbricks.name": "Strict sample size",
|
||||
"upgrades.nbricks.tooltip": "More coins if you break bricks one by one.",
|
||||
"upgrades.nbricks.tooltip": "More coins if you hit bricks one by one.",
|
||||
"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.tooltip": "More upgrade choices",
|
||||
|
|
|
@ -2,7 +2,7 @@ import { RunHistoryItem } from "./types";
|
|||
|
||||
import _appVersion from "./data/version.json";
|
||||
import { generateSaveFileContent } from "./generateSaveFileContent";
|
||||
import { getLevelUnlockCondition, reasonLevelIsLocked } from "./game_utils";
|
||||
import { reasonLevelIsLocked } from "./game_utils";
|
||||
import { allLevels } from "./loadGameData";
|
||||
import { toast } from "./toast";
|
||||
|
||||
|
|
|
@ -7,6 +7,9 @@ export function setupTooltips() {
|
|||
setupDesktopTooltips(tooltip);
|
||||
}
|
||||
}
|
||||
export function hideAnyTooltip() {
|
||||
tooltip.style.display = "none";
|
||||
}
|
||||
|
||||
const tooltip = document.getElementById("tooltip") as HTMLDivElement;
|
||||
|
||||
|
@ -35,7 +38,7 @@ function setupMobileTooltips(tooltip: HTMLDivElement) {
|
|||
|
||||
e.stopPropagation();
|
||||
e.preventDefault();
|
||||
tooltip.style.display = "none";
|
||||
hideAnyTooltip();
|
||||
}
|
||||
|
||||
document.body.addEventListener("touchend", closeTooltip, true);
|
||||
|
@ -51,6 +54,7 @@ function setupMobileTooltips(tooltip: HTMLDivElement) {
|
|||
e.preventDefault();
|
||||
}
|
||||
document.body.addEventListener("click", ignoreClick, true);
|
||||
document.body.addEventListener("contextmenu", ignoreClick, true);
|
||||
}
|
||||
|
||||
function setupDesktopTooltips(tooltip: HTMLDivElement) {
|
||||
|
@ -59,7 +63,7 @@ function setupDesktopTooltips(tooltip: HTMLDivElement) {
|
|||
}
|
||||
|
||||
function closeToolTip() {
|
||||
tooltip.style.display = "none";
|
||||
hideAnyTooltip();
|
||||
hovering = null;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue