valtech-components 4.0.419 → 4.0.421
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/organisms/mini-games/bubble-blitz-game.component.mjs +79 -18
- package/esm2022/lib/components/organisms/mini-games/retro-audio.service.mjs +57 -1
- package/esm2022/lib/components/organisms/mini-games/types.mjs +1 -1
- package/esm2022/lib/version.mjs +2 -2
- package/esm2022/mini-games/public-api.mjs +1 -3
- package/fesm2022/valtech-components-mini-games.mjs +0 -2
- package/fesm2022/valtech-components-mini-games.mjs.map +1 -1
- package/fesm2022/valtech-components.mjs +136 -19
- package/fesm2022/valtech-components.mjs.map +1 -1
- package/lib/components/organisms/mini-games/bubble-blitz-game.component.d.ts +4 -0
- package/lib/components/organisms/mini-games/chessimals-game.component.d.ts +1 -1
- package/lib/components/organisms/mini-games/retro-audio.service.d.ts +7 -0
- package/lib/components/organisms/mini-games/types.d.ts +2 -0
- package/lib/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valtech-components-mini-games.mjs","sources":["../../../mini-games/public-api.ts","../../../mini-games/valtech-components-mini-games.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n BubbleBlitzGameComponent,\n ChessimalsGameComponent,\n I18nService,\n MemoryGameComponent,\n MiniGameDefinition,\n MiniGamesMenuComponent,\n PageContentComponent,\n PageContentMetadata,\n SimonGameComponent,\n} from 'valtech-components';\n\nconst MINI_GAMES_BASE_ROUTE = '/mini-games';\n\nconst MINI_GAMES_PAGE_I18N = {\n es: {\n memoryTitle: 'Memorice Retro',\n memoryDescription: 'Encuentra pares con musica y efectos retro.',\n simonTitle: 'Simon',\n simonDescription: 'Repite luces y sonidos cada vez mas largos.',\n bubbleTitle: 'Burbuja Blitz',\n bubbleDescription: 'Revienta grupos de burbujas y encadena combos.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Carrera de peones con cartas de animales.',\n backToSetup: 'Cambiar juego',\n },\n en: {\n memoryTitle: 'Retro Memory',\n memoryDescription: 'Find matching pairs with retro music and effects.',\n simonTitle: 'Simon',\n simonDescription: 'Repeat lights and sounds in longer sequences.',\n bubbleTitle: 'Bubble Blitz',\n bubbleDescription: 'Pop bubble groups and chain combos.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Pawn race with animal power cards.',\n backToSetup: 'Change game',\n },\n};\n\n@Component({\n selector: 'val-mini-games-page',\n standalone: true,\n imports: [MiniGamesMenuComponent, PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-games-page\">\n <val-mini-games-menu [games]=\"games\" [asModal]=\"false\" (selected)=\"openGame($event)\" />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-games-page {\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nexport class MiniGamesPageComponent {\n private readonly router = inject(Router);\n private readonly i18n = inject(I18nService);\n\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: '/',\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: true,\n contentMaxWidth: 'md',\n };\n\n constructor() {\n this.i18n.registerDefaults('MiniGames', MINI_GAMES_PAGE_I18N);\n }\n\n get games(): MiniGameDefinition[] {\n this.i18n.lang();\n return [\n {\n id: 'chessimals',\n title: this.t('chessimalsTitle'),\n description: this.t('chessimalsDescription'),\n icon: '♟️',\n imageSrc: 'assets/games/chessimals/menu-logo.jpg',\n route: `${MINI_GAMES_BASE_ROUTE}/chessimals`,\n },\n {\n id: 'bubble-blitz',\n title: this.t('bubbleTitle'),\n description: this.t('bubbleDescription'),\n icon: '🫧',\n route: `${MINI_GAMES_BASE_ROUTE}/bubble-blitz`,\n },\n {\n id: 'memory',\n title: this.t('memoryTitle'),\n description: this.t('memoryDescription'),\n icon: '🧠',\n route: `${MINI_GAMES_BASE_ROUTE}/memory`,\n },\n {\n id: 'simon',\n title: this.t('simonTitle'),\n description: this.t('simonDescription'),\n icon: '🎛️',\n route: `${MINI_GAMES_BASE_ROUTE}/simon`,\n },\n ];\n }\n\n openGame(game: MiniGameDefinition): void {\n if (game.route) void this.router.navigateByUrl(game.route);\n }\n\n private t(key: string): string {\n return this.i18n.t(key, 'MiniGames');\n }\n}\n\n@Component({\n selector: 'val-mini-game-page-shell',\n standalone: true,\n imports: [PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-game-page-shell\">\n <ng-content />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-game-page-shell {\n display: grid;\n gap: 14px;\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nclass MiniGamePageShellComponent {\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: MINI_GAMES_BASE_ROUTE,\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: false,\n contentMaxWidth: 'md',\n };\n}\n\n@Component({\n selector: 'val-memory-game-page',\n standalone: true,\n imports: [MemoryGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-memory-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class MemoryGamePageComponent {}\n\n@Component({\n selector: 'val-simon-game-page',\n standalone: true,\n imports: [SimonGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-simon-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class SimonGamePageComponent {}\n\n@Component({\n selector: 'val-bubble-blitz-game-page',\n standalone: true,\n imports: [BubbleBlitzGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-bubble-blitz-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class BubbleBlitzGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-online-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsOnlineGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n\n@Component({\n selector: 'val-chessimals-projection-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" [projectionMode]=\"true\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsProjectionGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"valtech-components-mini-games.mjs","sources":["../../../mini-games/public-api.ts","../../../mini-games/valtech-components-mini-games.ts"],"sourcesContent":["import { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport {\n BubbleBlitzGameComponent,\n ChessimalsGameComponent,\n I18nService,\n MemoryGameComponent,\n MiniGameDefinition,\n MiniGamesMenuComponent,\n PageContentComponent,\n PageContentMetadata,\n SimonGameComponent,\n} from 'valtech-components';\n\nconst MINI_GAMES_BASE_ROUTE = '/mini-games';\n\nconst MINI_GAMES_PAGE_I18N = {\n es: {\n memoryTitle: 'Memorice Retro',\n memoryDescription: 'Encuentra pares con musica y efectos retro.',\n simonTitle: 'Simon',\n simonDescription: 'Repite luces y sonidos cada vez mas largos.',\n bubbleTitle: 'Burbuja Blitz',\n bubbleDescription: 'Revienta grupos de burbujas y encadena combos.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Carrera de peones con cartas de animales.',\n },\n en: {\n memoryTitle: 'Retro Memory',\n memoryDescription: 'Find matching pairs with retro music and effects.',\n simonTitle: 'Simon',\n simonDescription: 'Repeat lights and sounds in longer sequences.',\n bubbleTitle: 'Bubble Blitz',\n bubbleDescription: 'Pop bubble groups and chain combos.',\n chessimalsTitle: 'Chessimals',\n chessimalsDescription: 'Pawn race with animal power cards.',\n },\n};\n\n@Component({\n selector: 'val-mini-games-page',\n standalone: true,\n imports: [MiniGamesMenuComponent, PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-games-page\">\n <val-mini-games-menu [games]=\"games\" [asModal]=\"false\" (selected)=\"openGame($event)\" />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-games-page {\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nexport class MiniGamesPageComponent {\n private readonly router = inject(Router);\n private readonly i18n = inject(I18nService);\n\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: '/',\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: true,\n contentMaxWidth: 'md',\n };\n\n constructor() {\n this.i18n.registerDefaults('MiniGames', MINI_GAMES_PAGE_I18N);\n }\n\n get games(): MiniGameDefinition[] {\n this.i18n.lang();\n return [\n {\n id: 'chessimals',\n title: this.t('chessimalsTitle'),\n description: this.t('chessimalsDescription'),\n icon: '♟️',\n imageSrc: 'assets/games/chessimals/menu-logo.jpg',\n route: `${MINI_GAMES_BASE_ROUTE}/chessimals`,\n },\n {\n id: 'bubble-blitz',\n title: this.t('bubbleTitle'),\n description: this.t('bubbleDescription'),\n icon: '🫧',\n route: `${MINI_GAMES_BASE_ROUTE}/bubble-blitz`,\n },\n {\n id: 'memory',\n title: this.t('memoryTitle'),\n description: this.t('memoryDescription'),\n icon: '🧠',\n route: `${MINI_GAMES_BASE_ROUTE}/memory`,\n },\n {\n id: 'simon',\n title: this.t('simonTitle'),\n description: this.t('simonDescription'),\n icon: '🎛️',\n route: `${MINI_GAMES_BASE_ROUTE}/simon`,\n },\n ];\n }\n\n openGame(game: MiniGameDefinition): void {\n if (game.route) void this.router.navigateByUrl(game.route);\n }\n\n private t(key: string): string {\n return this.i18n.t(key, 'MiniGames');\n }\n}\n\n@Component({\n selector: 'val-mini-game-page-shell',\n standalone: true,\n imports: [PageContentComponent],\n template: `\n <val-page-content [props]=\"pageContentProps\">\n <section content class=\"mini-game-page-shell\">\n <ng-content />\n </section>\n </val-page-content>\n `,\n styles: [\n `\n .mini-game-page-shell {\n display: grid;\n gap: 14px;\n padding: 16px 0 32px;\n }\n `,\n ],\n})\nclass MiniGamePageShellComponent {\n readonly pageContentProps: PageContentMetadata = {\n homeRoute: MINI_GAMES_BASE_ROUTE,\n languageSelector: {},\n fontSizeSelector: {},\n showBackButton: false,\n contentMaxWidth: 'md',\n };\n}\n\n@Component({\n selector: 'val-memory-game-page',\n standalone: true,\n imports: [MemoryGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-memory-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class MemoryGamePageComponent {}\n\n@Component({\n selector: 'val-simon-game-page',\n standalone: true,\n imports: [SimonGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-simon-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class SimonGamePageComponent {}\n\n@Component({\n selector: 'val-bubble-blitz-game-page',\n standalone: true,\n imports: [BubbleBlitzGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-bubble-blitz-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class BubbleBlitzGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsGamePageComponent {}\n\n@Component({\n selector: 'val-chessimals-online-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsOnlineGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n\n@Component({\n selector: 'val-chessimals-projection-game-page',\n standalone: true,\n imports: [ChessimalsGameComponent, MiniGamePageShellComponent],\n template: `\n <val-mini-game-page-shell>\n <val-chessimals-game [onlineGameId]=\"gameId\" [projectionMode]=\"true\" />\n </val-mini-game-page-shell>\n `,\n})\nexport class ChessimalsProjectionGamePageComponent {\n private readonly route = inject(ActivatedRoute);\n readonly gameId = this.route.snapshot.paramMap.get('gameId') ?? '';\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -58,7 +58,7 @@ import fixWebmDuration from 'fix-webm-duration';
|
|
|
58
58
|
* Current version of valtech-components.
|
|
59
59
|
* This is automatically updated during the publish process.
|
|
60
60
|
*/
|
|
61
|
-
const VERSION = '4.0.
|
|
61
|
+
const VERSION = '4.0.421';
|
|
62
62
|
|
|
63
63
|
// Control de estado de refresco (singleton a nivel de módulo)
|
|
64
64
|
let isRefreshing = false;
|
|
@@ -63304,6 +63304,62 @@ class RetroAudioService {
|
|
|
63304
63304
|
[146.83, 0.18],
|
|
63305
63305
|
]);
|
|
63306
63306
|
}
|
|
63307
|
+
bubblePop(size = 2, combo = 1) {
|
|
63308
|
+
const safeSize = Math.max(2, Math.min(12, Math.round(size)));
|
|
63309
|
+
const safeCombo = Math.max(1, Math.min(9, Math.round(combo)));
|
|
63310
|
+
const base = 520 + safeSize * 18;
|
|
63311
|
+
void this.filteredNoise(0.065, 0.018 + safeSize * 0.0018, 'bandpass', 1200 + safeSize * 85);
|
|
63312
|
+
void this.sweep(base, base * 1.9, 0.09, 'sine', 0.026 + safeSize * 0.0014);
|
|
63313
|
+
window.setTimeout(() => void this.tone(base * 1.25, 0.055, 'triangle', 0.018), 38);
|
|
63314
|
+
if (safeSize >= 5 || safeCombo > 1) {
|
|
63315
|
+
window.setTimeout(() => void this.bubbleCombo(safeCombo), 82);
|
|
63316
|
+
}
|
|
63317
|
+
}
|
|
63318
|
+
bubbleCombo(combo = 1) {
|
|
63319
|
+
const safeCombo = Math.max(1, Math.min(9, Math.round(combo)));
|
|
63320
|
+
const root = 660 + safeCombo * 26;
|
|
63321
|
+
void this.sequence([
|
|
63322
|
+
[root, 0.045],
|
|
63323
|
+
[root * 1.25, 0.055],
|
|
63324
|
+
[root * 1.5, 0.07],
|
|
63325
|
+
], 'triangle', 0.024 + safeCombo * 0.0016, 42);
|
|
63326
|
+
}
|
|
63327
|
+
bubbleInvalid() {
|
|
63328
|
+
void this.sequence([
|
|
63329
|
+
[246.94, 0.055],
|
|
63330
|
+
[196, 0.085],
|
|
63331
|
+
], 'sine', 0.034, 54);
|
|
63332
|
+
}
|
|
63333
|
+
bubbleSettle(drop = 1) {
|
|
63334
|
+
const safeDrop = Math.max(1, Math.min(9, Math.round(drop)));
|
|
63335
|
+
void this.filteredNoise(0.055, 0.009 + safeDrop * 0.001, 'lowpass', 360 + safeDrop * 28);
|
|
63336
|
+
void this.tone(164.81 + safeDrop * 8, 0.045, 'triangle', 0.012);
|
|
63337
|
+
}
|
|
63338
|
+
bubbleShuffle() {
|
|
63339
|
+
void this.sequence([
|
|
63340
|
+
[392, 0.04],
|
|
63341
|
+
[523.25, 0.04],
|
|
63342
|
+
[659.25, 0.05],
|
|
63343
|
+
[783.99, 0.07],
|
|
63344
|
+
], 'sine', 0.024, 38);
|
|
63345
|
+
window.setTimeout(() => void this.filteredNoise(0.16, 0.018, 'bandpass', 950), 28);
|
|
63346
|
+
}
|
|
63347
|
+
bubbleFever() {
|
|
63348
|
+
void this.sweep(392, 1567.98, 0.24, 'triangle', 0.034);
|
|
63349
|
+
window.setTimeout(() => void this.sequence([[987.77, 0.055], [1318.51, 0.085]], 'sine', 0.025, 48), 128);
|
|
63350
|
+
window.setTimeout(() => void this.filteredNoise(0.12, 0.014, 'highpass', 2400), 72);
|
|
63351
|
+
}
|
|
63352
|
+
bubbleFinish() {
|
|
63353
|
+
this.stopMusic();
|
|
63354
|
+
void this.sequence([
|
|
63355
|
+
[523.25, 0.07],
|
|
63356
|
+
[659.25, 0.07],
|
|
63357
|
+
[783.99, 0.08],
|
|
63358
|
+
[1046.5, 0.13],
|
|
63359
|
+
[1318.51, 0.18],
|
|
63360
|
+
], 'triangle', 0.042, 62);
|
|
63361
|
+
window.setTimeout(() => void this.filteredNoise(0.18, 0.016, 'bandpass', 1800), 110);
|
|
63362
|
+
}
|
|
63307
63363
|
chessimalsMove() {
|
|
63308
63364
|
void this.sequence([
|
|
63309
63365
|
[392, 0.045],
|
|
@@ -67598,6 +67654,8 @@ const MODE_CONFIG = {
|
|
|
67598
67654
|
},
|
|
67599
67655
|
};
|
|
67600
67656
|
const LEADERBOARD_KEY$2 = 'val-mini-games-bubble-blitz-leaderboard:v1';
|
|
67657
|
+
const BUBBLE_POP_MS = 190;
|
|
67658
|
+
const BUBBLE_SETTLE_MS = 310;
|
|
67601
67659
|
class BubbleBlitzGameComponent {
|
|
67602
67660
|
constructor() {
|
|
67603
67661
|
this.i18n = inject(I18nService);
|
|
@@ -67616,6 +67674,7 @@ class BubbleBlitzGameComponent {
|
|
|
67616
67674
|
this.remaining = signal(MODE_CONFIG.classic.seconds);
|
|
67617
67675
|
this.fever = signal(0);
|
|
67618
67676
|
this.selectedGroupKey = signal('');
|
|
67677
|
+
this.animating = signal(false);
|
|
67619
67678
|
this.leaderboard = signal(this.readLeaderboard());
|
|
67620
67679
|
this.confirmAction = signal(undefined);
|
|
67621
67680
|
this.config = computed(() => MODE_CONFIG[this.mode()]);
|
|
@@ -67678,6 +67737,7 @@ class BubbleBlitzGameComponent {
|
|
|
67678
67737
|
}
|
|
67679
67738
|
ngOnDestroy() {
|
|
67680
67739
|
this.stopTimer();
|
|
67740
|
+
this.clearAnimationTimer();
|
|
67681
67741
|
this.audio.stopMusic();
|
|
67682
67742
|
}
|
|
67683
67743
|
t(key) {
|
|
@@ -67705,6 +67765,8 @@ class BubbleBlitzGameComponent {
|
|
|
67705
67765
|
this.grid.set(this.createBoard());
|
|
67706
67766
|
this.phase.set('playing');
|
|
67707
67767
|
this.selectedGroupKey.set('');
|
|
67768
|
+
this.animating.set(false);
|
|
67769
|
+
this.clearAnimationTimer();
|
|
67708
67770
|
void this.audio.startGameMusic().catch(() => undefined);
|
|
67709
67771
|
this.startTimer();
|
|
67710
67772
|
}
|
|
@@ -67713,36 +67775,55 @@ class BubbleBlitzGameComponent {
|
|
|
67713
67775
|
this.phase.set('home');
|
|
67714
67776
|
this.grid.set([]);
|
|
67715
67777
|
this.selectedGroupKey.set('');
|
|
67778
|
+
this.animating.set(false);
|
|
67779
|
+
this.clearAnimationTimer();
|
|
67716
67780
|
this.remaining.set(this.config().seconds);
|
|
67717
67781
|
void this.audio.startMenuMusic().catch(() => undefined);
|
|
67718
67782
|
}
|
|
67719
67783
|
popGroup(cell) {
|
|
67720
|
-
if (this.phase() !== 'playing')
|
|
67784
|
+
if (this.phase() !== 'playing' || this.animating())
|
|
67721
67785
|
return;
|
|
67722
67786
|
const group = this.groupFrom(cell, this.grid());
|
|
67723
67787
|
this.selectedGroupKey.set(group.map((item) => item.id).sort().join('|'));
|
|
67724
67788
|
if (group.length < 2) {
|
|
67725
67789
|
this.combo.set(1);
|
|
67726
|
-
this.audio.
|
|
67790
|
+
this.audio.bubbleInvalid();
|
|
67727
67791
|
return;
|
|
67728
67792
|
}
|
|
67793
|
+
this.animating.set(true);
|
|
67794
|
+
const groupIds = new Set(group.map((item) => item.id));
|
|
67795
|
+
this.grid.update((cells) => cells.map((item) => (groupIds.has(item.id) ? { ...item, state: 'popping', drop: 0 } : { ...item, state: 'idle', drop: 0 })));
|
|
67729
67796
|
const feverMultiplier = this.feverReady() ? 2 : 1;
|
|
67730
67797
|
const points = group.length * group.length * this.combo() * feverMultiplier;
|
|
67731
67798
|
this.score.update((value) => value + points);
|
|
67732
67799
|
this.popped.update((value) => value + group.length);
|
|
67733
|
-
|
|
67800
|
+
const feverWasReady = this.feverReady();
|
|
67801
|
+
this.fever.set(feverWasReady ? 0 : Math.min(this.config().feverTarget, this.fever() + group.length));
|
|
67734
67802
|
this.combo.update((value) => {
|
|
67735
67803
|
const next = Math.min(9, group.length >= 5 ? value + 1 : value);
|
|
67736
67804
|
this.maxCombo.update((best) => Math.max(best, next));
|
|
67737
67805
|
return next;
|
|
67738
67806
|
});
|
|
67739
|
-
this.
|
|
67740
|
-
this.
|
|
67741
|
-
|
|
67742
|
-
|
|
67743
|
-
|
|
67744
|
-
|
|
67745
|
-
|
|
67807
|
+
this.audio.bubblePop(group.length, this.combo());
|
|
67808
|
+
if (!feverWasReady && this.feverReady()) {
|
|
67809
|
+
window.setTimeout(() => this.audio.bubbleFever(), 100);
|
|
67810
|
+
}
|
|
67811
|
+
this.clearAnimationTimer();
|
|
67812
|
+
this.animationTimer = window.setTimeout(() => {
|
|
67813
|
+
const settled = this.refillBoard(this.grid().filter((item) => !groupIds.has(item.id)));
|
|
67814
|
+
this.grid.set(settled);
|
|
67815
|
+
this.audio.bubbleSettle(Math.max(1, ...settled.map((item) => item.drop ?? 0)));
|
|
67816
|
+
this.animationTimer = window.setTimeout(() => {
|
|
67817
|
+
if (!this.hasPlayableGroup(this.grid())) {
|
|
67818
|
+
this.grid.set(this.createBoard().map((item) => ({ ...item, state: 'entering', drop: this.config().rows })));
|
|
67819
|
+
this.combo.set(1);
|
|
67820
|
+
this.audio.bubbleShuffle();
|
|
67821
|
+
this.animationTimer = window.setTimeout(() => this.finishAnimation(), BUBBLE_SETTLE_MS);
|
|
67822
|
+
return;
|
|
67823
|
+
}
|
|
67824
|
+
this.finishAnimation();
|
|
67825
|
+
}, BUBBLE_SETTLE_MS);
|
|
67826
|
+
}, BUBBLE_POP_MS);
|
|
67746
67827
|
}
|
|
67747
67828
|
bubbleColor(color) {
|
|
67748
67829
|
return BUBBLE_COLORS[color];
|
|
@@ -67811,13 +67892,25 @@ class BubbleBlitzGameComponent {
|
|
|
67811
67892
|
window.clearInterval(this.timer);
|
|
67812
67893
|
this.timer = undefined;
|
|
67813
67894
|
}
|
|
67895
|
+
finishAnimation() {
|
|
67896
|
+
this.grid.update((cells) => cells.map((cell) => ({ ...cell, state: 'idle', drop: 0 })));
|
|
67897
|
+
this.selectedGroupKey.set('');
|
|
67898
|
+
this.animating.set(false);
|
|
67899
|
+
this.clearAnimationTimer();
|
|
67900
|
+
}
|
|
67901
|
+
clearAnimationTimer() {
|
|
67902
|
+
if (!this.animationTimer)
|
|
67903
|
+
return;
|
|
67904
|
+
window.clearTimeout(this.animationTimer);
|
|
67905
|
+
this.animationTimer = undefined;
|
|
67906
|
+
}
|
|
67814
67907
|
finish() {
|
|
67815
67908
|
if (this.phase() === 'finished')
|
|
67816
67909
|
return;
|
|
67817
67910
|
this.stopTimer();
|
|
67818
67911
|
this.phase.set('finished');
|
|
67819
67912
|
this.saveScore();
|
|
67820
|
-
this.audio.
|
|
67913
|
+
this.audio.bubbleFinish();
|
|
67821
67914
|
}
|
|
67822
67915
|
createBoard() {
|
|
67823
67916
|
const cells = [];
|
|
@@ -67835,6 +67928,8 @@ class BubbleBlitzGameComponent {
|
|
|
67835
67928
|
row,
|
|
67836
67929
|
col,
|
|
67837
67930
|
color,
|
|
67931
|
+
state: 'idle',
|
|
67932
|
+
drop: 0,
|
|
67838
67933
|
};
|
|
67839
67934
|
}
|
|
67840
67935
|
randomColor() {
|
|
@@ -67869,11 +67964,23 @@ class BubbleBlitzGameComponent {
|
|
|
67869
67964
|
for (let col = 0; col < this.config().cols; col += 1) {
|
|
67870
67965
|
const column = cells
|
|
67871
67966
|
.filter((cell) => cell.col === col)
|
|
67872
|
-
.sort((a, b) =>
|
|
67967
|
+
.sort((a, b) => a.row - b.row);
|
|
67873
67968
|
const missing = this.config().rows - column.length;
|
|
67874
67969
|
const refilled = [
|
|
67875
|
-
...Array.from({ length: missing }, (_, index) =>
|
|
67876
|
-
|
|
67970
|
+
...Array.from({ length: missing }, (_, index) => ({
|
|
67971
|
+
...this.createCell(index, col),
|
|
67972
|
+
state: 'entering',
|
|
67973
|
+
drop: missing - index,
|
|
67974
|
+
})),
|
|
67975
|
+
...column.map((cell, index) => {
|
|
67976
|
+
const nextRow = missing + index;
|
|
67977
|
+
return {
|
|
67978
|
+
...cell,
|
|
67979
|
+
row: nextRow,
|
|
67980
|
+
state: nextRow === cell.row ? 'idle' : 'falling',
|
|
67981
|
+
drop: nextRow - cell.row,
|
|
67982
|
+
};
|
|
67983
|
+
}),
|
|
67877
67984
|
];
|
|
67878
67985
|
next.push(...refilled);
|
|
67879
67986
|
}
|
|
@@ -68002,6 +68109,7 @@ class BubbleBlitzGameComponent {
|
|
|
68002
68109
|
<div
|
|
68003
68110
|
class="bubble-board"
|
|
68004
68111
|
[class.is-finished]="phase() === 'finished'"
|
|
68112
|
+
[class.is-animating]="animating()"
|
|
68005
68113
|
[style.--bubble-rows]="config().rows"
|
|
68006
68114
|
[style.--bubble-cols]="config().cols"
|
|
68007
68115
|
>
|
|
@@ -68010,8 +68118,12 @@ class BubbleBlitzGameComponent {
|
|
|
68010
68118
|
type="button"
|
|
68011
68119
|
class="bubble-cell"
|
|
68012
68120
|
[class.is-target]="isTargetCell(cell)"
|
|
68121
|
+
[class.is-popping]="cell.state === 'popping'"
|
|
68122
|
+
[class.is-falling]="cell.state === 'falling'"
|
|
68123
|
+
[class.is-entering]="cell.state === 'entering'"
|
|
68013
68124
|
[style.--bubble-color]="bubbleColor(cell.color)"
|
|
68014
|
-
[
|
|
68125
|
+
[style.--bubble-drop]="cell.drop ?? 0"
|
|
68126
|
+
[disabled]="phase() !== 'playing' || animating()"
|
|
68015
68127
|
(click)="popGroup(cell)"
|
|
68016
68128
|
>
|
|
68017
68129
|
<span>{{ groupSizeLabel(cell) }}</span>
|
|
@@ -68080,7 +68192,7 @@ class BubbleBlitzGameComponent {
|
|
|
68080
68192
|
/>
|
|
68081
68193
|
</ng-template>
|
|
68082
68194
|
</ion-modal>
|
|
68083
|
-
`, isInline: true, styles: [":host{display:block}.bubble-shell{--bubble-panel: var(--ion-card-background, #ffffff);--bubble-border: var(--ion-border-color, #e6e2ec);--bubble-text: var(--ion-color-dark, #2f2a3a);--bubble-muted: var(--ion-color-medium, #6f6a7a);--bubble-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--bubble-primary: #ff4f9f;--bubble-secondary: #18c7d4;--bubble-accent: #ffca3a;display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--bubble-text)}:host-context(html.ion-palette-dark) .bubble-shell,:host-context([data-theme=\"dark\"]) .bubble-shell{--bubble-panel: #211f2a;--bubble-border: rgba(255, 255, 255, .13);--bubble-text: #fff8ff;--bubble-muted: rgba(255, 248, 255, .68);--bubble-soft: rgba(255, 255, 255, .07)}.bubble-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,52px);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 82% 24%,rgba(255,202,58,.72),transparent 20%),linear-gradient(135deg,var(--bubble-primary),var(--bubble-secondary));color:#fff;text-align:center}.bubble-hero__badge{display:inline-flex;align-items:center;justify-self:center;gap:.4rem;border-radius:999px;padding:.4rem .75rem;background:#ffffff2e;font-size:.78rem;font-weight:950;text-transform:uppercase}.bubble-hero h1{margin:0;font-size:clamp(2.5rem,12vw,5rem);line-height:.92;font-weight:950}.bubble-hero p,.bubble-howto p,.bubble-leaderboard p,.bubble-result p{margin:0;color:inherit;line-height:1.45}.bubble-panel,.bubble-game,.bubble-leaderboard{display:grid;gap:16px;border:1px solid var(--bubble-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--bubble-panel)}.bubble-howto{display:grid;gap:6px;border-radius:20px;padding:16px;background:var(--bubble-soft)}.bubble-howto h2,.bubble-leaderboard h2{margin:0;color:var(--bubble-text)}.bubble-howto p,.bubble-leaderboard p{color:var(--bubble-muted)}.bubble-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bubble-modes button{display:grid;gap:6px;min-height:116px;border:1px solid var(--bubble-border);border-radius:22px;padding:14px;background:var(--bubble-panel);color:var(--bubble-text);font:inherit;text-align:left}.bubble-modes button.is-selected{border-color:var(--bubble-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--bubble-primary),transparent 78%)}.bubble-modes strong,.bubble-status strong{font-weight:950}.bubble-modes small,.bubble-status small,.bubble-leaderboard small{color:var(--bubble-muted)}.bubble-primary,.bubble-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.bubble-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--bubble-primary);color:#fff;box-shadow:0 18px 45px color-mix(in srgb,var(--bubble-primary),transparent 72%)}.bubble-secondary{border:1px solid var(--bubble-border);background:transparent;color:var(--bubble-text)}.bubble-menu-actions,.bubble-actions{display:grid;gap:10px}.bubble-actions{position:sticky;bottom:10px;z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px;background:linear-gradient(to bottom,transparent,var(--bubble-panel) 28%)}.bubble-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bubble-status div{display:grid;gap:2px;border-radius:18px;padding:12px;background:var(--bubble-soft);text-align:center}.bubble-status strong{font-size:1.6rem;line-height:1}.bubble-fever{position:relative;overflow:hidden;min-height:42px;display:grid;place-items:center;border:1px solid var(--bubble-border);border-radius:999px;background:var(--bubble-soft)}.bubble-fever span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--bubble-accent),var(--bubble-primary));transition:width .18s ease}.bubble-fever strong{position:relative;z-index:1;font-size:.82rem;font-weight:950;text-transform:uppercase}.bubble-fever.is-ready strong{color:#2f2a3a}.bubble-board{display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));gap:clamp(.28rem,1.3vw,.55rem);width:min(100%,34rem);margin:0 auto;border-radius:28px;padding:clamp(.55rem,2vw,.9rem);background:radial-gradient(circle at 25% 18%,rgba(255,255,255,.7),transparent 20%),linear-gradient(135deg,#18c7d429,#ff4f9f29)}.bubble-cell{position:relative;aspect-ratio:1;border:0;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.86),rgba(255,255,255,.24) 22%,transparent 34%),radial-gradient(circle at 70% 78%,rgba(0,0,0,.18),transparent 38%),var(--bubble-color);box-shadow:inset 0 -.45rem .75rem #00000024,0 .5rem 1.1rem color-mix(in srgb,var(--bubble-color),transparent 72%);transform:scale(.98);transition:filter .14s ease,transform .14s ease,box-shadow .14s ease}.bubble-cell.is-target{filter:saturate(1.18) brightness(1.08);transform:scale(1.05);box-shadow:inset 0 -.45rem .75rem #00000024,0 0 0 .16rem #ffffffc7,0 .75rem 1.5rem color-mix(in srgb,var(--bubble-color),transparent 55%)}.bubble-cell span{position:absolute;inset:auto .12rem .1rem auto;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;border-radius:999px;background:#ffffffd1;color:#2f2a3a;font-size:.66rem;font-weight:950;opacity:0}.bubble-cell.is-target span{opacity:1}.bubble-board.is-finished .bubble-cell{opacity:.55}.bubble-result{display:grid;gap:8px;justify-items:center;border-radius:22px;padding:16px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.bubble-result ion-icon{color:var(--ion-color-success, #2dd36f);font-size:2rem}.bubble-result strong{font-size:1.35rem;font-weight:950}.bubble-result p{color:var(--bubble-muted)}.bubble-result div{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:var(--bubble-soft)}.bubble-result div span,.bubble-leaderboard li>span{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:999px;background:var(--player-color, var(--bubble-primary))}.bubble-leaderboard__title{display:flex;align-items:center;gap:10px}.bubble-leaderboard__title ion-icon{color:var(--bubble-primary);font-size:1.4rem}.bubble-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bubble-leaderboard li{display:grid;grid-template-columns:2.15rem 1fr auto;gap:10px;align-items:center;border-radius:16px;padding:12px;background:var(--bubble-soft)}@media (max-width: 560px){.bubble-modes,.bubble-actions,.bubble-status{grid-template-columns:1fr}.bubble-board{width:100%}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
|
|
68195
|
+
`, isInline: true, styles: [":host{display:block}.bubble-shell{--bubble-panel: var(--ion-card-background, #ffffff);--bubble-border: var(--ion-border-color, #e6e2ec);--bubble-text: var(--ion-color-dark, #2f2a3a);--bubble-muted: var(--ion-color-medium, #6f6a7a);--bubble-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--bubble-primary: #ff4f9f;--bubble-secondary: #18c7d4;--bubble-accent: #ffca3a;display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--bubble-text)}:host-context(html.ion-palette-dark) .bubble-shell,:host-context([data-theme=\"dark\"]) .bubble-shell{--bubble-panel: #211f2a;--bubble-border: rgba(255, 255, 255, .13);--bubble-text: #fff8ff;--bubble-muted: rgba(255, 248, 255, .68);--bubble-soft: rgba(255, 255, 255, .07)}.bubble-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,52px);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 82% 24%,rgba(255,202,58,.72),transparent 20%),linear-gradient(135deg,var(--bubble-primary),var(--bubble-secondary));color:#fff;text-align:center}.bubble-hero__badge{display:inline-flex;align-items:center;justify-self:center;gap:.4rem;border-radius:999px;padding:.4rem .75rem;background:#ffffff2e;font-size:.78rem;font-weight:950;text-transform:uppercase}.bubble-hero h1{margin:0;font-size:clamp(2.5rem,12vw,5rem);line-height:.92;font-weight:950}.bubble-hero p,.bubble-howto p,.bubble-leaderboard p,.bubble-result p{margin:0;color:inherit;line-height:1.45}.bubble-panel,.bubble-game,.bubble-leaderboard{display:grid;gap:16px;border:1px solid var(--bubble-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--bubble-panel)}.bubble-howto{display:grid;gap:6px;border-radius:20px;padding:16px;background:var(--bubble-soft)}.bubble-howto h2,.bubble-leaderboard h2{margin:0;color:var(--bubble-text)}.bubble-howto p,.bubble-leaderboard p{color:var(--bubble-muted)}.bubble-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bubble-modes button{display:grid;gap:6px;min-height:116px;border:1px solid var(--bubble-border);border-radius:22px;padding:14px;background:var(--bubble-panel);color:var(--bubble-text);font:inherit;text-align:left}.bubble-modes button.is-selected{border-color:var(--bubble-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--bubble-primary),transparent 78%)}.bubble-modes strong,.bubble-status strong{font-weight:950}.bubble-modes small,.bubble-status small,.bubble-leaderboard small{color:var(--bubble-muted)}.bubble-primary,.bubble-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.bubble-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--bubble-primary);color:#fff;box-shadow:0 18px 45px color-mix(in srgb,var(--bubble-primary),transparent 72%)}.bubble-secondary{border:1px solid var(--bubble-border);background:transparent;color:var(--bubble-text)}.bubble-menu-actions,.bubble-actions{display:grid;gap:10px}.bubble-actions{position:sticky;bottom:10px;z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px;background:linear-gradient(to bottom,transparent,var(--bubble-panel) 28%)}.bubble-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bubble-status div{display:grid;gap:2px;border-radius:18px;padding:12px;background:var(--bubble-soft);text-align:center}.bubble-status strong{font-size:1.6rem;line-height:1}.bubble-fever{position:relative;overflow:hidden;min-height:42px;display:grid;place-items:center;border:1px solid var(--bubble-border);border-radius:999px;background:var(--bubble-soft)}.bubble-fever span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--bubble-accent),var(--bubble-primary));transition:width .18s ease}.bubble-fever strong{position:relative;z-index:1;font-size:.82rem;font-weight:950;text-transform:uppercase}.bubble-fever.is-ready strong{color:#2f2a3a}.bubble-board{--bubble-pop-ms: .19s;--bubble-settle-ms: .31s;display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));gap:clamp(.28rem,1.3vw,.55rem);width:min(100%,34rem);margin:0 auto;border-radius:28px;padding:clamp(.55rem,2vw,.9rem);background:radial-gradient(circle at 25% 18%,rgba(255,255,255,.7),transparent 20%),linear-gradient(135deg,#18c7d429,#ff4f9f29)}.bubble-board.is-animating{pointer-events:none}.bubble-cell{position:relative;aspect-ratio:1;border:0;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.86),rgba(255,255,255,.24) 22%,transparent 34%),radial-gradient(circle at 70% 78%,rgba(0,0,0,.18),transparent 38%),var(--bubble-color);box-shadow:inset 0 -.45rem .75rem #00000024,0 .5rem 1.1rem color-mix(in srgb,var(--bubble-color),transparent 72%);transform:scale(.98);transition:filter .14s ease,transform .14s ease,box-shadow .14s ease}.bubble-cell.is-popping{animation:bubble-pop var(--bubble-pop-ms, .19s) ease-out forwards}.bubble-cell.is-falling{animation:bubble-fall var(--bubble-settle-ms, .31s) cubic-bezier(.18,.88,.32,1.18) both}.bubble-cell.is-entering{animation:bubble-enter var(--bubble-settle-ms, .31s) cubic-bezier(.18,.88,.32,1.18) both}.bubble-cell.is-target{filter:saturate(1.18) brightness(1.08);transform:scale(1.05);box-shadow:inset 0 -.45rem .75rem #00000024,0 0 0 .16rem #ffffffc7,0 .75rem 1.5rem color-mix(in srgb,var(--bubble-color),transparent 55%)}.bubble-cell span{position:absolute;inset:auto .12rem .1rem auto;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;border-radius:999px;background:#ffffffd1;color:#2f2a3a;font-size:.66rem;font-weight:950;opacity:0}.bubble-cell.is-target span{opacity:1}.bubble-board.is-finished .bubble-cell{opacity:.55}@keyframes bubble-pop{0%{opacity:1;transform:scale(1.04)}52%{opacity:1;transform:scale(1.22);filter:brightness(1.28) saturate(1.28)}to{opacity:0;transform:scale(.18);filter:brightness(1.55) saturate(1.35)}}@keyframes bubble-fall{0%{transform:translateY(calc(var(--bubble-drop, 0) * -100%)) scale(.98)}76%{transform:translateY(0) scale(1.05)}to{transform:translateY(0) scale(.98)}}@keyframes bubble-enter{0%{opacity:0;transform:translateY(calc((var(--bubble-drop, 1) + 1) * -100%)) scale(.58)}72%{opacity:1;transform:translateY(0) scale(1.08)}to{opacity:1;transform:translateY(0) scale(.98)}}.bubble-result{display:grid;gap:8px;justify-items:center;border-radius:22px;padding:16px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.bubble-result ion-icon{color:var(--ion-color-success, #2dd36f);font-size:2rem}.bubble-result strong{font-size:1.35rem;font-weight:950}.bubble-result p{color:var(--bubble-muted)}.bubble-result div{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:var(--bubble-soft)}.bubble-result div span,.bubble-leaderboard li>span{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:999px;background:var(--player-color, var(--bubble-primary))}.bubble-leaderboard__title{display:flex;align-items:center;gap:10px}.bubble-leaderboard__title ion-icon{color:var(--bubble-primary);font-size:1.4rem}.bubble-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bubble-leaderboard li{display:grid;grid-template-columns:2.15rem 1fr auto;gap:10px;align-items:center;border-radius:16px;padding:12px;background:var(--bubble-soft)}@media (max-width: 560px){.bubble-modes,.bubble-actions,.bubble-status{grid-template-columns:1fr}.bubble-board{width:100%}}\n"], dependencies: [{ kind: "component", type: IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: IonModal, selector: "ion-modal" }, { kind: "component", type: ModalLayoutComponent, selector: "val-modal-layout", inputs: ["title", "subtitle", "closeLabel", "showClose", "actions", "actionsAlign", "footer", "footerClass"], outputs: ["close", "actionClick"] }] }); }
|
|
68084
68196
|
}
|
|
68085
68197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BubbleBlitzGameComponent, decorators: [{
|
|
68086
68198
|
type: Component,
|
|
@@ -68147,6 +68259,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
68147
68259
|
<div
|
|
68148
68260
|
class="bubble-board"
|
|
68149
68261
|
[class.is-finished]="phase() === 'finished'"
|
|
68262
|
+
[class.is-animating]="animating()"
|
|
68150
68263
|
[style.--bubble-rows]="config().rows"
|
|
68151
68264
|
[style.--bubble-cols]="config().cols"
|
|
68152
68265
|
>
|
|
@@ -68155,8 +68268,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
68155
68268
|
type="button"
|
|
68156
68269
|
class="bubble-cell"
|
|
68157
68270
|
[class.is-target]="isTargetCell(cell)"
|
|
68271
|
+
[class.is-popping]="cell.state === 'popping'"
|
|
68272
|
+
[class.is-falling]="cell.state === 'falling'"
|
|
68273
|
+
[class.is-entering]="cell.state === 'entering'"
|
|
68158
68274
|
[style.--bubble-color]="bubbleColor(cell.color)"
|
|
68159
|
-
[
|
|
68275
|
+
[style.--bubble-drop]="cell.drop ?? 0"
|
|
68276
|
+
[disabled]="phase() !== 'playing' || animating()"
|
|
68160
68277
|
(click)="popGroup(cell)"
|
|
68161
68278
|
>
|
|
68162
68279
|
<span>{{ groupSizeLabel(cell) }}</span>
|
|
@@ -68225,7 +68342,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
68225
68342
|
/>
|
|
68226
68343
|
</ng-template>
|
|
68227
68344
|
</ion-modal>
|
|
68228
|
-
`, styles: [":host{display:block}.bubble-shell{--bubble-panel: var(--ion-card-background, #ffffff);--bubble-border: var(--ion-border-color, #e6e2ec);--bubble-text: var(--ion-color-dark, #2f2a3a);--bubble-muted: var(--ion-color-medium, #6f6a7a);--bubble-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--bubble-primary: #ff4f9f;--bubble-secondary: #18c7d4;--bubble-accent: #ffca3a;display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--bubble-text)}:host-context(html.ion-palette-dark) .bubble-shell,:host-context([data-theme=\"dark\"]) .bubble-shell{--bubble-panel: #211f2a;--bubble-border: rgba(255, 255, 255, .13);--bubble-text: #fff8ff;--bubble-muted: rgba(255, 248, 255, .68);--bubble-soft: rgba(255, 255, 255, .07)}.bubble-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,52px);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 82% 24%,rgba(255,202,58,.72),transparent 20%),linear-gradient(135deg,var(--bubble-primary),var(--bubble-secondary));color:#fff;text-align:center}.bubble-hero__badge{display:inline-flex;align-items:center;justify-self:center;gap:.4rem;border-radius:999px;padding:.4rem .75rem;background:#ffffff2e;font-size:.78rem;font-weight:950;text-transform:uppercase}.bubble-hero h1{margin:0;font-size:clamp(2.5rem,12vw,5rem);line-height:.92;font-weight:950}.bubble-hero p,.bubble-howto p,.bubble-leaderboard p,.bubble-result p{margin:0;color:inherit;line-height:1.45}.bubble-panel,.bubble-game,.bubble-leaderboard{display:grid;gap:16px;border:1px solid var(--bubble-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--bubble-panel)}.bubble-howto{display:grid;gap:6px;border-radius:20px;padding:16px;background:var(--bubble-soft)}.bubble-howto h2,.bubble-leaderboard h2{margin:0;color:var(--bubble-text)}.bubble-howto p,.bubble-leaderboard p{color:var(--bubble-muted)}.bubble-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bubble-modes button{display:grid;gap:6px;min-height:116px;border:1px solid var(--bubble-border);border-radius:22px;padding:14px;background:var(--bubble-panel);color:var(--bubble-text);font:inherit;text-align:left}.bubble-modes button.is-selected{border-color:var(--bubble-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--bubble-primary),transparent 78%)}.bubble-modes strong,.bubble-status strong{font-weight:950}.bubble-modes small,.bubble-status small,.bubble-leaderboard small{color:var(--bubble-muted)}.bubble-primary,.bubble-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.bubble-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--bubble-primary);color:#fff;box-shadow:0 18px 45px color-mix(in srgb,var(--bubble-primary),transparent 72%)}.bubble-secondary{border:1px solid var(--bubble-border);background:transparent;color:var(--bubble-text)}.bubble-menu-actions,.bubble-actions{display:grid;gap:10px}.bubble-actions{position:sticky;bottom:10px;z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px;background:linear-gradient(to bottom,transparent,var(--bubble-panel) 28%)}.bubble-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bubble-status div{display:grid;gap:2px;border-radius:18px;padding:12px;background:var(--bubble-soft);text-align:center}.bubble-status strong{font-size:1.6rem;line-height:1}.bubble-fever{position:relative;overflow:hidden;min-height:42px;display:grid;place-items:center;border:1px solid var(--bubble-border);border-radius:999px;background:var(--bubble-soft)}.bubble-fever span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--bubble-accent),var(--bubble-primary));transition:width .18s ease}.bubble-fever strong{position:relative;z-index:1;font-size:.82rem;font-weight:950;text-transform:uppercase}.bubble-fever.is-ready strong{color:#2f2a3a}.bubble-board{display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));gap:clamp(.28rem,1.3vw,.55rem);width:min(100%,34rem);margin:0 auto;border-radius:28px;padding:clamp(.55rem,2vw,.9rem);background:radial-gradient(circle at 25% 18%,rgba(255,255,255,.7),transparent 20%),linear-gradient(135deg,#18c7d429,#ff4f9f29)}.bubble-cell{position:relative;aspect-ratio:1;border:0;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.86),rgba(255,255,255,.24) 22%,transparent 34%),radial-gradient(circle at 70% 78%,rgba(0,0,0,.18),transparent 38%),var(--bubble-color);box-shadow:inset 0 -.45rem .75rem #00000024,0 .5rem 1.1rem color-mix(in srgb,var(--bubble-color),transparent 72%);transform:scale(.98);transition:filter .14s ease,transform .14s ease,box-shadow .14s ease}.bubble-cell.is-target{filter:saturate(1.18) brightness(1.08);transform:scale(1.05);box-shadow:inset 0 -.45rem .75rem #00000024,0 0 0 .16rem #ffffffc7,0 .75rem 1.5rem color-mix(in srgb,var(--bubble-color),transparent 55%)}.bubble-cell span{position:absolute;inset:auto .12rem .1rem auto;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;border-radius:999px;background:#ffffffd1;color:#2f2a3a;font-size:.66rem;font-weight:950;opacity:0}.bubble-cell.is-target span{opacity:1}.bubble-board.is-finished .bubble-cell{opacity:.55}.bubble-result{display:grid;gap:8px;justify-items:center;border-radius:22px;padding:16px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.bubble-result ion-icon{color:var(--ion-color-success, #2dd36f);font-size:2rem}.bubble-result strong{font-size:1.35rem;font-weight:950}.bubble-result p{color:var(--bubble-muted)}.bubble-result div{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:var(--bubble-soft)}.bubble-result div span,.bubble-leaderboard li>span{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:999px;background:var(--player-color, var(--bubble-primary))}.bubble-leaderboard__title{display:flex;align-items:center;gap:10px}.bubble-leaderboard__title ion-icon{color:var(--bubble-primary);font-size:1.4rem}.bubble-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bubble-leaderboard li{display:grid;grid-template-columns:2.15rem 1fr auto;gap:10px;align-items:center;border-radius:16px;padding:12px;background:var(--bubble-soft)}@media (max-width: 560px){.bubble-modes,.bubble-actions,.bubble-status{grid-template-columns:1fr}.bubble-board{width:100%}}\n"] }]
|
|
68345
|
+
`, styles: [":host{display:block}.bubble-shell{--bubble-panel: var(--ion-card-background, #ffffff);--bubble-border: var(--ion-border-color, #e6e2ec);--bubble-text: var(--ion-color-dark, #2f2a3a);--bubble-muted: var(--ion-color-medium, #6f6a7a);--bubble-soft: rgba(var(--ion-color-primary-rgb, 255, 0, 178), .08);--bubble-primary: #ff4f9f;--bubble-secondary: #18c7d4;--bubble-accent: #ffca3a;display:grid;gap:18px;max-width:760px;margin:0 auto;color:var(--bubble-text)}:host-context(html.ion-palette-dark) .bubble-shell,:host-context([data-theme=\"dark\"]) .bubble-shell{--bubble-panel: #211f2a;--bubble-border: rgba(255, 255, 255, .13);--bubble-text: #fff8ff;--bubble-muted: rgba(255, 248, 255, .68);--bubble-soft: rgba(255, 255, 255, .07)}.bubble-hero{display:grid;gap:10px;overflow:hidden;border-radius:28px;padding:clamp(28px,7vw,52px);background:radial-gradient(circle at 18% 18%,rgba(255,255,255,.58),transparent 18%),radial-gradient(circle at 82% 24%,rgba(255,202,58,.72),transparent 20%),linear-gradient(135deg,var(--bubble-primary),var(--bubble-secondary));color:#fff;text-align:center}.bubble-hero__badge{display:inline-flex;align-items:center;justify-self:center;gap:.4rem;border-radius:999px;padding:.4rem .75rem;background:#ffffff2e;font-size:.78rem;font-weight:950;text-transform:uppercase}.bubble-hero h1{margin:0;font-size:clamp(2.5rem,12vw,5rem);line-height:.92;font-weight:950}.bubble-hero p,.bubble-howto p,.bubble-leaderboard p,.bubble-result p{margin:0;color:inherit;line-height:1.45}.bubble-panel,.bubble-game,.bubble-leaderboard{display:grid;gap:16px;border:1px solid var(--bubble-border);border-radius:26px;padding:clamp(16px,4vw,24px);background:var(--bubble-panel)}.bubble-howto{display:grid;gap:6px;border-radius:20px;padding:16px;background:var(--bubble-soft)}.bubble-howto h2,.bubble-leaderboard h2{margin:0;color:var(--bubble-text)}.bubble-howto p,.bubble-leaderboard p{color:var(--bubble-muted)}.bubble-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bubble-modes button{display:grid;gap:6px;min-height:116px;border:1px solid var(--bubble-border);border-radius:22px;padding:14px;background:var(--bubble-panel);color:var(--bubble-text);font:inherit;text-align:left}.bubble-modes button.is-selected{border-color:var(--bubble-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--bubble-primary),transparent 78%)}.bubble-modes strong,.bubble-status strong{font-weight:950}.bubble-modes small,.bubble-status small,.bubble-leaderboard small{color:var(--bubble-muted)}.bubble-primary,.bubble-secondary{min-height:58px;border-radius:999px;font:inherit;font-weight:950}.bubble-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;background:var(--bubble-primary);color:#fff;box-shadow:0 18px 45px color-mix(in srgb,var(--bubble-primary),transparent 72%)}.bubble-secondary{border:1px solid var(--bubble-border);background:transparent;color:var(--bubble-text)}.bubble-menu-actions,.bubble-actions{display:grid;gap:10px}.bubble-actions{position:sticky;bottom:10px;z-index:2;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:12px;background:linear-gradient(to bottom,transparent,var(--bubble-panel) 28%)}.bubble-status{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.bubble-status div{display:grid;gap:2px;border-radius:18px;padding:12px;background:var(--bubble-soft);text-align:center}.bubble-status strong{font-size:1.6rem;line-height:1}.bubble-fever{position:relative;overflow:hidden;min-height:42px;display:grid;place-items:center;border:1px solid var(--bubble-border);border-radius:999px;background:var(--bubble-soft)}.bubble-fever span{position:absolute;inset:0 auto 0 0;background:linear-gradient(90deg,var(--bubble-accent),var(--bubble-primary));transition:width .18s ease}.bubble-fever strong{position:relative;z-index:1;font-size:.82rem;font-weight:950;text-transform:uppercase}.bubble-fever.is-ready strong{color:#2f2a3a}.bubble-board{--bubble-pop-ms: .19s;--bubble-settle-ms: .31s;display:grid;grid-template-columns:repeat(var(--bubble-cols),minmax(0,1fr));gap:clamp(.28rem,1.3vw,.55rem);width:min(100%,34rem);margin:0 auto;border-radius:28px;padding:clamp(.55rem,2vw,.9rem);background:radial-gradient(circle at 25% 18%,rgba(255,255,255,.7),transparent 20%),linear-gradient(135deg,#18c7d429,#ff4f9f29)}.bubble-board.is-animating{pointer-events:none}.bubble-cell{position:relative;aspect-ratio:1;border:0;border-radius:999px;background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.86),rgba(255,255,255,.24) 22%,transparent 34%),radial-gradient(circle at 70% 78%,rgba(0,0,0,.18),transparent 38%),var(--bubble-color);box-shadow:inset 0 -.45rem .75rem #00000024,0 .5rem 1.1rem color-mix(in srgb,var(--bubble-color),transparent 72%);transform:scale(.98);transition:filter .14s ease,transform .14s ease,box-shadow .14s ease}.bubble-cell.is-popping{animation:bubble-pop var(--bubble-pop-ms, .19s) ease-out forwards}.bubble-cell.is-falling{animation:bubble-fall var(--bubble-settle-ms, .31s) cubic-bezier(.18,.88,.32,1.18) both}.bubble-cell.is-entering{animation:bubble-enter var(--bubble-settle-ms, .31s) cubic-bezier(.18,.88,.32,1.18) both}.bubble-cell.is-target{filter:saturate(1.18) brightness(1.08);transform:scale(1.05);box-shadow:inset 0 -.45rem .75rem #00000024,0 0 0 .16rem #ffffffc7,0 .75rem 1.5rem color-mix(in srgb,var(--bubble-color),transparent 55%)}.bubble-cell span{position:absolute;inset:auto .12rem .1rem auto;display:grid;place-items:center;min-width:1.15rem;height:1.15rem;border-radius:999px;background:#ffffffd1;color:#2f2a3a;font-size:.66rem;font-weight:950;opacity:0}.bubble-cell.is-target span{opacity:1}.bubble-board.is-finished .bubble-cell{opacity:.55}@keyframes bubble-pop{0%{opacity:1;transform:scale(1.04)}52%{opacity:1;transform:scale(1.22);filter:brightness(1.28) saturate(1.28)}to{opacity:0;transform:scale(.18);filter:brightness(1.55) saturate(1.35)}}@keyframes bubble-fall{0%{transform:translateY(calc(var(--bubble-drop, 0) * -100%)) scale(.98)}76%{transform:translateY(0) scale(1.05)}to{transform:translateY(0) scale(.98)}}@keyframes bubble-enter{0%{opacity:0;transform:translateY(calc((var(--bubble-drop, 1) + 1) * -100%)) scale(.58)}72%{opacity:1;transform:translateY(0) scale(1.08)}to{opacity:1;transform:translateY(0) scale(.98)}}.bubble-result{display:grid;gap:8px;justify-items:center;border-radius:22px;padding:16px;background:rgba(var(--ion-color-success-rgb, 45, 211, 111),.12);text-align:center}.bubble-result ion-icon{color:var(--ion-color-success, #2dd36f);font-size:2rem}.bubble-result strong{font-size:1.35rem;font-weight:950}.bubble-result p{color:var(--bubble-muted)}.bubble-result div{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:8px 12px;background:var(--bubble-soft)}.bubble-result div span,.bubble-leaderboard li>span{display:grid;place-items:center;width:2.15rem;height:2.15rem;border-radius:999px;background:var(--player-color, var(--bubble-primary))}.bubble-leaderboard__title{display:flex;align-items:center;gap:10px}.bubble-leaderboard__title ion-icon{color:var(--bubble-primary);font-size:1.4rem}.bubble-leaderboard ol{display:grid;gap:8px;margin:0;padding:0;list-style:none}.bubble-leaderboard li{display:grid;grid-template-columns:2.15rem 1fr auto;gap:10px;align-items:center;border-radius:16px;padding:12px;background:var(--bubble-soft)}@media (max-width: 560px){.bubble-modes,.bubble-actions,.bubble-status{grid-template-columns:1fr}.bubble-board{width:100%}}\n"] }]
|
|
68229
68346
|
}], ctorParameters: () => [], propDecorators: { miniGamesRoute: [{
|
|
68230
68347
|
type: Input
|
|
68231
68348
|
}] } });
|