@gamebob/axon-surge 0.5.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.
Files changed (69) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +24 -0
  3. package/dist/axon-surge.js +1872 -0
  4. package/dist/core/EventBus.d.ts +10 -0
  5. package/dist/core/EventBus.d.ts.map +1 -0
  6. package/dist/core/GameEngine.d.ts +52 -0
  7. package/dist/core/GameEngine.d.ts.map +1 -0
  8. package/dist/core/GameLoop.d.ts +12 -0
  9. package/dist/core/GameLoop.d.ts.map +1 -0
  10. package/dist/director/SpawnerPatterns.d.ts +13 -0
  11. package/dist/director/SpawnerPatterns.d.ts.map +1 -0
  12. package/dist/director/WaveDirector.d.ts +17 -0
  13. package/dist/director/WaveDirector.d.ts.map +1 -0
  14. package/dist/entities/CoreEntity.d.ts +15 -0
  15. package/dist/entities/CoreEntity.d.ts.map +1 -0
  16. package/dist/entities/EnemyEntity.d.ts +30 -0
  17. package/dist/entities/EnemyEntity.d.ts.map +1 -0
  18. package/dist/factory/EntityFactory.d.ts +7 -0
  19. package/dist/factory/EntityFactory.d.ts.map +1 -0
  20. package/dist/i18n/I18nService.d.ts +9 -0
  21. package/dist/i18n/I18nService.d.ts.map +1 -0
  22. package/dist/i18n/locales.d.ts +22 -0
  23. package/dist/i18n/locales.d.ts.map +1 -0
  24. package/dist/index.d.ts +15 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/input/InputManager.d.ts +17 -0
  27. package/dist/input/InputManager.d.ts.map +1 -0
  28. package/dist/physics/PhysicsEngine.d.ts +21 -0
  29. package/dist/physics/PhysicsEngine.d.ts.map +1 -0
  30. package/dist/physics/SpatialHash.d.ts +15 -0
  31. package/dist/physics/SpatialHash.d.ts.map +1 -0
  32. package/dist/platform/browser-platform.d.ts +25 -0
  33. package/dist/platform/browser-platform.d.ts.map +1 -0
  34. package/dist/platform/platform.d.ts +29 -0
  35. package/dist/platform/platform.d.ts.map +1 -0
  36. package/dist/pool/EnemyPool.d.ts +8 -0
  37. package/dist/pool/EnemyPool.d.ts.map +1 -0
  38. package/dist/pool/ObjectPool.d.ts +10 -0
  39. package/dist/pool/ObjectPool.d.ts.map +1 -0
  40. package/dist/render/CanvasRenderer.d.ts +24 -0
  41. package/dist/render/CanvasRenderer.d.ts.map +1 -0
  42. package/dist/render/JuiceEffects.d.ts +15 -0
  43. package/dist/render/JuiceEffects.d.ts.map +1 -0
  44. package/dist/strategies/FragmentClusterStrategy.d.ts +5 -0
  45. package/dist/strategies/FragmentClusterStrategy.d.ts.map +1 -0
  46. package/dist/strategies/GravityParasiteStrategy.d.ts +5 -0
  47. package/dist/strategies/GravityParasiteStrategy.d.ts.map +1 -0
  48. package/dist/strategies/ImpactStrategy.d.ts +20 -0
  49. package/dist/strategies/ImpactStrategy.d.ts.map +1 -0
  50. package/dist/strategies/PiercingCellStrategy.d.ts +5 -0
  51. package/dist/strategies/PiercingCellStrategy.d.ts.map +1 -0
  52. package/dist/strategies/ToxicSporeStrategy.d.ts +5 -0
  53. package/dist/strategies/ToxicSporeStrategy.d.ts.map +1 -0
  54. package/dist/styles.css +1 -0
  55. package/dist/theme/ThemeManager.d.ts +27 -0
  56. package/dist/theme/ThemeManager.d.ts.map +1 -0
  57. package/dist/types/game.d.ts +72 -0
  58. package/dist/types/game.d.ts.map +1 -0
  59. package/dist/ui/HUDOverlay.d.ts +15 -0
  60. package/dist/ui/HUDOverlay.d.ts.map +1 -0
  61. package/dist/ui/OnboardingTutorial.d.ts +14 -0
  62. package/dist/ui/OnboardingTutorial.d.ts.map +1 -0
  63. package/dist/ui/ProgressBar.d.ts +14 -0
  64. package/dist/ui/ProgressBar.d.ts.map +1 -0
  65. package/dist/ui/SettingsModal.d.ts +20 -0
  66. package/dist/ui/SettingsModal.d.ts.map +1 -0
  67. package/dist/ui/StartMenu.d.ts +11 -0
  68. package/dist/ui/StartMenu.d.ts.map +1 -0
  69. package/package.json +30 -0
@@ -0,0 +1,72 @@
1
+ export type EnemyType = "piercer" | "spore" | "cluster" | "parasite" | "micro";
2
+ export interface Vector2D {
3
+ x: number;
4
+ y: number;
5
+ }
6
+ export interface Particle {
7
+ id: string;
8
+ position: Vector2D;
9
+ velocity: Vector2D;
10
+ color: string;
11
+ radius: number;
12
+ alpha: number;
13
+ lifetime: number;
14
+ maxLifetime: number;
15
+ }
16
+ export interface Shockwave {
17
+ id: string;
18
+ position: Vector2D;
19
+ radius: number;
20
+ maxRadius: number;
21
+ color: string;
22
+ alpha: number;
23
+ lifetime: number;
24
+ maxLifetime: number;
25
+ }
26
+ export interface ToxicPool {
27
+ id: string;
28
+ position: Vector2D;
29
+ radius: number;
30
+ duration: number;
31
+ maxDuration: number;
32
+ damage: number;
33
+ }
34
+ export interface GravityVortex {
35
+ id: string;
36
+ position: Vector2D;
37
+ radius: number;
38
+ duration: number;
39
+ maxDuration: number;
40
+ pullForce: number;
41
+ }
42
+ export interface FloatingText {
43
+ id: string;
44
+ text: string;
45
+ position: Vector2D;
46
+ velocity: Vector2D;
47
+ color: string;
48
+ alpha: number;
49
+ lifetime: number;
50
+ maxLifetime: number;
51
+ size: number;
52
+ }
53
+ export interface GameEventMap {
54
+ onGameOver: {
55
+ score: number;
56
+ wave: number;
57
+ };
58
+ onCoreDamaged: {
59
+ currentIntegrity: number;
60
+ };
61
+ onComboUpdated: {
62
+ combo: number;
63
+ };
64
+ onVorticeTriggered: {
65
+ position: Vector2D;
66
+ count: number;
67
+ };
68
+ onPoolCreated: {
69
+ position: Vector2D;
70
+ };
71
+ }
72
+ //# sourceMappingURL=game.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"game.d.ts","sourceRoot":"","sources":["../../src/types/game.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,QAAQ;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,aAAa,EAAE;QAAE,gBAAgB,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,kBAAkB,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1D,aAAa,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;CACzC"}
@@ -0,0 +1,15 @@
1
+ import { I18nService } from "../i18n/I18nService";
2
+ export declare class HUDOverlay {
3
+ private container;
4
+ private i18n;
5
+ waveLabelElement: HTMLElement;
6
+ progressSlot: HTMLElement;
7
+ private comboElement;
8
+ private settingsButton;
9
+ constructor(parent: HTMLElement, i18n: I18nService, onOpenSettings: () => void);
10
+ renderLabels(): void;
11
+ update(level: number, combo: number): void;
12
+ show(): void;
13
+ hide(): void;
14
+ }
15
+ //# sourceMappingURL=HUDOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HUDOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/HUDOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,UAAU;IACnB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAc;IACnB,gBAAgB,EAAE,WAAW,CAAC;IAC9B,YAAY,EAAE,WAAW,CAAC;IACjC,OAAO,CAAC,YAAY,CAAc;IAClC,OAAO,CAAC,cAAc,CAAoB;gBAE9B,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,IAAI;IAkCvE,YAAY,IAAI,IAAI;IAsBpB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAe1C,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;CAGtB"}
@@ -0,0 +1,14 @@
1
+ import { I18nService } from "../i18n/I18nService";
2
+ export declare class OnboardingTutorial {
3
+ private container;
4
+ private i18n;
5
+ private hasCompleted;
6
+ private isStep1Done;
7
+ constructor(parent: HTMLElement, i18n: I18nService);
8
+ isCompleted(): boolean;
9
+ showStep1(): void;
10
+ showStep2(): void;
11
+ complete(): void;
12
+ reset(): void;
13
+ }
14
+ //# sourceMappingURL=OnboardingTutorial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OnboardingTutorial.d.ts","sourceRoot":"","sources":["../../src/ui/OnboardingTutorial.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIlD,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,WAAW,CAAkB;gBAEzB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW;IAc3C,WAAW,IAAI,OAAO;IAItB,SAAS,IAAI,IAAI;IAUjB,SAAS,IAAI,IAAI;IAWjB,QAAQ,IAAI,IAAI;IAQhB,KAAK,IAAI,IAAI;CAKvB"}
@@ -0,0 +1,14 @@
1
+ export declare class ProgressBar {
2
+ private fillElement;
3
+ private killsCount;
4
+ private currentLevel;
5
+ private onLevelUpCallback;
6
+ constructor(parent: HTMLElement, onLevelUpCallback?: ((level: number) => void) | undefined);
7
+ private getKillsRequiredForLevel;
8
+ addKill(): void;
9
+ getLevel(): number;
10
+ reset(): void;
11
+ show(): void;
12
+ hide(): void;
13
+ }
14
+ //# sourceMappingURL=ProgressBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressBar.d.ts","sourceRoot":"","sources":["../../src/ui/ProgressBar.ts"],"names":[],"mappings":"AAAA,qBAAa,WAAW;IACpB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,YAAY,CAAa;IACjC,OAAO,CAAC,iBAAiB,CAAwC;gBAErD,MAAM,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS;IAa1F,OAAO,CAAC,wBAAwB;IAIzB,OAAO,IAAI,IAAI;IAgBf,QAAQ,IAAI,MAAM;IAIlB,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;CAKtB"}
@@ -0,0 +1,20 @@
1
+ import { I18nService } from "../i18n/I18nService";
2
+ import { ThemeManager } from "../theme/ThemeManager";
3
+ import type { GamePlatform } from "../platform/platform";
4
+ import { type Language } from "../i18n/locales";
5
+ export declare class SettingsModal {
6
+ private modal;
7
+ private card;
8
+ private i18n;
9
+ private themeManager;
10
+ private platform;
11
+ private onLanguageChangedCallback?;
12
+ private onCloseCallback?;
13
+ private hapticsEnabled;
14
+ constructor(parent: HTMLElement, i18n: I18nService, themeManager: ThemeManager, platform: GamePlatform, onLanguageChangedCallback?: ((lang: Language) => void) | undefined, onCloseCallback?: (() => void) | undefined);
15
+ renderContent(): void;
16
+ isHapticsEnabled(): boolean;
17
+ show(): void;
18
+ hide(): void;
19
+ }
20
+ //# sourceMappingURL=SettingsModal.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,11 @@
1
+ import { I18nService } from "../i18n/I18nService";
2
+ export declare class StartMenu {
3
+ private container;
4
+ private i18n;
5
+ private onStartCallback;
6
+ constructor(parent: HTMLElement, i18n: I18nService, onStartCallback: () => void);
7
+ renderContent(): void;
8
+ show(): void;
9
+ hide(): void;
10
+ }
11
+ //# sourceMappingURL=StartMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StartMenu.d.ts","sourceRoot":"","sources":["../../src/ui/StartMenu.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,qBAAa,SAAS;IAClB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,eAAe,CAAa;gBAExB,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,IAAI;IAUxE,aAAa,IAAI,IAAI;IAiBrB,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;CAGtB"}
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@gamebob/axon-surge",
3
+ "version": "0.5.0",
4
+ "type": "module",
5
+ "main": "./dist/axon-surge.js",
6
+ "module": "./dist/axon-surge.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/axon-surge.js"
12
+ },
13
+ "./dist/styles.css": "./dist/styles.css",
14
+ "./styles.css": "./dist/styles.css"
15
+ },
16
+ "files": [
17
+ "dist"
18
+ ],
19
+ "scripts": {
20
+ "dev": "vite",
21
+ "build": "vite build && tsc -p tsconfig.build.json --emitDeclarationOnly",
22
+ "check": "tsc --noEmit",
23
+ "test": "vitest run"
24
+ },
25
+ "devDependencies": {
26
+ "typescript": "^5.0.0",
27
+ "vite": "^6.0.0",
28
+ "vitest": "^4.0.0"
29
+ }
30
+ }