From 85ece0b975291d40c800f957538f4a19d991feae Mon Sep 17 00:00:00 2001 From: Renan LE CARO Date: Fri, 4 Apr 2025 12:07:51 +0200 Subject: [PATCH] Build 29062687 --- app/build.gradle.kts | 4 +- app/src/main/assets/index.html | 2 +- dist/index.html | 26 ++++---- .../en-US/images/phoneScreenshots/1.png | Bin 1225399 -> 1225062 bytes .../en-US/images/phoneScreenshots/2.png | Bin 1003098 -> 1002761 bytes .../en-US/images/phoneScreenshots/3.png | Bin 1247093 -> 1246756 bytes .../en-US/images/phoneScreenshots/4.png | Bin 1261164 -> 1260827 bytes .../en-US/images/phoneScreenshots/5.png | Bin 863576 -> 863239 bytes .../en-US/images/phoneScreenshots/6.png | Bin 1469386 -> 1469049 bytes .../en-US/images/phoneScreenshots/7.png | Bin 359383 -> 359046 bytes .../en-US/images/phoneScreenshots/8.png | Bin 656608 -> 656271 bytes .../en-US/images/phoneScreenshots/9.png | Bin 342330 -> 341993 bytes src/PWA/sw-b71.js | 2 +- src/asyncAlert.ts | 8 +-- src/creative.ts | 2 +- src/data/version.json | 2 +- src/game.less | 16 ++--- src/game.ts | 5 +- src/gameStateMutators.ts | 11 +++- src/render.ts | 61 +++++++++--------- src/startingPerks.ts | 3 +- 21 files changed, 74 insertions(+), 68 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 884117b..3dc5c75 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,8 +29,8 @@ android { applicationId = "me.lecaro.breakout" minSdk = 21 targetSdk = 34 - versionCode = 29062545 - versionName = "29062545" + versionCode = 29062687 + versionName = "29062687" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true diff --git a/app/src/main/assets/index.html b/app/src/main/assets/index.html index ef1c3ac..51a7a2d 100644 --- a/app/src/main/assets/index.html +++ b/app/src/main/assets/index.html @@ -1 +1 @@ -Breakout 71 \ No newline at end of file +Breakout 71 \ No newline at end of file diff --git a/dist/index.html b/dist/index.html index 5aa4e31..faf7f77 100644 --- a/dist/index.html +++ b/dist/index.html @@ -1278,7 +1278,7 @@ async function openSettingsMenu() { ...actions ], allowClose: true, - className: 'settings' + className: "settings" }); if (cb) { cb(); @@ -1354,7 +1354,7 @@ async function openUnlocksList() { ...levelActions ], allowClose: true, - className: 'actionsAsGrid' + className: "actionsAsGrid" }); if (tryOn) { if (await confirmRestart(gameState)) restart({ @@ -1494,7 +1494,7 @@ const upgrades = (0, _upgrades.rawUpgrades).map((u)=>({ })); },{"./data/palette.json":"ktRBU","./data/levels.json":"8JSUc","./data/version.json":"iyP6E","./upgrades":"1u3Dx","./getLevelBackground":"7OIPf","./levelIcon":"6rQoT","@parcel/transformer-js/src/esmodule-helpers.js":"gkKU3"}],"iyP6E":[function(require,module,exports,__globalThis) { -module.exports = JSON.parse("\"29062545\""); +module.exports = JSON.parse("\"29062687\""); },{}],"1u3Dx":[function(require,module,exports,__globalThis) { var parcelHelpers = require("@parcel/transformer-js/src/esmodule-helpers.js"); @@ -3149,7 +3149,7 @@ function addToScore(gameState, coin) { gameState.highScore = gameState.score; localStorage.setItem("breakout-3-hs-" + gameState.mode, gameState.score.toString()); } - if (!(0, _options.isOptionOn)("basic")) makeParticle(gameState, coin.previousX, coin.previousY, (gameState.canvasWidth - coin.x) / 100, -coin.y / 100, gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : 'gold', true, gameState.coinSize / 2, 100 + Math.random() * 50); + if (!(0, _options.isOptionOn)("basic")) makeParticle(gameState, coin.previousX, coin.previousY, (gameState.canvasWidth - coin.x) / 100, -coin.y / 100, gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : "gold", true, gameState.coinSize / 2, 100 + Math.random() * 50); schedulGameSound(gameState, "coinCatch", coin.x, 1); gameState.runStatistics.score += coin.points; if (gameState.perks.asceticism) decreaseCombo(gameState, gameState.perks.asceticism * 3 * coin.points, coin.x, coin.y); @@ -3423,7 +3423,7 @@ frames = 1) { if (!gameState.perks.etherealcoins) { const flip = gameState.perks.helium > 0 && Math.abs(coin.x - gameState.puckPosition) * 2 > gameState.puckWidth + coin.size; coin.vy += frames * coin.weight * 0.8 * (flip ? -gameState.perks.helium : 1); - if (flip && !(0, _options.isOptionOn)("basic") && Math.random() < 0.1) makeParticle(gameState, coin.x, coin.y, 0, gameState.baseSpeed, gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : 'gold', true, 5, 250); + if (flip && !(0, _options.isOptionOn)("basic") && Math.random() < 0.1) makeParticle(gameState, coin.x, coin.y, 0, gameState.baseSpeed, gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : "gold", true, 5, 250); } const speed = (Math.abs(coin.vx) + Math.abs(coin.vy)) * 10; const hitBorder = bordersHitCheck(gameState, coin, coin.size / 2, frames); @@ -3876,7 +3876,7 @@ function render(gameState) { haloCanvasCtx.fillRect(0, 0, width / haloScale, height / haloScale); haloCanvasCtx.globalCompositeOperation = "screen"; (0, _gameStateMutators.forEachLiveOne)(gameState.coins, (coin)=>{ - const color = gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : 'gold'; + const color = gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : "gold"; haloCanvasCtx.globalAlpha = 0.5; drawFuzzyBall(haloCanvasCtx, color, gameState.coinSize * 2 / haloScale, coin.x / haloScale, coin.y / haloScale); if ((0, _options.isOptionOn)("extra_bright")) { @@ -3972,7 +3972,7 @@ function render(gameState) { // Coins ctx.globalAlpha = 1; (0, _gameStateMutators.forEachLiveOne)(gameState.coins, (coin)=>{ - const color = gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : 'gold'; + const color = gameState.perks.metamorphosis || (0, _options.isOptionOn)("colorful_coins") ? coin.color : "gold"; // ctx.globalCompositeOperation = "source-over"; ctx.globalCompositeOperation = color === "gold" || level.color !== "#000000" || (0, _options.isOptionOn)("opaque_coins") ? "source-over" : "screen"; drawCoin(ctx, color, coin.size, coin.x, coin.y, hasCombo && gameState.perks.asceticism && "red" || color === "gold" && "gold" || (0, _options.isOptionOn)("opaque_coins") ? gameState.puckColor : color, coin.a); @@ -4075,15 +4075,15 @@ function render(gameState) { if (!(0, _options.isOptionOn)("basic") && (0, _options.isOptionOn)("contrast") && level.svg && level.color === "#000000") { // haloCanvasCtx.globalCompositeOperation = 'multiply'; // haloCanvasCtx.fillRect(0,0,haloCanvas.width,haloCanvas.height) - haloCanvasCtx.fillStyle = 'white'; + haloCanvasCtx.fillStyle = "white"; haloCanvasCtx.globalAlpha = 0.25; - haloCanvasCtx.globalCompositeOperation = 'screen'; + haloCanvasCtx.globalCompositeOperation = "screen"; haloCanvasCtx.fillRect(0, 0, haloCanvas.width, haloCanvas.height); ctx.globalAlpha = 1; ctx.globalCompositeOperation = "soft-light"; ctx.drawImage(haloCanvas, 0, 0, width, height); } - ctx.globalCompositeOperation = 'source-over'; + ctx.globalCompositeOperation = "source-over"; ctx.globalAlpha = 1; if ((0, _options.isOptionOn)("mobile-mode") && !gameState.running) drawText(ctx, (0, _i18N.t)("play.mobile_press_to_play"), gameState.puckColor, gameState.puckHeight, gameState.canvasWidth / 2, gameState.gameZoneHeight + (gameState.canvasHeight - gameState.gameZoneHeight) / 2); if (shaked) ctx.resetTransform(); @@ -4685,7 +4685,7 @@ function requiredAsyncAlert(p) { allowClose: false }); } -async function asyncAlert({ title, content = [], allowClose = true, className = '' }) { +async function asyncAlert({ title, content = [], allowClose = true, className = "" }) { updateAlertsOpen(1); return new Promise((resolve)=>{ popupWrap.className = className; @@ -4940,7 +4940,7 @@ async function openCreativeModePerksPicker(gameState, currentLevel) { title: (0, _i18N.t)("lab.title", { lvl: currentLevel + 1 }), - className: 'actionsAsGrid', + className: "actionsAsGrid", content: [ (0, _i18N.t)("lab.instructions"), { @@ -5111,7 +5111,7 @@ async function openStartingPerksEditor() { }); const perk = await (0, _asyncAlert.asyncAlert)({ title: (0, _i18N.t)("main_menu.starting_perks"), - className: 'actionsAsGrid', + className: "actionsAsGrid", content: [ (0, _i18N.t)("main_menu.starting_perks_checked"), ...buttons.filter((b)=>b.checked), diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.png index 9adf31b2e17044c78545609f45de5561482988c7..cc89455821ce402a1345ebbb358b89cb12f2b799 100644 GIT binary patch delta 85 zcmdn~)a%(JuL;V{C5-JQj3CSe#LPg<0>rF9%m&2lK+FNeoIuP4#N0s41H`;Q%m>8$ QKr8^ng4;_Ng`7760GaR^D*ylh delta 404 zcmaivJxc>Y5Qb-S7jyADL9ns7L2Z-^yL+Feiy-1biim}liFZPXC>Ri|g2iBa<~L}m zU?J8vmi`FAfd9hD2|+7iXL)A#Wrk<;5x;!K+3G+<>EYfy!Bbi7U! zIvpupCyG2bXzL(oA8Xj;tdwjxv22YsCu(B(w=%E(U+4bq=#+D!zrVW;kMApA*GMP` n3xo!tNmwMDA}kSFgk{2M!WqI@!a2fu!Ue)b!pbvNcb>ihN>oPg diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.png index f3e90081240750f76a0713c9ac716eab59b5f76c..3de10df5ce090c98dca61d8a781bfb799ef61d9b 100644 GIT binary patch delta 73 zcmcaL$F_5p?F8lK62|rtMi6EKVrC#_0b*7lW&>h&Am#vKP9Ww2Vs0Sj0b*Vt=G$Jv I$p6d-07Oj{T>t<8 delta 395 zcmeC2WqWIm?F8j|MvK%4&op0O1}z2#1`Y;RMg|6EAd8X30!T1I*qkarwjl!(P+Sp+ zz1lMwSU_rkIGa%j&IWQB7##Cbit;m46hZ=x9rcWi4J-`|^$ZLQ6;e{mbhA?{iy0VL zCoqGJ5&^1STR&+cn8RXjY{9TZ0nAnfN*tUZ2xhYb+0Q0%pxR+%U}S1#U;;!6h6Yxq zrdFnw3D$X*6oP1rk{XOAWU)iD+axjQkeJ16t9QL$B#u~m_&Rgt+>k)>6UwN;U= hRgt|_k)u_SvsIC+Rgt?@k*8IWw^fmEt0Mmk9{|hFMgaf- diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.png index 686bbb4fd7f3ab3bf54ea2a2a41057c72b610b14..8f1b9b0d58c579cf7fdb65adf279292282c507fe 100644 GIT binary patch delta 89 zcmey`=d+~8XM%Eb31fQ+BM37AF*6Xe05K~NvjH(X5OV-AClGT1F*gwN05LBR^8qnG S5DNgYAP@^}FJTmBWCH-i${3&k delta 407 zcmaivy-EW?5XWb8cge-?M8U@52DMQx?A`5sc1a^jQba6ll{+B>6cQ1vg2iAXa^@M* zYUcy^0zQV|1K2w`;m}IhS$?zoXNKSGq5JjN&9^5a%1#e2dOg?!022%WpfL$O;!FH+ zeTUhB3cn-Q(ft7Qd4_8!nk91!(7sGZSA*0#>3i*#>&aL;Eh!x<&2H>rb~^?za;+G( z!RhD8^r>ic6~-{L3f|?9x4cnsjrn70{@vk9*H5J4V>vSM!$e7N1LgTLa%>eSWvehs z?Kt)`J9M%%NVD+#OvSJ--9$<@EG_$U%~DNl{#NGI|Lb(D>jCG)`1qg$FYjBQcStA* oD})-MPG}HT32THVVV!V+aFK9{aG7w0aFuY4utC^-#dWRv4Id0essI20 diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.png index 9e6ad0b2b7bdfcadb24cdf15cf3e7011e5ca8df4..ebf46378a21caee1be31b1eb375715b1b30b5989 100644 GIT binary patch delta 89 zcmaF!$7l90p9#v%C5-JQj3CSe#LPg<0>rF9%m&2lK+FNeoIuP4#N0s41H`;Q%m>8$ SKr8^nf

^y@XNthYbJ=EE<;p delta 407 zcmaivJxc>Y5Qb-yJ9F_nQLwSNL2Z-^dtct|VG|osk|JVZd)}Q80uc-dR>5MhjcILd zwett~2mA|mLcm@K7EVqGS_wPLGrKP{Jon?q$5&&p(HCKMdU)P!!ZrXHpbLN^lh8uG z#1EG@nQbWWJ8~V}wn3X@xH_UbWo`lL-SqOJoth^tw_bBxsia+#(l*oV%Iaj-Jpg@B z%tx(q`msN}%Ns556g-$YZ}G>=pptWm`F&{o-Qh^bkEF-Pv}NS0$n(Ir{j(&CW6KZy z(DGCqTCt}BD{<{WxvmP5-2`@|6G_R2Q_I#wbE+oRek=3p|8+)hp8@AY@AzOJo?h2S sH%KT53xq{NjZi0?AuJIZgk{26!a2fu!Ue)b!X?6G!U|#a8CS-8-#q3?x&QzG diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/5.png index d2884c57a17ec2c45290ed3358f5fad5cd81930f..aa07ac1ad8bcc10d3f5d4884d048d29c908ff868 100644 GIT binary patch delta 65 zcmca{%cT8=$pq!*62|rtMi6EKVrC#_0b*7lW&>h&Am#vKP9Ww2Vs0Sj*D$X*6oP1rl09%ns(>KKcI+?^QKos)UlsMxB=*s93Xs>s}`$g)+DHMI%= D4dgxJ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png b/fastlane/metadata/android/en-US/images/phoneScreenshots/8.png index bd5b3a980b25be41bc0cedc7342ab221b9a356a0..75c6a623e30a5c2737716d244d5c9224b7b32ff0 100644 GIT binary patch delta 53 vcmaFRsnOrAF+sVxgt5JZ5rmn5m>Gy!fS47C*?^cGh&h0mb9)IRR}M1($Y~EL delta 380 zcmeBg*LcvWF+sVW(IPd%GtJkRL5qQbfrEjSk%563$YNx%01}K4Hm3@ZZOFg`6juad zul7s^7LXbs&Sn&Xvw>U&2FJXVqWsJhg^)mFM?E8B14{!#Jp%(ng_P7X-R#uLVg?4* z3Cv)lM1ZQ-)=!!U=CGIi(a#~7iaN#x~wkqOGpC5-JQj3CSe#LPg*xsj0_CSKo%p51(0BbusKzLY(oYnptvFs zd$ngWuz=J6aWKPaqDx{>A>1L-^7Beug zPGANbB?45vwtmt?Fo(s=(41k30+_7|lsGs+5X@!=vY$=jK()ijz{u3fzyydC3=OPI zO{`2U7*Z{blaq~740X+u43czB3{s4BlT3}$bQ2Se(~=Dn%`8j}EE%*7jI0a{fIfu# zG7#iVxYroPk-ZGGny`076THs?)iD+axjQkeJ16t9QL$B#u~m_&Rgt+>k!7nQ>j`rJ DmWw`u diff --git a/src/PWA/sw-b71.js b/src/PWA/sw-b71.js index 3d435ef..c3d39d3 100644 --- a/src/PWA/sw-b71.js +++ b/src/PWA/sw-b71.js @@ -1,5 +1,5 @@ // The version of the cache. -const VERSION = "29062545"; +const VERSION = "29062687"; // The name of the cache const CACHE_NAME = `breakout-71-${VERSION}`; diff --git a/src/asyncAlert.ts b/src/asyncAlert.ts index b336866..4aa58c6 100644 --- a/src/asyncAlert.ts +++ b/src/asyncAlert.ts @@ -28,7 +28,7 @@ let lastClickedItemIndex = -1; export function requiredAsyncAlert(p: { title?: string; content: (string | AsyncAlertAction)[]; - className?:string; + className?: string; }): Promise { return asyncAlert({ ...p, allowClose: false }); } @@ -37,16 +37,16 @@ export async function asyncAlert({ title, content = [], allowClose = true, - className = '', + className = "", }: { title?: string; content: (string | AsyncAlertAction)[]; allowClose?: boolean; - className?:string; + className?: string; }): Promise { updateAlertsOpen(+1); return new Promise((resolve) => { - popupWrap.className = className ; + popupWrap.className = className; closeModaleButton.style.display = allowClose ? "" : "none"; const popup = document.createElement("div"); diff --git a/src/creative.ts b/src/creative.ts index cb0aece..62920d5 100644 --- a/src/creative.ts +++ b/src/creative.ts @@ -53,7 +53,7 @@ export async function openCreativeModePerksPicker( while ( (choice = await requiredAsyncAlert({ title: t("lab.title", { lvl: currentLevel + 1 }), - className:'actionsAsGrid', + className: "actionsAsGrid", content: [ t("lab.instructions"), { diff --git a/src/data/version.json b/src/data/version.json index 842d0d1..df53cd0 100644 --- a/src/data/version.json +++ b/src/data/version.json @@ -1 +1 @@ -"29062545" +"29062687" diff --git a/src/game.less b/src/game.less index 3c700a3..d1ecf8c 100644 --- a/src/game.less +++ b/src/game.less @@ -1,9 +1,10 @@ * { - font-family: Courier New, - Courier, - Lucida Sans Typewriter, - Lucida Typewriter, - monospace; + font-family: + Courier New, + Courier, + Lucida Sans Typewriter, + Lucida Typewriter, + monospace; box-sizing: border-box; } @@ -248,7 +249,6 @@ body:not(.has-alert-open) #popup { } @media (min-width: 1400px) { - &.settings { &:before { opacity: 0; @@ -256,12 +256,10 @@ body:not(.has-alert-open) #popup { & > div { margin-right: 0; - max-width: 400px + max-width: 400px; } } - } - } /*Unlocks progress bar*/ diff --git a/src/game.ts b/src/game.ts index bc21ab0..b68d45c 100644 --- a/src/game.ts +++ b/src/game.ts @@ -798,7 +798,7 @@ async function openSettingsMenu() { title: t("main_menu.settings_title"), content: [t("main_menu.settings_help"), ...actions], allowClose: true, - className:'settings', + className: "settings", }); if (cb) { cb(); @@ -875,7 +875,8 @@ async function openUnlocksList() { t("unlocks.level"), ...levelActions, ], - allowClose: true,className:'actionsAsGrid', + allowClose: true, + className: "actionsAsGrid", }); if (tryOn) { if (await confirmRestart(gameState)) { diff --git a/src/gameStateMutators.ts b/src/gameStateMutators.ts index 319a39e..0516cd4 100644 --- a/src/gameStateMutators.ts +++ b/src/gameStateMutators.ts @@ -430,7 +430,7 @@ export function explodeBrick( cy, ball.previousVX * (0.5 + Math.random()), ball.previousVY * (0.5 + Math.random()), - color, + color, points, ); @@ -583,7 +583,9 @@ export function addToScore(gameState: GameState, coin: Coin) { coin.previousY, (gameState.canvasWidth - coin.x) / 100, -coin.y / 100, - gameState.perks.metamorphosis || isOptionOn("colorful_coins") ? coin.color : 'gold', + gameState.perks.metamorphosis || isOptionOn("colorful_coins") + ? coin.color + : "gold", true, gameState.coinSize / 2, @@ -1116,7 +1118,10 @@ export function gameStateTick( coin.x, coin.y, 0, - gameState.baseSpeed, gameState.perks.metamorphosis || isOptionOn("colorful_coins") ? coin.color : 'gold', + gameState.baseSpeed, + gameState.perks.metamorphosis || isOptionOn("colorful_coins") + ? coin.color + : "gold", true, 5, 250, diff --git a/src/render.ts b/src/render.ts index 152bdb9..604ce5f 100644 --- a/src/render.ts +++ b/src/render.ts @@ -99,10 +99,6 @@ export function render(gameState: GameState) { scoreDisplay.className = gameState.lastScoreIncrease > gameState.levelTime - 500 ? "active" : ""; - - - - // Clear if (!isOptionOn("basic") && level.svg && level.color === "#000000") { haloCanvasCtx.globalCompositeOperation = "source-over"; @@ -113,8 +109,10 @@ export function render(gameState: GameState) { haloCanvasCtx.globalCompositeOperation = "screen"; forEachLiveOne(gameState.coins, (coin) => { - const color= gameState.perks.metamorphosis || isOptionOn("colorful_coins") ? - coin.color : 'gold'; + const color = + gameState.perks.metamorphosis || isOptionOn("colorful_coins") + ? coin.color + : "gold"; haloCanvasCtx.globalAlpha = 0.5; drawFuzzyBall( haloCanvasCtx, @@ -136,7 +134,7 @@ export function render(gameState: GameState) { } }); gameState.balls.forEach((ball) => { - haloCanvasCtx.globalAlpha = 0.5; + haloCanvasCtx.globalAlpha = 0.5; drawFuzzyBall( haloCanvasCtx, gameState.ballsColor, @@ -145,14 +143,13 @@ export function render(gameState: GameState) { ball.y / haloScale, ); if (isOptionOn("extra_bright")) { - haloCanvasCtx.globalAlpha = 0.2; drawFuzzyBall( - haloCanvasCtx, - gameState.ballsColor, - (gameState.ballSize * 6) / haloScale, - ball.x / haloScale, - ball.y / haloScale, + haloCanvasCtx, + gameState.ballsColor, + (gameState.ballSize * 6) / haloScale, + ball.x / haloScale, + ball.y / haloScale, ); } }); @@ -182,13 +179,13 @@ export function render(gameState: GameState) { y / haloScale, ); if (isOptionOn("extra_bright")) { - haloCanvasCtx.globalAlpha *= 0.5 + haloCanvasCtx.globalAlpha *= 0.5; drawFuzzyBall( - haloCanvasCtx, - color, - (size * 6) / haloScale, - x / haloScale, - y / haloScale, + haloCanvasCtx, + color, + (size * 6) / haloScale, + x / haloScale, + y / haloScale, ); } }); @@ -276,8 +273,10 @@ export function render(gameState: GameState) { // Coins ctx.globalAlpha = 1; forEachLiveOne(gameState.coins, (coin) => { - const color= gameState.perks.metamorphosis || isOptionOn("colorful_coins") ? - coin.color : 'gold' + const color = + gameState.perks.metamorphosis || isOptionOn("colorful_coins") + ? coin.color + : "gold"; // ctx.globalCompositeOperation = "source-over"; ctx.globalCompositeOperation = color === "gold" || @@ -550,22 +549,25 @@ export function render(gameState: GameState) { 1, ); - - if (!isOptionOn("basic") && isOptionOn("contrast") && level.svg && level.color === "#000000") { - + if ( + !isOptionOn("basic") && + isOptionOn("contrast") && + level.svg && + level.color === "#000000" + ) { // haloCanvasCtx.globalCompositeOperation = 'multiply'; // haloCanvasCtx.fillRect(0,0,haloCanvas.width,haloCanvas.height) - haloCanvasCtx.fillStyle = 'white' + haloCanvasCtx.fillStyle = "white"; haloCanvasCtx.globalAlpha = 0.25; - haloCanvasCtx.globalCompositeOperation = 'screen'; - haloCanvasCtx.fillRect(0,0,haloCanvas.width,haloCanvas.height) + haloCanvasCtx.globalCompositeOperation = "screen"; + haloCanvasCtx.fillRect(0, 0, haloCanvas.width, haloCanvas.height); ctx.globalAlpha = 1; ctx.globalCompositeOperation = "soft-light"; ctx.drawImage(haloCanvas, 0, 0, width, height); } - ctx.globalCompositeOperation = 'source-over'; - ctx.globalAlpha = 1; + ctx.globalCompositeOperation = "source-over"; + ctx.globalAlpha = 1; if (isOptionOn("mobile-mode") && !gameState.running) { drawText( ctx, @@ -578,7 +580,6 @@ export function render(gameState: GameState) { ); } - if (shaked) { ctx.resetTransform(); } diff --git a/src/startingPerks.ts b/src/startingPerks.ts index 324a9e2..dac8791 100644 --- a/src/startingPerks.ts +++ b/src/startingPerks.ts @@ -38,7 +38,8 @@ export async function openStartingPerksEditor() { }); const perk: Upgrade | null | void = await asyncAlert({ - title: t("main_menu.starting_perks"),className:'actionsAsGrid', + title: t("main_menu.starting_perks"), + className: "actionsAsGrid", content: [ t("main_menu.starting_perks_checked"), ...buttons.filter((b) => b.checked),