@gamebob/axon-surge 0.5.0 → 0.6.0

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.
@@ -23,7 +23,8 @@ export declare class GameEngine {
23
23
  private hud;
24
24
  private startMenu;
25
25
  private settingsModal;
26
- private onboarding;
26
+ private interactiveTutorial;
27
+ private tutorialOverlay;
27
28
  private progressBar;
28
29
  private core;
29
30
  private enemies;
@@ -37,7 +38,6 @@ export declare class GameEngine {
37
38
  private combo;
38
39
  private isRunning;
39
40
  private isPaused;
40
- private firstPlay;
41
41
  constructor(options: GameEngineOptions);
42
42
  setLanguage(language: Language): void;
43
43
  setTheme(theme: Theme): void;
@@ -1 +1 @@
1
- {"version":3,"file":"GameEngine.d.ts","sourceRoot":"","sources":["../../src/core/GameEngine.ts"],"names":[],"mappings":"AAeA,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;IAClC,OAAO,CAAC,SAAS,CAAiB;gBAEtB,OAAO,EAAE,iBAAiB;IA2D/B,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKrC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,WAAW;IAsDZ,SAAS,IAAI,IAAI;IAyBxB,OAAO,CAAC,MAAM;IAgDd,OAAO,CAAC,MAAM;CAejB"}
1
+ {"version":3,"file":"GameEngine.d.ts","sourceRoot":"","sources":["../../src/core/GameEngine.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,YAAY,CAAC;CAC3B;AAED,qBAAa,UAAU;IACnB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,KAAK,CAAe;IAC5B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAc;IAEjC,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,aAAa,CAAsB;IAE3C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,OAAO,EAAE,iBAAiB;IA4D/B,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKrC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAInC,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,WAAW;IA2CZ,SAAS,IAAI,IAAI;IA6BxB,OAAO,CAAC,MAAM;IA+Dd,OAAO,CAAC,MAAM;CAiBjB"}
@@ -0,0 +1,19 @@
1
+ import { EnemyEntity } from "../entities/EnemyEntity";
2
+ export declare class InteractiveTutorial {
3
+ isActive: boolean;
4
+ showWarning: boolean;
5
+ private dummyLauncher;
6
+ private dummyTarget;
7
+ private initialLauncherPos;
8
+ private initialTargetPos;
9
+ isTutorialEnabled(): boolean;
10
+ setTutorialEnabled(enabled: boolean): void;
11
+ getLauncher(): EnemyEntity | null;
12
+ getTarget(): EnemyEntity | null;
13
+ getStep(): 1 | 2;
14
+ start(width: number, height: number, activeEnemies: EnemyEntity[]): void;
15
+ update(dt: number, enemies: EnemyEntity[], width: number, height: number, onComplete: () => void, onForceRelease?: () => void): void;
16
+ private resetDummies;
17
+ complete(): void;
18
+ }
19
+ //# sourceMappingURL=InteractiveTutorial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveTutorial.d.ts","sourceRoot":"","sources":["../../src/director/InteractiveTutorial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAMtD,qBAAa,mBAAmB;IACrB,QAAQ,EAAE,OAAO,CAAS;IAC1B,WAAW,EAAE,OAAO,CAAS;IACpC,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,gBAAgB,CAA4B;IAE7C,iBAAiB,IAAI,OAAO;IAQ5B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAM1C,WAAW,IAAI,WAAW,GAAG,IAAI;IAIjC,SAAS,IAAI,WAAW,GAAG,IAAI;IAI/B,OAAO,IAAI,CAAC,GAAG,CAAC;IAOhB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI;IA+BxE,MAAM,CACT,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,IAAI,EACtB,cAAc,CAAC,EAAE,MAAM,IAAI,GAC5B,IAAI;IA0DP,OAAO,CAAC,YAAY;IAab,QAAQ,IAAI,IAAI;CAI1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"WaveDirector.d.ts","sourceRoot":"","sources":["../../src/director/WaveDirector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,qBAAa,YAAY;IACd,IAAI,EAAE,MAAM,CAAK;IACxB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,kBAAkB,CAAgB;;IAMnC,KAAK,IAAI,IAAI;IAOb,MAAM,CACT,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,WAAW,EAAE,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,GAAG,IAAI;IA+BrB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,sBAAsB;CA4CjC"}
1
+ {"version":3,"file":"WaveDirector.d.ts","sourceRoot":"","sources":["../../src/director/WaveDirector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAKtD,qBAAa,YAAY;IACd,IAAI,EAAE,MAAM,CAAK;IACxB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,kBAAkB,CAAe;;IAMlC,KAAK,IAAI,IAAI;IAOb,MAAM,CACT,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,WAAW,EAAE,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,GAAG,IAAI;IAgCrB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,sBAAsB;CAqDjC"}
@@ -15,6 +15,7 @@ export declare class EnemyEntity {
15
15
  color: string;
16
16
  strategy: IImpactStrategy | null;
17
17
  hitRadiusPadding: number;
18
+ maxSpeed: number;
18
19
  isDying: boolean;
19
20
  deathType: DeathType;
20
21
  deathTimer: number;
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyEntity.d.ts","sourceRoot":"","sources":["../../src/entities/EnemyEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvD,qBAAa,WAAW;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAkB;IACpC,QAAQ,EAAE,QAAQ,CAAkB;IACpC,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,SAAS,CAAa;IAC5B,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,cAAc,EAAE,OAAO,CAAS;IAChC,QAAQ,EAAE,MAAM,CAAK;IACrB,KAAK,EAAE,MAAM,CAAa;IAC1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAQ;IACxC,gBAAgB,EAAE,MAAM,CAAO;IAE/B,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,SAAS,CAAU;IAC9B,UAAU,EAAE,MAAM,CAAK;IACvB,aAAa,EAAE,MAAM,CAAO;IAC5B,UAAU,EAAE,MAAM,CAAK;gBAElB,EAAE,EAAE,MAAM;IAIf,YAAY,IAAI,MAAM;IAItB,oBAAoB,IAAI,IAAI;IAS5B,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUtC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAsBxB,KAAK,IAAI,IAAI;CAcvB"}
1
+ {"version":3,"file":"EnemyEntity.d.ts","sourceRoot":"","sources":["../../src/entities/EnemyEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEvD,qBAAa,WAAW;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAkB;IACpC,QAAQ,EAAE,QAAQ,CAAkB;IACpC,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,SAAS,CAAa;IAC5B,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,cAAc,EAAE,OAAO,CAAS;IAChC,QAAQ,EAAE,MAAM,CAAK;IACrB,KAAK,EAAE,MAAM,CAAa;IAC1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAQ;IACxC,gBAAgB,EAAE,MAAM,CAAO;IAC/B,QAAQ,EAAE,MAAM,CAAO;IAEvB,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,SAAS,CAAU;IAC9B,UAAU,EAAE,MAAM,CAAK;IACvB,aAAa,EAAE,MAAM,CAAO;IAC5B,UAAU,EAAE,MAAM,CAAK;gBAElB,EAAE,EAAE,MAAM;IAIf,YAAY,IAAI,MAAM;IAItB,oBAAoB,IAAI,IAAI;IAS5B,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAUtC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IA+BxB,KAAK,IAAI,IAAI;CAevB"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFactory.d.ts","sourceRoot":"","sources":["../../src/factory/EntityFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAOzD,qBAAa,aAAa;WACR,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,WAAW;WAOhF,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;CAkDjH"}
1
+ {"version":3,"file":"EntityFactory.d.ts","sourceRoot":"","sources":["../../src/factory/EntityFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAOzD,qBAAa,aAAa;WACR,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,WAAW;WAOhF,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;CAyDjH"}
@@ -15,6 +15,12 @@ export interface Translations {
15
15
  grabInstruction: string;
16
16
  throwInstruction: string;
17
17
  comboText: string;
18
+ tutorialInstruction: string;
19
+ dontShowTutorialLabel: string;
20
+ tutorialSettingLabel: string;
21
+ tutorialStep1Text: string;
22
+ tutorialStep2Text: string;
23
+ tutorialDragWarning: string;
18
24
  }
19
25
  export declare const LOCALES: Record<Language, Translations>;
20
26
  export declare const LANGUAGES: Language[];
@@ -1 +1 @@
1
- {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/i18n/locales.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GACd,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CAgQlD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QAAQ,EAgB/B,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,QAAQ,CAEzD"}
1
+ {"version":3,"file":"locales.d.ts","sourceRoot":"","sources":["../../src/i18n/locales.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GACd,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,YAAY,CA0VlD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,QAAQ,EAgB/B,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,QAAQ,CAEzD"}
@@ -10,8 +10,9 @@ export declare class InputManager {
10
10
  constructor(canvas: HTMLCanvasElement);
11
11
  private updatePointerPos;
12
12
  private bindEvents;
13
- tryGrab(enemies: EnemyEntity[]): EnemyEntity | null;
13
+ tryGrab(enemies: EnemyEntity[], isTouch?: boolean): EnemyEntity | null;
14
14
  releaseAndThrow(): EnemyEntity | null;
15
+ forceRelease(): void;
15
16
  reset(): void;
16
17
  }
17
18
  //# sourceMappingURL=InputManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../src/input/InputManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQtD,qBAAa,YAAY;IACd,eAAe,EAAE,QAAQ,CAAkB;IAC3C,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,WAAW,GAAG,IAAI,CAAQ;IACxC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAKrC,OAAO,CAAC,gBAAgB;IAsBxB,OAAO,CAAC,UAAU;IAgDX,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,WAAW,GAAG,IAAI;IAoBnD,eAAe,IAAI,WAAW,GAAG,IAAI;IA2DrC,KAAK,IAAI,IAAI;CAMvB"}
1
+ {"version":3,"file":"InputManager.d.ts","sourceRoot":"","sources":["../../src/input/InputManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAQtD,qBAAa,YAAY;IACd,eAAe,EAAE,QAAQ,CAAkB;IAC3C,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,WAAW,GAAG,IAAI,CAAQ;IACxC,SAAS,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAEzC,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAKrC,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,UAAU;IAwDX,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,GAAE,OAAe,GAAG,WAAW,GAAG,IAAI;IAqB7E,eAAe,IAAI,WAAW,GAAG,IAAI;IA2DrC,YAAY,IAAI,IAAI;IAWpB,KAAK,IAAI,IAAI;CAMvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"PhysicsEngine.d.ts","sourceRoot":"","sources":["../../src/physics/PhysicsEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,qBAAa,aAAa;IACtB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW;IAM1C,MAAM,CACT,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,EAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;IA+TP,OAAO,CAAC,0BAA0B;CA+DrC"}
1
+ {"version":3,"file":"PhysicsEngine.d.ts","sourceRoot":"","sources":["../../src/physics/PhysicsEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,qBAAa,aAAa;IACtB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW;IAM1C,MAAM,CACT,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,EAC7B,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;IAmVP,OAAO,CAAC,0BAA0B;CA+DrC"}
@@ -3,12 +3,16 @@ import { EnemyEntity } from "../entities/EnemyEntity";
3
3
  import type { ToxicPool, GravityVortex, Shockwave, FloatingText, Particle, Vector2D } from "../types/game";
4
4
  import { JuiceEffects } from "./JuiceEffects";
5
5
  import { ThemeManager } from "../theme/ThemeManager";
6
+ import type { InteractiveTutorial } from "../director/InteractiveTutorial";
6
7
  export declare class CanvasRenderer {
7
8
  private canvas;
8
9
  private ctx;
9
10
  private themeManager;
11
+ private indicatorRenderer;
12
+ private bgRenderer;
13
+ private tutorialArrowRenderer;
10
14
  constructor(canvas: HTMLCanvasElement, themeManager: ThemeManager);
11
- render(core: CoreEntity, enemies: EnemyEntity[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, grabbedEnemy: EnemyEntity | null, mousePos: Vector2D): void;
15
+ render(core: CoreEntity, enemies: EnemyEntity[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, grabbedEnemy: EnemyEntity | null, mousePos: Vector2D, level?: number, tutorial?: InteractiveTutorial): void;
12
16
  private drawToxicPools;
13
17
  private drawShockwaves;
14
18
  private drawGravityVortices;
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasRenderer.d.ts","sourceRoot":"","sources":["../../src/render/CanvasRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAExE,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,YAAY,CAAe;gBAEvB,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY;IAM1D,MAAM,CACT,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,EAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,WAAW,GAAG,IAAI,EAChC,QAAQ,EAAE,QAAQ,GACnB,IAAI;IAmCP,OAAO,CAAC,cAAc;IAqEtB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,4BAA4B;IAkEpC,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IAuK1B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;CAc5B"}
1
+ {"version":3,"file":"CanvasRenderer.d.ts","sourceRoot":"","sources":["../../src/render/CanvasRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAIxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,qBAAqB,CAAwB;gBAEzC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY;IAS1D,MAAM,CACT,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,EAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,WAAW,GAAG,IAAI,EAChC,QAAQ,EAAE,QAAQ,EAClB,KAAK,GAAE,MAAU,EACjB,QAAQ,CAAC,EAAE,mBAAmB,GAC/B,IAAI;IAwCP,OAAO,CAAC,cAAc;IAqEtB,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,mBAAmB;IAoC3B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,4BAA4B;IAkEpC,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IAuK1B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;CAc5B"}
@@ -0,0 +1,4 @@
1
+ export declare class CosmosBackgroundRenderer {
2
+ render(ctx: CanvasRenderingContext2D, w: number, h: number, time: number, level: number): void;
3
+ }
4
+ //# sourceMappingURL=CosmosBackgroundRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CosmosBackgroundRenderer.d.ts","sourceRoot":"","sources":["../../src/render/CosmosBackgroundRenderer.ts"],"names":[],"mappings":"AAAA,qBAAa,wBAAwB;IAC1B,MAAM,CACT,GAAG,EAAE,wBAAwB,EAC7B,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACd,IAAI;CAoCV"}
@@ -0,0 +1,10 @@
1
+ import type { EnemyEntity } from "../entities/EnemyEntity";
2
+ export declare class OffscreenIndicatorRenderer {
3
+ private maxDistance;
4
+ private maxThickness;
5
+ private minThickness;
6
+ private maxLength;
7
+ private minLength;
8
+ render(ctx: CanvasRenderingContext2D, enemies: EnemyEntity[], width: number, height: number): void;
9
+ }
10
+ //# sourceMappingURL=OffscreenIndicatorRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OffscreenIndicatorRenderer.d.ts","sourceRoot":"","sources":["../../src/render/OffscreenIndicatorRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,qBAAa,0BAA0B;IACnC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,SAAS,CAAc;IAExB,MAAM,CACT,GAAG,EAAE,wBAAwB,EAC7B,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,IAAI;CAkDV"}
@@ -0,0 +1,5 @@
1
+ import type { InteractiveTutorial } from "../director/InteractiveTutorial";
2
+ export declare class TutorialArrowRenderer {
3
+ render(ctx: CanvasRenderingContext2D, tutorial: InteractiveTutorial, time: number): void;
4
+ }
5
+ //# sourceMappingURL=TutorialArrowRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TutorialArrowRenderer.d.ts","sourceRoot":"","sources":["../../src/render/TutorialArrowRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,qBAAa,qBAAqB;IACvB,MAAM,CACT,GAAG,EAAE,wBAAwB,EAC7B,QAAQ,EAAE,mBAAmB,EAC7B,IAAI,EAAE,MAAM,GACb,IAAI;CA8EV"}
package/dist/styles.css CHANGED
@@ -1 +1 @@
1
- @import"https://fonts.googleapis.com/css2?family=Orbitron:wght@700;900&family=Outfit:wght@500;700;900&display=swap";:root,[data-theme=bioluminescent]{--color-bg-deep: #03050a;--color-card-bg: #0b1424;--color-axon-cyan: #00f0ff;--color-axon-magenta: #ff00dd;--color-axon-green: #39ff14;--color-axon-gold: #ffd700;--color-axon-purple: #9d4edd;--color-text-main: #ffffff;--color-text-muted: rgba(0, 240, 255, .85);--color-btn-bg: #ff00dd;--color-btn-text: #ffffff;--color-btn-hover-bg: #00f0ff;--color-btn-hover-text: #03050a;--color-toggle-bg: #050b16;--color-toggle-active-bg: #00f0ff;--color-toggle-active-text: #03050a;--color-border-glow: rgba(0, 240, 255, .4);--color-progress-fill: #ff00dd;--halo-glow-primary: rgba(0, 240, 255, .35);--backdrop-glow: rgba(3, 5, 10, .85)}[data-theme=dark]{--color-bg-deep: #08080c;--color-card-bg: #121520;--color-axon-cyan: #00b4d8;--color-axon-magenta: #d800a6;--color-axon-green: #20bf55;--color-axon-gold: #e5a93c;--color-axon-purple: #7209b7;--color-text-main: #f0f0f5;--color-text-muted: rgba(0, 180, 216, .85);--color-btn-bg: #d800a6;--color-btn-text: #ffffff;--color-btn-hover-bg: #00b4d8;--color-btn-hover-text: #08080c;--color-toggle-bg: #0b0d14;--color-toggle-active-bg: #00b4d8;--color-toggle-active-text: #08080c;--color-border-glow: rgba(0, 180, 216, .4);--color-progress-fill: #d800a6;--halo-glow-primary: rgba(0, 180, 216, .3);--backdrop-glow: rgba(8, 8, 12, .85)}[data-theme=light]{--color-bg-deep: #f0f4f8;--color-card-bg: #ffffff;--color-axon-cyan: #0284c7;--color-axon-magenta: #c026d3;--color-axon-green: #16a34a;--color-axon-gold: #d97706;--color-axon-purple: #7c3aed;--color-text-main: #0f172a;--color-text-muted: #0284c7;--color-btn-bg: #0284c7;--color-btn-text: #ffffff;--color-btn-hover-bg: #c026d3;--color-btn-hover-text: #ffffff;--color-toggle-bg: #e2e8f0;--color-toggle-active-bg: #0284c7;--color-toggle-active-text: #ffffff;--color-border-glow: rgba(2, 132, 199, .4);--color-progress-fill: #0284c7;--halo-glow-primary: rgba(2, 132, 199, .25);--backdrop-glow: rgba(240, 244, 248, .85)}.axon-game-root{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-deep);font-family:Outfit,-apple-system,sans-serif;user-select:none;transition:background .3s ease}.axon-canvas{display:block;width:100%;height:100%}.axon-hud{position:absolute;top:28px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:30}.axon-hud-wave{background:transparent;border:none;padding:0;color:var(--color-text-muted);font-family:Orbitron,sans-serif;font-weight:700;font-size:11px;letter-spacing:3px;text-shadow:0 0 10px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-hud-wave span{font-size:32px;font-weight:900;color:var(--color-text-main);display:block;margin-top:2px;text-shadow:0 0 14px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-hud-level-track{width:68px;height:4px;background:var(--color-toggle-bg);border:1px solid var(--color-border-glow);border-radius:4px;margin-top:6px;overflow:hidden}.axon-hud-level-fill{width:0%;height:100%;background:var(--color-axon-cyan);box-shadow:0 0 10px var(--color-axon-cyan);border-radius:4px;transition:width .2s ease}.axon-hud-combo{position:absolute;left:50%;transform:translate(-50%);top:0;pointer-events:none}.axon-hud-combo span{font-family:Orbitron,sans-serif;font-size:48px;font-weight:900;color:var(--color-axon-magenta);text-shadow:0 0 20px var(--color-axon-magenta),0 0 40px var(--color-axon-cyan);letter-spacing:2px;display:none;animation:axon-combo-pulse .3s cubic-bezier(.25,1,.5,1)}@keyframes axon-combo-pulse{0%{transform:scale(1.4)}to{transform:scale(1)}}.axon-hud-settings-btn{pointer-events:auto;background:var(--color-toggle-bg);border:1.5px solid var(--color-axon-cyan);border-radius:50%;width:44px;height:44px;color:var(--color-axon-cyan);cursor:pointer;backdrop-filter:blur(10px);transition:all .3s ease;box-shadow:0 0 18px var(--halo-glow-primary);display:flex;align-items:center;justify-content:center;z-index:40}.axon-hud-settings-btn:hover{background:var(--color-axon-cyan);color:var(--color-bg-deep);box-shadow:0 0 30px var(--color-axon-cyan);transform:scale(1.1)}.axon-start-menu{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:transparent;z-index:20;pointer-events:none}.axon-title-halo{position:relative;text-align:center;padding:40px;display:flex;flex-direction:column;align-items:center;gap:36px;background:transparent;pointer-events:auto}.axon-title{margin:0;font-family:Orbitron,sans-serif;font-size:64px;font-weight:900;color:var(--color-text-main);letter-spacing:8px;text-transform:uppercase;text-shadow:0 0 16px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-start-button{background:var(--color-btn-bg);border:2px solid var(--color-axon-cyan);border-radius:50px;color:var(--color-btn-text);font-family:Orbitron,sans-serif;font-size:18px;font-weight:900;padding:18px 52px;cursor:pointer;letter-spacing:3px;transition:all .3s cubic-bezier(.25,1,.5,1);box-shadow:0 0 35px var(--color-btn-bg);text-shadow:0 0 8px rgba(255,255,255,.8);pointer-events:auto}.axon-start-button:hover{transform:scale(1.08) translateY(-2px);background:var(--color-btn-hover-bg);color:var(--color-btn-hover-text);border-color:var(--color-axon-cyan);box-shadow:0 0 60px var(--color-btn-hover-bg)}.axon-onboarding{position:absolute;bottom:80px;left:50%;transform:translate(-50%);z-index:15;pointer-events:none}.axon-onboarding-hint{background:var(--color-card-bg);border:1.5px solid var(--color-axon-cyan);border-radius:30px;padding:14px 28px;color:var(--color-text-main);font-family:Orbitron,sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;backdrop-filter:blur(10px);box-shadow:0 0 30px var(--color-axon-cyan);animation:axon-onboarding-float 2s ease-in-out infinite alternate;transition:all .3s ease}@keyframes axon-onboarding-float{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.axon-settings-modal{border:none;background:transparent;padding:0;margin:auto;z-index:100}.axon-settings-modal::backdrop{background:var(--backdrop-glow);backdrop-filter:blur(12px);transition:background .3s ease}.axon-settings-card{background:var(--color-card-bg);border:1.5px solid var(--color-axon-cyan);border-radius:28px;padding:36px 44px;color:var(--color-text-main);min-width:380px;max-width:440px;box-shadow:0 0 50px var(--halo-glow-primary);display:flex;flex-direction:column;align-items:center;transition:all .3s ease}.axon-settings-card h2{font-family:Orbitron,sans-serif;color:var(--color-axon-cyan);margin-top:0;margin-bottom:28px;font-size:24px;text-shadow:0 0 12px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-setting-row{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:22px;font-weight:700;font-size:12px;letter-spacing:1px;color:var(--color-text-main);transition:color .3s ease}.axon-select-wrapper{position:relative;display:inline-block}.axon-select{appearance:none;-webkit-appearance:none;background:var(--color-toggle-bg);border:1px solid var(--color-border-glow);border-radius:20px;padding:8px 36px 8px 16px;color:var(--color-axon-cyan);font-family:Orbitron,sans-serif;font-size:11px;font-weight:900;cursor:pointer;outline:none;letter-spacing:1px;box-shadow:0 0 10px var(--halo-glow-primary);transition:all .2s ease}.axon-select:hover,.axon-select:focus{border-color:var(--color-axon-cyan);box-shadow:0 0 18px var(--color-axon-cyan)}.axon-select option{background:var(--color-card-bg);color:var(--color-text-main);font-family:Outfit,sans-serif;font-size:13px;padding:8px}.axon-select-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-axon-cyan);font-size:9px}.axon-toggle-group{display:flex;gap:6px;background:var(--color-toggle-bg);border:1px solid var(--color-border-glow);border-radius:20px;padding:4px;transition:all .3s ease}.axon-toggle-btn{background:transparent;border:none;border-radius:14px;color:var(--color-text-muted);font-family:Orbitron,sans-serif;font-size:10px;font-weight:900;padding:7px 16px;cursor:pointer;transition:all .2s ease;white-space:nowrap}.axon-toggle-btn.active{background:var(--color-toggle-active-bg);color:var(--color-toggle-active-text);box-shadow:0 0 14px var(--color-toggle-active-bg)}.axon-settings-credits{margin:18px 0 24px;font-size:11px;color:var(--color-text-muted);text-align:center;letter-spacing:1px;opacity:.8;transition:color .3s ease}
1
+ @import"https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@700;900&family=Orbitron:wght@700;900&family=Outfit:wght@500;700;900&display=swap";:root,[data-theme=bioluminescent]{--color-bg-deep: #03050a;--color-card-bg: #0b1424;--color-axon-cyan: #00f0ff;--color-axon-magenta: #ff00dd;--color-axon-green: #39ff14;--color-axon-gold: #ffd700;--color-axon-purple: #9d4edd;--color-text-main: #ffffff;--color-text-muted: rgba(0, 240, 255, .85);--color-btn-bg: #ff00dd;--color-btn-text: #ffffff;--color-btn-hover-bg: #00f0ff;--color-btn-hover-text: #03050a;--color-toggle-bg: #050b16;--color-toggle-active-bg: #00f0ff;--color-toggle-active-text: #03050a;--color-border-glow: rgba(0, 240, 255, .4);--color-progress-fill: #ff00dd;--halo-glow-primary: rgba(0, 240, 255, .35);--backdrop-glow: rgba(3, 5, 10, .85)}[data-theme=dark]{--color-bg-deep: #08080c;--color-card-bg: #121520;--color-axon-cyan: #00b4d8;--color-axon-magenta: #d800a6;--color-axon-green: #20bf55;--color-axon-gold: #e5a93c;--color-axon-purple: #7209b7;--color-text-main: #f0f0f5;--color-text-muted: rgba(0, 180, 216, .85);--color-btn-bg: #d800a6;--color-btn-text: #ffffff;--color-btn-hover-bg: #00b4d8;--color-btn-hover-text: #08080c;--color-toggle-bg: #0b0d14;--color-toggle-active-bg: #00b4d8;--color-toggle-active-text: #08080c;--color-border-glow: rgba(0, 180, 216, .4);--color-progress-fill: #d800a6;--halo-glow-primary: rgba(0, 180, 216, .3);--backdrop-glow: rgba(8, 8, 12, .85)}[data-theme=light]{--color-bg-deep: #f0f4f8;--color-card-bg: #ffffff;--color-axon-cyan: #0284c7;--color-axon-magenta: #c026d3;--color-axon-green: #16a34a;--color-axon-gold: #d97706;--color-axon-purple: #7c3aed;--color-text-main: #0f172a;--color-text-muted: #0284c7;--color-btn-bg: #0284c7;--color-btn-text: #ffffff;--color-btn-hover-bg: #c026d3;--color-btn-hover-text: #ffffff;--color-toggle-bg: #e2e8f0;--color-toggle-active-bg: #0284c7;--color-toggle-active-text: #ffffff;--color-border-glow: rgba(2, 132, 199, .4);--color-progress-fill: #0284c7;--halo-glow-primary: rgba(2, 132, 199, .25);--backdrop-glow: rgba(240, 244, 248, .85)}.axon-game-root{position:relative;width:100%;height:100%;overflow:hidden;background:var(--color-bg-deep);font-family:Outfit,-apple-system,sans-serif;user-select:none;touch-action:none;transition:background .3s ease}.axon-canvas{display:block;width:100%;height:100%;touch-action:none}.axon-hud{position:absolute;top:28px;left:36px;right:36px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:30}.axon-hud-wave{background:transparent;border:none;padding:0;color:var(--color-text-muted);font-family:Orbitron,sans-serif;font-weight:700;font-size:11px;letter-spacing:3px;text-shadow:0 0 10px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-hud-wave span{font-size:32px;font-weight:900;color:var(--color-text-main);display:block;margin-top:2px;text-shadow:0 0 14px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-hud-level-track{width:68px;height:4px;background:var(--color-toggle-bg);border:1px solid var(--color-border-glow);border-radius:4px;margin-top:6px;overflow:hidden}.axon-hud-level-fill{width:0%;height:100%;background:var(--color-axon-cyan);box-shadow:0 0 10px var(--color-axon-cyan);border-radius:4px;transition:width .2s ease}.axon-hud-combo{position:absolute;left:50%;transform:translate(-50%);top:0;pointer-events:none}.axon-hud-combo span{font-family:Orbitron,sans-serif;font-size:48px;font-weight:900;color:var(--color-axon-magenta);text-shadow:0 0 20px var(--color-axon-magenta),0 0 40px var(--color-axon-cyan);letter-spacing:2px;display:none;animation:axon-combo-pulse .3s cubic-bezier(.25,1,.5,1)}@keyframes axon-combo-pulse{0%{transform:scale(1.4)}to{transform:scale(1)}}.axon-hud-settings-btn{pointer-events:auto;background:var(--color-toggle-bg);border:1.5px solid var(--color-axon-cyan);border-radius:50%;width:44px;height:44px;color:var(--color-axon-cyan);cursor:pointer;backdrop-filter:blur(10px);transition:all .3s ease;box-shadow:0 0 18px var(--halo-glow-primary);display:flex;align-items:center;justify-content:center;z-index:40}.axon-hud-settings-btn:hover{background:var(--color-axon-cyan);color:var(--color-bg-deep);box-shadow:0 0 30px var(--color-axon-cyan);transform:scale(1.1)}.axon-start-menu{position:absolute;inset:0;display:flex;justify-content:center;align-items:center;background:transparent;z-index:20;pointer-events:none}.axon-title-halo{position:relative;text-align:center;padding:40px;display:flex;flex-direction:column;align-items:center;gap:36px;background:transparent;pointer-events:auto}.axon-title{margin:0;font-family:Orbitron,sans-serif;font-size:64px;font-weight:900;color:var(--color-text-main);letter-spacing:8px;text-transform:uppercase;text-shadow:0 0 16px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-start-button{background:var(--color-btn-bg);border:2px solid var(--color-axon-cyan);border-radius:50px;color:var(--color-btn-text);font-family:Orbitron,sans-serif;font-size:18px;font-weight:900;padding:18px 52px;cursor:pointer;letter-spacing:3px;transition:all .3s cubic-bezier(.25,1,.5,1);box-shadow:0 0 35px var(--color-btn-bg);text-shadow:0 0 8px rgba(255,255,255,.8);pointer-events:auto}.axon-start-button:hover{transform:scale(1.08) translateY(-2px);background:var(--color-btn-hover-bg);color:var(--color-btn-hover-text);border-color:var(--color-axon-cyan);box-shadow:0 0 60px var(--color-btn-hover-bg)}.axon-onboarding{position:absolute;bottom:80px;left:50%;transform:translate(-50%);z-index:15;pointer-events:none}.axon-onboarding-hint{background:var(--color-card-bg);border:1.5px solid var(--color-axon-cyan);border-radius:30px;padding:14px 28px;color:var(--color-text-main);font-family:Orbitron,sans-serif;font-size:13px;font-weight:700;letter-spacing:2px;backdrop-filter:blur(10px);box-shadow:0 0 30px var(--color-axon-cyan);animation:axon-onboarding-float 2s ease-in-out infinite alternate;transition:all .3s ease}@keyframes axon-onboarding-float{0%{transform:translateY(0)}to{transform:translateY(-8px)}}.axon-settings-modal{border:none;background:transparent;padding:0;margin:auto;z-index:100;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);box-sizing:border-box;overflow:hidden}.axon-settings-modal::backdrop{background:var(--backdrop-glow);backdrop-filter:blur(12px);transition:background .3s ease}.axon-settings-card{background:var(--color-card-bg);border:1.5px solid var(--color-axon-cyan);border-radius:24px;padding:24px 20px;color:var(--color-text-main);width:min(380px,calc(100vw - 32px));box-sizing:border-box;box-shadow:0 0 50px var(--halo-glow-primary);display:flex;flex-direction:column;align-items:center;max-height:82vh;overflow-y:auto;overflow-x:hidden;transition:all .3s ease}.axon-settings-card h2{font-family:Orbitron,sans-serif;color:var(--color-axon-cyan);margin-top:0;margin-bottom:20px;font-size:20px;text-shadow:0 0 12px var(--color-axon-cyan);transition:color .3s ease,text-shadow .3s ease}.axon-setting-row{display:flex;flex-direction:column;align-items:stretch;width:100%;margin-bottom:16px;font-weight:700;font-size:11px;letter-spacing:1px;color:var(--color-text-main);gap:6px;box-sizing:border-box;transition:color .3s ease}.axon-setting-row>span{width:100%;word-break:break-word}.axon-select-wrapper{position:relative;display:block;width:100%;box-sizing:border-box}.axon-select{appearance:none;-webkit-appearance:none;width:100%;background:var(--color-toggle-bg);border:1px solid var(--color-border-glow);border-radius:16px;padding:9px 36px 9px 14px;color:var(--color-axon-cyan);font-family:Orbitron,sans-serif;font-size:11px;font-weight:900;cursor:pointer;outline:none;letter-spacing:1px;box-shadow:0 0 10px var(--halo-glow-primary);transition:all .2s ease;box-sizing:border-box;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.axon-select:hover,.axon-select:focus{border-color:var(--color-axon-cyan);box-shadow:0 0 18px var(--color-axon-cyan)}.axon-select option{background:var(--color-card-bg);color:var(--color-text-main);font-family:Outfit,sans-serif;font-size:13px;padding:8px}.axon-select-arrow{position:absolute;right:14px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-axon-cyan);font-size:9px}.axon-toggle-group{display:flex;width:100%;gap:4px;background:var(--color-toggle-bg);border:1px solid var(--color-border-glow);border-radius:16px;padding:4px;box-sizing:border-box;transition:all .3s ease}.axon-toggle-btn{flex:1;text-align:center;background:transparent;border:none;border-radius:12px;color:var(--color-text-muted);font-family:Orbitron,sans-serif;font-size:10px;font-weight:900;padding:8px 4px;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis}.axon-toggle-btn.active{background:var(--color-toggle-active-bg);color:var(--color-toggle-active-text);box-shadow:0 0 14px var(--color-toggle-active-bg)}.axon-settings-credits{margin:14px 0 20px;font-size:11px;color:var(--color-text-muted);text-align:center;letter-spacing:1px;opacity:.8;transition:color .3s ease}.axon-tutorial-overlay{position:absolute;inset:auto 0 20px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:10px;padding:0 16px;pointer-events:none;z-index:25}.axon-tutorial-banner{pointer-events:auto;background:#080e1aeb;border:1.5px solid var(--color-axon-cyan);box-shadow:0 0 28px #00f0ff66,inset 0 0 14px #00f0ff26;border-radius:16px;padding:12px 22px;text-align:center;backdrop-filter:blur(12px);max-width:min(540px,calc(100vw - 32px));box-sizing:border-box;transition:all .3s ease}.axon-tutorial-text{color:var(--color-axon-cyan);font-family:Chakra Petch,Outfit,sans-serif;font-size:13px;font-weight:900;letter-spacing:1.5px;text-shadow:0 0 12px var(--color-axon-cyan);line-height:1.4;transition:all .3s ease}.axon-tutorial-banner.axon-tutorial-banner-warning{border-color:#ff2a5f;box-shadow:0 0 32px #ff2a5f99,inset 0 0 16px #ff2a5f40;animation:axon-warning-pulse .4s ease-in-out 2 alternate}.axon-tutorial-banner-warning .axon-tutorial-text{color:#ff2a5f;text-shadow:0 0 14px #ff2a5f}@keyframes axon-warning-pulse{0%{transform:scale(1)}50%{transform:scale(1.04)}to{transform:scale(1)}}.axon-tutorial-checkbox-label{pointer-events:auto;display:flex;align-items:center;gap:10px;background:#0b1424eb;border:1px solid var(--color-border-glow);padding:8px 18px;border-radius:20px;color:var(--color-text-main);font-family:Outfit,sans-serif;font-size:11px;font-weight:700;letter-spacing:.5px;cursor:pointer;backdrop-filter:blur(8px);box-shadow:0 0 16px #00000080;transition:all .25s ease}.axon-tutorial-checkbox-label:hover{border-color:var(--color-axon-magenta);box-shadow:0 0 16px var(--color-axon-magenta);color:#fff}.axon-tutorial-checkbox{width:16px;height:16px;accent-color:var(--color-axon-magenta);cursor:pointer}@media(max-width:520px){.axon-settings-card{padding:24px 16px;border-radius:20px;width:calc(100vw - 20px)}.axon-setting-row{flex-direction:column;align-items:stretch;gap:8px;margin-bottom:16px}.axon-select-wrapper,.axon-select{width:100%}.axon-toggle-group{width:100%;justify-content:space-around}.axon-toggle-btn{flex:1;text-align:center;padding:8px 4px;font-size:9px}.axon-title{font-size:38px;letter-spacing:4px}.axon-start-button{padding:14px 36px;font-size:15px}.axon-hud{top:14px;left:16px;right:16px}.axon-tutorial-banner{padding:12px 18px}.axon-tutorial-text{font-size:11px;letter-spacing:1px}.axon-tutorial-checkbox-label{font-size:11px;padding:8px 14px}}
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../src/ui/SettingsModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAc,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3D,qBAAa,aAAa;IACtB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAyC;IAC3E,OAAO,CAAC,eAAe,CAAC,CAA2B;IACnD,OAAO,CAAC,cAAc,CAAiB;gBAGnC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EACtB,yBAAyB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,EAClE,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IA+BvC,aAAa,IAAI,IAAI;IAmJrB,gBAAgB,IAAI,OAAO;IAI3B,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;CAGtB"}
1
+ {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../src/ui/SettingsModal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAc,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3D,qBAAa,aAAa;IACtB,OAAO,CAAC,KAAK,CAAoB;IACjC,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,yBAAyB,CAAC,CAAyC;IAC3E,OAAO,CAAC,eAAe,CAAC,CAA2B;IACnD,OAAO,CAAC,cAAc,CAAiB;gBAGnC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,YAAY,EACtB,yBAAyB,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,EAClE,eAAe,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IA+BvC,aAAa,IAAI,IAAI;IAkLrB,gBAAgB,IAAI,OAAO;IAI3B,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;CAGtB"}
@@ -0,0 +1,19 @@
1
+ import type { I18nService } from "../i18n/I18nService";
2
+ import type { InteractiveTutorial } from "../director/InteractiveTutorial";
3
+ export declare class TutorialOverlay {
4
+ private container;
5
+ private i18n;
6
+ private tutorialManager;
7
+ private bannerElement;
8
+ private textElement;
9
+ private checkboxElement;
10
+ private currentStep;
11
+ constructor(parent: HTMLElement, i18n: I18nService, tutorialManager: InteractiveTutorial);
12
+ render(): void;
13
+ private updateBannerContent;
14
+ updateStep(step: 1 | 2): void;
15
+ updateLanguage(): void;
16
+ show(): void;
17
+ hide(): void;
18
+ }
19
+ //# sourceMappingURL=TutorialOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TutorialOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/TutorialOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAE3E,qBAAa,eAAe;IACxB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,eAAe,CAAsB;IAC7C,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,WAAW,CAAY;gBAEnB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,mBAAmB;IAWjF,MAAM,IAAI,IAAI;IAmCrB,OAAO,CAAC,mBAAmB;IAepB,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI;IAK7B,cAAc,IAAI,IAAI;IAItB,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;CAGtB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamebob/axon-surge",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "./dist/axon-surge.js",
6
6
  "module": "./dist/axon-surge.js",