@gamebob/axon-surge 0.32.0 → 0.34.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 (116) hide show
  1. package/dist/axon-surge.js +12728 -12201
  2. package/dist/bosses/BossEncounter.d.ts +35 -2
  3. package/dist/bosses/BossEncounter.d.ts.map +1 -1
  4. package/dist/bosses/BossEncounterFactory.d.ts +9 -0
  5. package/dist/bosses/BossEncounterFactory.d.ts.map +1 -0
  6. package/dist/bosses/BossEncounterRuntime.d.ts +5 -3
  7. package/dist/bosses/BossEncounterRuntime.d.ts.map +1 -1
  8. package/dist/bosses/BossEncounterView.d.ts +2 -2
  9. package/dist/bosses/BossEncounterView.d.ts.map +1 -1
  10. package/dist/codex/BossCodex.d.ts +1 -2
  11. package/dist/codex/BossCodex.d.ts.map +1 -1
  12. package/dist/codex/Codex.d.ts +1 -1
  13. package/dist/codex/Codex.d.ts.map +1 -1
  14. package/dist/codex/CodexStorage.d.ts +0 -1
  15. package/dist/codex/CodexStorage.d.ts.map +1 -1
  16. package/dist/codex/DefaultCodex.d.ts.map +1 -1
  17. package/dist/core/GameEngineCodexInitialization.d.ts +3 -0
  18. package/dist/core/GameEngineCodexInitialization.d.ts.map +1 -0
  19. package/dist/core/GameEngineInitialization.d.ts.map +1 -1
  20. package/dist/core/GameEngineState.d.ts +24 -23
  21. package/dist/core/GameEngineState.d.ts.map +1 -1
  22. package/dist/director/InteractiveTutorial.d.ts +19 -2
  23. package/dist/director/InteractiveTutorial.d.ts.map +1 -1
  24. package/dist/director/SpawnerPatterns.d.ts +2 -2
  25. package/dist/director/SpawnerPatterns.d.ts.map +1 -1
  26. package/dist/director/TutorialMechanicsFactory.d.ts +9 -0
  27. package/dist/director/TutorialMechanicsFactory.d.ts.map +1 -0
  28. package/dist/director/TutorialPreferences.d.ts +12 -0
  29. package/dist/director/TutorialPreferences.d.ts.map +1 -0
  30. package/dist/director/TutorialSetup.d.ts +2 -2
  31. package/dist/director/TutorialSetup.d.ts.map +1 -1
  32. package/dist/director/TutorialUpdateMechanics.d.ts +2 -2
  33. package/dist/director/TutorialUpdateMechanics.d.ts.map +1 -1
  34. package/dist/director/WaveDirector.d.ts +5 -14
  35. package/dist/director/WaveDirector.d.ts.map +1 -1
  36. package/dist/director/WaveSpawnResolver.d.ts +30 -0
  37. package/dist/director/WaveSpawnResolver.d.ts.map +1 -0
  38. package/dist/entities/CoreAppearanceController.d.ts +13 -0
  39. package/dist/entities/CoreAppearanceController.d.ts.map +1 -0
  40. package/dist/entities/CoreEntity.d.ts +16 -25
  41. package/dist/entities/CoreEntity.d.ts.map +1 -1
  42. package/dist/entities/CoreIntegrityController.d.ts +15 -0
  43. package/dist/entities/CoreIntegrityController.d.ts.map +1 -0
  44. package/dist/entities/CoreMechanicController.d.ts +33 -0
  45. package/dist/entities/CoreMechanicController.d.ts.map +1 -0
  46. package/dist/entities/ExperienceOrb.d.ts +1 -6
  47. package/dist/entities/ExperienceOrb.d.ts.map +1 -1
  48. package/dist/entities/ExperienceOrbAppearance.d.ts +7 -0
  49. package/dist/entities/ExperienceOrbAppearance.d.ts.map +1 -0
  50. package/dist/entities/ExperienceOrbLifecycle.d.ts +14 -0
  51. package/dist/entities/ExperienceOrbLifecycle.d.ts.map +1 -0
  52. package/dist/i18n/locales.d.ts +19 -0
  53. package/dist/i18n/locales.d.ts.map +1 -1
  54. package/dist/input/InputEventBinder.d.ts +7 -1
  55. package/dist/input/InputEventBinder.d.ts.map +1 -1
  56. package/dist/input/InputManager.d.ts +11 -13
  57. package/dist/input/InputManager.d.ts.map +1 -1
  58. package/dist/input/PointerTracker.d.ts +20 -0
  59. package/dist/input/PointerTracker.d.ts.map +1 -0
  60. package/dist/objectives/ObjectivePersistence.d.ts +0 -1
  61. package/dist/objectives/ObjectivePersistence.d.ts.map +1 -1
  62. package/dist/objectives/ObjectiveSystem.d.ts +1 -1
  63. package/dist/objectives/ObjectiveSystem.d.ts.map +1 -1
  64. package/dist/objectives/ObjectiveSystemState.d.ts +1 -1
  65. package/dist/objectives/ObjectiveSystemState.d.ts.map +1 -1
  66. package/dist/pool/EnemyPool.d.ts +5 -1
  67. package/dist/pool/EnemyPool.d.ts.map +1 -1
  68. package/dist/powerups/DefaultPowerUps.d.ts +2 -3
  69. package/dist/powerups/DefaultPowerUps.d.ts.map +1 -1
  70. package/dist/powerups/DefaultPowerUpsDefense.d.ts +3 -0
  71. package/dist/powerups/DefaultPowerUpsDefense.d.ts.map +1 -0
  72. package/dist/powerups/DefaultPowerUpsDuration.d.ts +3 -0
  73. package/dist/powerups/DefaultPowerUpsDuration.d.ts.map +1 -0
  74. package/dist/powerups/DefaultPowerUpsMagnet.d.ts +3 -0
  75. package/dist/powerups/DefaultPowerUpsMagnet.d.ts.map +1 -0
  76. package/dist/powerups/DefaultPowerUpsPower.d.ts +3 -0
  77. package/dist/powerups/DefaultPowerUpsPower.d.ts.map +1 -0
  78. package/dist/powerups/PowerUpRegistry.d.ts +4 -4
  79. package/dist/powerups/PowerUpRegistry.d.ts.map +1 -1
  80. package/dist/powerups/PowerUpTypes.d.ts +9 -2
  81. package/dist/powerups/PowerUpTypes.d.ts.map +1 -1
  82. package/dist/progression/CoreRoster.d.ts +3 -2
  83. package/dist/progression/CoreRoster.d.ts.map +1 -1
  84. package/dist/progression/CoreRosterStorage.d.ts +3 -4
  85. package/dist/progression/CoreRosterStorage.d.ts.map +1 -1
  86. package/dist/progression/GeneticMemory.d.ts +3 -14
  87. package/dist/progression/GeneticMemory.d.ts.map +1 -1
  88. package/dist/progression/GeneticMemoryPersistence.d.ts +16 -0
  89. package/dist/progression/GeneticMemoryPersistence.d.ts.map +1 -0
  90. package/dist/progression/StoragePort.d.ts +6 -0
  91. package/dist/progression/StoragePort.d.ts.map +1 -0
  92. package/dist/render/SmasherGeometry.d.ts +14 -0
  93. package/dist/render/SmasherGeometry.d.ts.map +1 -0
  94. package/dist/render/SmasherRenderer.d.ts +1 -3
  95. package/dist/render/SmasherRenderer.d.ts.map +1 -1
  96. package/dist/ui/CodexCanvasFactories.d.ts +9 -0
  97. package/dist/ui/CodexCanvasFactories.d.ts.map +1 -0
  98. package/dist/ui/CodexOverlay.d.ts +7 -0
  99. package/dist/ui/CodexOverlay.d.ts.map +1 -1
  100. package/dist/ui/CoreRosterOverlay.d.ts +3 -0
  101. package/dist/ui/CoreRosterOverlay.d.ts.map +1 -1
  102. package/dist/ui/SettingsModal.d.ts +17 -21
  103. package/dist/ui/SettingsModal.d.ts.map +1 -1
  104. package/dist/ui/SettingsModalView.d.ts +37 -0
  105. package/dist/ui/SettingsModalView.d.ts.map +1 -0
  106. package/dist/ui/SettingsPreferences.d.ts +21 -0
  107. package/dist/ui/SettingsPreferences.d.ts.map +1 -0
  108. package/dist/ui/UiEnvironment.d.ts +6 -0
  109. package/dist/ui/UiEnvironment.d.ts.map +1 -0
  110. package/package.json +1 -1
  111. package/dist/powerups/DefaultPowerUpsPartOneA.d.ts +0 -4
  112. package/dist/powerups/DefaultPowerUpsPartOneA.d.ts.map +0 -1
  113. package/dist/powerups/DefaultPowerUpsPartOneB.d.ts +0 -4
  114. package/dist/powerups/DefaultPowerUpsPartOneB.d.ts.map +0 -1
  115. package/dist/powerups/DefaultPowerUpsPartTwo.d.ts +0 -4
  116. package/dist/powerups/DefaultPowerUpsPartTwo.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CoreRosterStorage.d.ts","sourceRoot":"","sources":["../../src/progression/CoreRosterStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,EAAE,iBAAiB,EAAE,MAAM,GAAG,kBAAkB,CAiBtH;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAK1G;AAED,wBAAgB,iBAAiB,IAAI,oBAAoB,GAAG,IAAI,CAM/D;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D"}
1
+ {"version":3,"file":"CoreRosterStorage.d.ts","sourceRoot":"","sources":["../../src/progression/CoreRosterStorage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAe,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,eAAO,MAAM,uBAAuB,2BAA2B,CAAC;AAChE,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,iBAAiB,EAAE,MAAM,GAAG,kBAAkB,CAiB7G;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAKjG;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE3D"}
@@ -1,19 +1,16 @@
1
1
  import type { GeneticMemoryNodeDefinition, GeneticPassiveEffectId, GeneticNodeState, UnlockState } from "./ProgressionTypes";
2
+ import type { GeneticMemoryPersistence } from "./GeneticMemoryPersistence";
2
3
  export interface GeneticMemoryNodeSnapshot extends GeneticMemoryNodeDefinition {
3
4
  readonly state: GeneticNodeState;
4
5
  }
5
- export interface GeneticMemoryStorage {
6
- getItem(key: string): string | null;
7
- setItem(key: string, value: string): void;
8
- }
9
6
  export declare class GeneticMemory implements UnlockState {
10
7
  private readonly definitions;
11
- private readonly storage;
8
+ private readonly persistence;
12
9
  private readonly listeners;
13
10
  private ecosoma;
14
11
  private unlockedIds;
15
12
  private lastAcquiredNodeId;
16
- constructor(definitions: readonly GeneticMemoryNodeDefinition[], storage?: GeneticMemoryStorage | null);
13
+ constructor(definitions: readonly GeneticMemoryNodeDefinition[], persistence: GeneticMemoryPersistence);
17
14
  getBalance(): number;
18
15
  collectEcosoma(amount?: number): void;
19
16
  spendEcosoma(amount: number): boolean;
@@ -28,17 +25,9 @@ export declare class GeneticMemory implements UnlockState {
28
25
  subscribe(listener: () => void): () => void;
29
26
  private requireNode;
30
27
  private load;
31
- private readStoredData;
32
28
  private static createDefinitions;
33
29
  private static validatePrerequisites;
34
- private static emptySave;
35
- private static parseStoredData;
36
- private static readVersion;
37
- private static readEcosoma;
38
- private static readUnlockedIds;
39
- private static readLastAcquiredNodeId;
40
30
  private persist;
41
31
  private notify;
42
- private static getBrowserStorage;
43
32
  }
44
33
  //# sourceMappingURL=GeneticMemory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GeneticMemory.d.ts","sourceRoot":"","sources":["../../src/progression/GeneticMemory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,gBAAgB,EAAuB,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAElJ,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;IAC1E,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,oBAAoB;IACjC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAKD,qBAAa,aAAc,YAAW,WAAW;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8B;IACtD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,kBAAkB,CAAuB;gBAE9B,WAAW,EAAE,SAAS,2BAA2B,EAAE,EAAE,OAAO,GAAE,oBAAoB,GAAG,IAAwC;IAOzI,UAAU,IAAI,MAAM;IAIpB,cAAc,CAAC,MAAM,GAAE,MAAU,GAAG,IAAI;IASxC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUrC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQtC,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAQ3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAI5D,yBAAyB,IAAI,sBAAsB,EAAE;IAIrD,QAAQ,IAAI,yBAAyB,EAAE;IAOvC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB;IAS1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa7B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKlD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAchC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,MAAM,CAAC,eAAe;IAa9B,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,WAAW;IAK1B,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAIrC,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAOnC"}
1
+ {"version":3,"file":"GeneticMemory.d.ts","sourceRoot":"","sources":["../../src/progression/GeneticMemory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,MAAM,WAAW,yBAA0B,SAAQ,2BAA2B;IAC1E,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CACpC;AAED,qBAAa,aAAc,YAAW,WAAW;IAC7C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2C;IACvE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA2B;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,kBAAkB,CAAuB;gBAE9B,WAAW,EAAE,SAAS,2BAA2B,EAAE,EAAE,WAAW,EAAE,wBAAwB;IAOtG,UAAU,IAAI,MAAM;IAIpB,cAAc,CAAC,MAAM,GAAE,MAAU,GAAG,IAAI;IASxC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAUrC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIrC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQtC,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAQ3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAI5D,yBAAyB,IAAI,sBAAsB,EAAE;IAIrD,QAAQ,IAAI,yBAAyB,EAAE;IAOvC,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB;IAS1C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAa7B,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKlD,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,IAAI;IAiBZ,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAchC,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAUpC,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,MAAM;CAGjB"}
@@ -0,0 +1,16 @@
1
+ import type { ProgressionSaveData } from "./ProgressionTypes";
2
+ import type { StoragePort } from "./StoragePort";
3
+ export declare class GeneticMemoryPersistence {
4
+ private readonly storage;
5
+ constructor(storage: StoragePort | null);
6
+ load(): ProgressionSaveData;
7
+ save(data: ProgressionSaveData): void;
8
+ isCurrentVersion(data: ProgressionSaveData): boolean;
9
+ private static emptySave;
10
+ private static parse;
11
+ private static readVersion;
12
+ private static readEcosoma;
13
+ private static readUnlockedIds;
14
+ private static readLastAcquiredNodeId;
15
+ }
16
+ //# sourceMappingURL=GeneticMemoryPersistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GeneticMemoryPersistence.d.ts","sourceRoot":"","sources":["../../src/progression/GeneticMemoryPersistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAKjD,qBAAa,wBAAwB;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,WAAW,GAAG,IAAI;IAExD,IAAI,IAAI,mBAAmB;IAW3B,IAAI,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAOrC,gBAAgB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO;IAI3D,OAAO,CAAC,MAAM,CAAC,SAAS;IAIxB,OAAO,CAAC,MAAM,CAAC,KAAK;IAapB,OAAO,CAAC,MAAM,CAAC,WAAW;IAI1B,OAAO,CAAC,MAAM,CAAC,WAAW;IAK1B,OAAO,CAAC,MAAM,CAAC,eAAe;IAK9B,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAGxC"}
@@ -0,0 +1,6 @@
1
+ export interface StoragePort {
2
+ getItem(key: string): string | null;
3
+ setItem(key: string, value: string): void;
4
+ }
5
+ export declare function getBrowserStorage(): StoragePort | null;
6
+ //# sourceMappingURL=StoragePort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StoragePort.d.ts","sourceRoot":"","sources":["../../src/progression/StoragePort.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAgB,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAMtD"}
@@ -0,0 +1,14 @@
1
+ import type { Vector2D } from "../types/game";
2
+ export interface SmasherArmGeometry {
3
+ directionX: number;
4
+ directionY: number;
5
+ lateralX: number;
6
+ lateralY: number;
7
+ distance: number;
8
+ }
9
+ export declare class SmasherGeometry {
10
+ traceCorePath(ctx: CanvasRenderingContext2D, radius: number, phase: number, seed: number): void;
11
+ traceArmPath(ctx: CanvasRenderingContext2D, start: Vector2D, end: Vector2D, geometry: SmasherArmGeometry): void;
12
+ traceFistPath(ctx: CanvasRenderingContext2D, radius: number, phase: number): void;
13
+ }
14
+ //# sourceMappingURL=SmasherGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SmasherGeometry.d.ts","sourceRoot":"","sources":["../../src/render/SmasherGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IACjB,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAe/F,YAAY,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAc/G,aAAa,CAAC,GAAG,EAAE,wBAAwB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CA0B3F"}
@@ -9,14 +9,12 @@ interface ArmRenderOptions {
9
9
  palette: ThemePalette;
10
10
  }
11
11
  export declare class SmasherRenderer {
12
+ private readonly geometry;
12
13
  drawCore(ctx: CanvasRenderingContext2D, core: CoreEntity): void;
13
14
  drawArm(options: ArmRenderOptions): void;
14
15
  private getArmGeometry;
15
16
  private drawOuterArm;
16
17
  private drawInnerArm;
17
- private traceArmPath;
18
- private traceSmasherCorePath;
19
- private traceFistPath;
20
18
  private drawFist;
21
19
  private drawFistGlow;
22
20
  private drawFistDetails;
@@ -1 +1 @@
1
- {"version":3,"file":"SmasherRenderer.d.ts","sourceRoot":"","sources":["../../src/render/SmasherRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU,gBAAgB;IACtB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACzB;AAwBD,qBAAa,eAAe;IACjB,QAAQ,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAW/D,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAiB/C,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;CA0B1B"}
1
+ {"version":3,"file":"SmasherRenderer.d.ts","sourceRoot":"","sources":["../../src/render/SmasherRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,UAAU,gBAAgB;IACtB,GAAG,EAAE,wBAAwB,CAAC;IAC9B,IAAI,EAAE,UAAU,CAAC;IACjB,GAAG,EAAE,QAAQ,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,YAAY,CAAC;CACzB;AAmBD,qBAAa,eAAe;IACxB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAE3C,QAAQ,CAAC,GAAG,EAAE,wBAAwB,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAW/D,OAAO,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAiB/C,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,QAAQ;IA4BhB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,eAAe;CA0B1B"}
@@ -0,0 +1,9 @@
1
+ import type { CodexSpecimenCanvas } from "./CodexSpecimenCanvas";
2
+ import type { CodexVariantCanvas } from "./CodexVariantCanvas";
3
+ import type { BossCodexCanvas } from "./BossCodexCanvas";
4
+ export interface CodexCanvasFactories {
5
+ createSpecimen(canvas: HTMLCanvasElement): CodexSpecimenCanvas;
6
+ createVariant(canvas: HTMLCanvasElement, variantId: string, silhouette: boolean): CodexVariantCanvas;
7
+ createBoss(canvas: HTMLCanvasElement): BossCodexCanvas;
8
+ }
9
+ //# sourceMappingURL=CodexCanvasFactories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodexCanvasFactories.d.ts","sourceRoot":"","sources":["../../src/ui/CodexCanvasFactories.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACjC,cAAc,CAAC,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,CAAC;IAC/D,aAAa,CAAC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,kBAAkB,CAAC;IACrG,UAAU,CAAC,MAAM,EAAE,iBAAiB,GAAG,eAAe,CAAC;CAC1D"}
@@ -5,6 +5,8 @@ import type { BossCodex } from "../codex/BossCodex";
5
5
  import type { ThemeManager } from "../theme/ThemeManager";
6
6
  import type { GameConfigManager } from "../config/GameConfig";
7
7
  import type { ContentRegistry } from "../content/ContentRegistry";
8
+ import type { UiEnvironment } from "./UiEnvironment";
9
+ import type { CodexCanvasFactories } from "./CodexCanvasFactories";
8
10
  export declare class CodexOverlay {
9
11
  readonly container: HTMLElement;
10
12
  readonly i18n: I18nService;
@@ -14,6 +16,8 @@ export declare class CodexOverlay {
14
16
  readonly configManager: GameConfigManager;
15
17
  readonly themeManager: ThemeManager;
16
18
  private readonly onClose;
19
+ private readonly environment;
20
+ private readonly canvasFactories;
17
21
  private readonly unsubscribe;
18
22
  private readonly unsubscribeBossCodex;
19
23
  selectedSection: "enemies" | "bosses";
@@ -32,8 +36,11 @@ export declare class CodexOverlay {
32
36
  content: ContentRegistry;
33
37
  configManager: GameConfigManager;
34
38
  themeManager: ThemeManager;
39
+ environment: UiEnvironment;
40
+ canvasFactories: CodexCanvasFactories;
35
41
  onClose: () => void;
36
42
  });
43
+ private mount;
37
44
  render(): void;
38
45
  private getOpenAccordionId;
39
46
  private prepareSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"CodexOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/CodexOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAOlE,qBAAa,YAAY;IACrB,SAAgB,SAAS,EAAE,WAAW,CAAC;IACvC,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,aAAa,EAAE,iBAAiB,CAAC;IACjD,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAC3C,eAAe,EAAE,SAAS,GAAG,QAAQ,CAAa;IAClD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4B;IAC7D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;gBAEiB,OAAO,EAAE;QACxB,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,eAAe,CAAC;QACzB,aAAa,EAAE,iBAAiB,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;QAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;KACvB;IAmBM,MAAM,IAAI,IAAI;IAarB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,0BAA0B;IAgB3B,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAWZ,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAUf,uBAAuB,IAAI,IAAI;IAK/B,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IAIzD,iBAAiB,IAAI,MAAM;CAGrC"}
1
+ {"version":3,"file":"CodexOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/CodexOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAMlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,qBAAa,YAAY;IACrB,SAAgB,SAAS,EAAE,WAAW,CAAC;IACvC,SAAgB,IAAI,EAAE,WAAW,CAAC;IAClC,SAAgB,KAAK,EAAE,KAAK,CAAC;IAC7B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,OAAO,EAAE,eAAe,CAAC;IACzC,SAAgB,aAAa,EAAE,iBAAiB,CAAC;IACjD,SAAgB,YAAY,EAAE,YAAY,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAuB;IACvD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAa;IAC3C,eAAe,EAAE,SAAS,GAAG,QAAQ,CAAa;IAClD,eAAe,EAAE,MAAM,GAAG,IAAI,CAAQ;IACtC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC5C,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,YAAY,CAAgC;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4B;IAC7D,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;gBAEiB,OAAO,EAAE;QACxB,MAAM,EAAE,WAAW,CAAC;QACpB,IAAI,EAAE,WAAW,CAAC;QAClB,KAAK,EAAE,KAAK,CAAC;QACb,SAAS,EAAE,SAAS,CAAC;QACrB,OAAO,EAAE,eAAe,CAAC;QACzB,aAAa,EAAE,iBAAiB,CAAC;QACjC,YAAY,EAAE,YAAY,CAAC;QAC3B,WAAW,EAAE,aAAa,CAAC;QAC3B,eAAe,EAAE,oBAAoB,CAAC;QACtC,OAAO,EAAE,MAAM,IAAI,CAAC;KACvB;IAmBD,OAAO,CAAC,KAAK;IAMN,MAAM,IAAI,IAAI;IAarB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,0BAA0B;IAgB3B,IAAI,IAAI,IAAI;IAQZ,IAAI,IAAI,IAAI;IAWZ,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAUf,uBAAuB,IAAI,IAAI;IAK/B,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM;IAIzD,iBAAiB,IAAI,MAAM;CAGrC"}
@@ -2,6 +2,7 @@ import type { I18nService } from "../i18n/I18nService";
2
2
  import type { GeneticMemory } from "../progression/GeneticMemory";
3
3
  import type { CoreMechanic } from "../progression/CoreProgressionTypes";
4
4
  import type { CoreRoster } from "../progression/CoreRoster";
5
+ import type { UiEnvironment } from "./UiEnvironment";
5
6
  export type CorePreviewRenderer = (options: {
6
7
  canvas: HTMLCanvasElement;
7
8
  timeSeconds: number;
@@ -16,6 +17,7 @@ export type CoreRosterOverlayOptions = {
16
17
  geneticMemory: GeneticMemory;
17
18
  onClose: () => void;
18
19
  renderCorePreview: CorePreviewRenderer;
20
+ environment: UiEnvironment;
19
21
  };
20
22
  export declare class CoreRosterOverlay {
21
23
  private readonly container;
@@ -24,6 +26,7 @@ export declare class CoreRosterOverlay {
24
26
  private readonly geneticMemory;
25
27
  private readonly onClose;
26
28
  private readonly renderCorePreview;
29
+ private readonly environment;
27
30
  private readonly renderer;
28
31
  private readonly unsubscribe;
29
32
  private isOpen;
@@ -1 +1 @@
1
- {"version":3,"file":"CoreRosterOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/CoreRosterOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAK5D,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,KAAK,IAAI,CAAC;AAEjL,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAEF,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;gBAEiB,OAAO,EAAE,wBAAwB;IAoB7C,MAAM,IAAI,IAAI;IAUrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,gBAAgB;IAsBjB,IAAI,IAAI,IAAI;IAOZ,IAAI,IAAI,IAAI;IAMZ,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,WAAW;CAKtB"}
1
+ {"version":3,"file":"CoreRosterOverlay.d.ts","sourceRoot":"","sources":["../../src/ui/CoreRosterOverlay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAI5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE;IAAE,MAAM,EAAE,iBAAiB,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,YAAY,CAAA;CAAE,KAAK,IAAI,CAAC;AAEjL,MAAM,MAAM,wBAAwB,GAAG;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iBAAiB,EAAE,mBAAmB,CAAC;IACvC,WAAW,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAsB;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAK5B;gBAEiB,OAAO,EAAE,wBAAwB;IAqB7C,MAAM,IAAI,IAAI;IAUrB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,gBAAgB;IAsBjB,IAAI,IAAI,IAAI;IAOZ,IAAI,IAAI,IAAI;IAMZ,cAAc,IAAI,IAAI;IAKtB,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,WAAW;CAKtB"}
@@ -3,44 +3,40 @@ import type { ThemeManager } from "../theme/ThemeManager";
3
3
  import type { GamePlatform } from "../platform/platform";
4
4
  import { type Language } from "../i18n/locales";
5
5
  import type { FpsLimit } from "../core/GameLoop";
6
+ import type { SettingsPreferences } from "./SettingsPreferences";
7
+ import type { UiEnvironment } from "./UiEnvironment";
6
8
  export type SettingsModalOptions = {
7
9
  parent: HTMLElement;
8
10
  i18n: I18nService;
9
11
  themeManager: ThemeManager;
10
12
  platform: GamePlatform;
13
+ preferences: SettingsPreferences;
14
+ environment: UiEnvironment;
11
15
  onLanguageChanged?: (lang: Language) => void;
12
16
  onClose?: () => void;
13
17
  onFpsLimitChanged?: (limit: FpsLimit) => void;
14
18
  };
15
19
  export declare class SettingsModal {
16
- private modal;
17
- private card;
18
- private i18n;
19
- private themeManager;
20
- private platform;
21
- private onLanguageChangedCallback?;
22
- private onCloseCallback?;
20
+ private readonly modal;
21
+ private readonly card;
22
+ private readonly view;
23
+ private readonly i18n;
24
+ private readonly themeManager;
25
+ private readonly platform;
26
+ private readonly preferences;
27
+ private readonly onLanguageChangedCallback;
28
+ private readonly onCloseCallback;
29
+ private readonly onFpsLimitChangedCallback;
23
30
  private hapticsEnabled;
24
31
  private fpsLimit;
25
- private onFpsLimitChangedCallback?;
26
32
  constructor(options: SettingsModalOptions);
27
33
  renderContent(): void;
28
- private loadPreferences;
29
- private createTitle;
30
- private createLanguageRow;
31
- private createLanguageSelect;
32
- private changeLanguage;
33
- private createThemeRow;
34
- private createFpsRow;
35
- private createHapticsRow;
36
- private createTutorialRow;
37
- private createRow;
38
- private createToggle;
39
- private createCredits;
40
- private createCloseButton;
41
34
  isHapticsEnabled(): boolean;
42
35
  getFpsLimit(): FpsLimit;
43
36
  show(): void;
44
37
  hide(): void;
38
+ private loadPreferences;
39
+ private getViewState;
40
+ private changeLanguage;
45
41
  }
46
42
  //# sourceMappingURL=SettingsModal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsModal.d.ts","sourceRoot":"","sources":["../../src/ui/SettingsModal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAa,KAAK,QAAQ,EAAqB,MAAM,iBAAiB,CAAC;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAoBjD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,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;IACvC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,yBAAyB,CAAC,CAA0C;gBAEhE,OAAO,EAAE,oBAAoB;IA2BlC,aAAa,IAAI,IAAI;IAK5B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,gBAAgB;IAqBxB,OAAO,CAAC,iBAAiB;IAoBzB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;IAWlB,gBAAgB,IAAI,OAAO;IAI3B,WAAW,IAAI,QAAQ;IAIvB,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,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,MAAM,MAAM,oBAAoB,GAAG;IAC/B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,mBAAmB,CAAC;IACjC,WAAW,EAAE,aAAa,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;CACjD,CAAC;AAEF,qBAAa,aAAa;IACtB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAoB;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoB;IACzC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAyC;IACnF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2B;IAC3D,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAA0C;IACpF,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAgB;gBAEb,OAAO,EAAE,oBAAoB;IAoBzC,aAAa,IAAI,IAAI;IA2BrB,gBAAgB,IAAI,OAAO;IAI3B,WAAW,IAAI,QAAQ;IAIvB,IAAI,IAAI,IAAI;IAKZ,IAAI,IAAI,IAAI;IAInB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;CAKzB"}
@@ -0,0 +1,37 @@
1
+ import type { I18nService } from "../i18n/I18nService";
2
+ import type { FpsLimit } from "../core/GameLoop";
3
+ import type { Language } from "../i18n/locales";
4
+ import type { Theme } from "../theme/ThemeManager";
5
+ export interface SettingsViewState {
6
+ readonly language: Language;
7
+ readonly theme: Theme;
8
+ readonly fpsLimit: FpsLimit;
9
+ readonly hapticsEnabled: boolean;
10
+ readonly tutorialEnabled: boolean;
11
+ }
12
+ export interface SettingsViewActions {
13
+ readonly onLanguageChanged: (language: Language) => void;
14
+ readonly onThemeChanged: (theme: Theme) => void;
15
+ readonly onFpsLimitChanged: (limit: FpsLimit) => void;
16
+ readonly onHapticsChanged: (enabled: boolean) => void;
17
+ readonly onTutorialChanged: (enabled: boolean) => void;
18
+ readonly onClose: () => void;
19
+ }
20
+ export declare class SettingsModalView {
21
+ private readonly document;
22
+ private readonly i18n;
23
+ constructor(document: Document, i18n: I18nService);
24
+ render(card: HTMLElement, state: SettingsViewState, actions: SettingsViewActions): void;
25
+ private createTitle;
26
+ private createLanguageRow;
27
+ private createThemeRow;
28
+ private createFpsRow;
29
+ private createHapticsRow;
30
+ private createTutorialRow;
31
+ private createBooleanRow;
32
+ private createRow;
33
+ private createToggle;
34
+ private createCredits;
35
+ private createCloseButton;
36
+ }
37
+ //# sourceMappingURL=SettingsModalView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsModalView.d.ts","sourceRoot":"","sources":["../../src/ui/SettingsModalView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,iBAAiB,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAoBnD,MAAM,WAAW,iBAAiB;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACrC;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAChD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtD,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,qBAAa,iBAAiB;IAEtB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADJ,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,WAAW;IAG/B,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAc9F,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,iBAAiB;IAsBzB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,iBAAiB;CAU5B"}
@@ -0,0 +1,21 @@
1
+ import type { FpsLimit } from "../core/GameLoop";
2
+ export interface SettingsPreferences {
3
+ getHapticsEnabled(): boolean;
4
+ setHapticsEnabled(enabled: boolean): void;
5
+ getFpsLimit(): FpsLimit;
6
+ setFpsLimit(limit: FpsLimit): void;
7
+ getTutorialEnabled(): boolean;
8
+ setTutorialEnabled(enabled: boolean): void;
9
+ }
10
+ export declare class BrowserSettingsPreferences implements SettingsPreferences {
11
+ private readonly storage;
12
+ constructor(storage?: Storage | null);
13
+ getHapticsEnabled(): boolean;
14
+ setHapticsEnabled(enabled: boolean): void;
15
+ getFpsLimit(): FpsLimit;
16
+ setFpsLimit(limit: FpsLimit): void;
17
+ getTutorialEnabled(): boolean;
18
+ setTutorialEnabled(enabled: boolean): void;
19
+ private static getStorage;
20
+ }
21
+ //# sourceMappingURL=SettingsPreferences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsPreferences.d.ts","sourceRoot":"","sources":["../../src/ui/SettingsPreferences.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,mBAAmB;IAChC,iBAAiB,IAAI,OAAO,CAAC;IAC7B,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IAC1C,WAAW,IAAI,QAAQ,CAAC;IACxB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IACnC,kBAAkB,IAAI,OAAO,CAAC;IAC9B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC9C;AAED,qBAAa,0BAA2B,YAAW,mBAAmB;IAClE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;gBAEtB,OAAO,GAAE,OAAO,GAAG,IAA8C;IAI7E,iBAAiB,IAAI,OAAO;IAI5B,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIzC,WAAW,IAAI,QAAQ;IAKvB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAIlC,kBAAkB,IAAI,OAAO;IAI7B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIjD,OAAO,CAAC,MAAM,CAAC,UAAU;CAO5B"}
@@ -0,0 +1,6 @@
1
+ export interface UiEnvironment {
2
+ readonly document: Document;
3
+ readonly window: Window;
4
+ }
5
+ export declare const browserUiEnvironment: UiEnvironment;
6
+ //# sourceMappingURL=UiEnvironment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UiEnvironment.d.ts","sourceRoot":"","sources":["../../src/ui/UiEnvironment.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,aAGlC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gamebob/axon-surge",
3
- "version": "0.32.0",
3
+ "version": "0.34.0",
4
4
  "type": "module",
5
5
  "main": "./dist/axon-surge.js",
6
6
  "module": "./dist/axon-surge.js",
@@ -1,4 +0,0 @@
1
- import type { PowerUpDefinition } from "./PowerUpTypes";
2
- import type { GameConfigManager } from "../config/GameConfig";
3
- export declare const createDefaultPowerUpsPartOne: (configManager: GameConfigManager) => PowerUpDefinition[];
4
- //# sourceMappingURL=DefaultPowerUpsPartOneA.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultPowerUpsPartOneA.d.ts","sourceRoot":"","sources":["../../src/powerups/DefaultPowerUpsPartOneA.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAwK9D,eAAO,MAAM,4BAA4B,GAAI,eAAe,iBAAiB,KAAG,iBAAiB,EAQhG,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { PowerUpDefinition } from "./PowerUpTypes";
2
- import type { GameConfigManager } from "../config/GameConfig";
3
- export declare const createDefaultPowerUpsPartOne: (configManager: GameConfigManager) => PowerUpDefinition[];
4
- //# sourceMappingURL=DefaultPowerUpsPartOneB.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultPowerUpsPartOneB.d.ts","sourceRoot":"","sources":["../../src/powerups/DefaultPowerUpsPartOneB.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAoK9D,eAAO,MAAM,4BAA4B,GAAI,eAAe,iBAAiB,KAAG,iBAAiB,EAQhG,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { PowerUpDefinition } from "./PowerUpTypes";
2
- import type { GameConfigManager } from "../config/GameConfig";
3
- export declare const createDefaultPowerUpsPartTwo: (configManager: GameConfigManager) => PowerUpDefinition[];
4
- //# sourceMappingURL=DefaultPowerUpsPartTwo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DefaultPowerUpsPartTwo.d.ts","sourceRoot":"","sources":["../../src/powerups/DefaultPowerUpsPartTwo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AA8D9D,eAAO,MAAM,4BAA4B,GAAI,eAAe,iBAAiB,KAAG,iBAAiB,EAAmG,CAAC"}