@gamebob/axon-surge 0.17.0 → 0.18.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 (75) hide show
  1. package/dist/axon-surge.js +1900 -1321
  2. package/dist/config/GameConfig.d.ts +27 -1
  3. package/dist/config/GameConfig.d.ts.map +1 -1
  4. package/dist/content/ContentRegistry.d.ts +25 -0
  5. package/dist/content/ContentRegistry.d.ts.map +1 -0
  6. package/dist/content/ContentTypes.d.ts +67 -0
  7. package/dist/content/ContentTypes.d.ts.map +1 -0
  8. package/dist/content/DefaultContentRegistry.d.ts +3 -0
  9. package/dist/content/DefaultContentRegistry.d.ts.map +1 -0
  10. package/dist/content/DefinitionRegistry.d.ts +22 -0
  11. package/dist/content/DefinitionRegistry.d.ts.map +1 -0
  12. package/dist/content/EnemyBehavior.d.ts +70 -0
  13. package/dist/content/EnemyBehavior.d.ts.map +1 -0
  14. package/dist/content/EnemyBehaviors.d.ts +4 -0
  15. package/dist/content/EnemyBehaviors.d.ts.map +1 -0
  16. package/dist/content/EnemyDefinitions.d.ts +4 -0
  17. package/dist/content/EnemyDefinitions.d.ts.map +1 -0
  18. package/dist/core/GameEngine.d.ts +5 -0
  19. package/dist/core/GameEngine.d.ts.map +1 -1
  20. package/dist/director/InteractiveTutorial.d.ts +6 -0
  21. package/dist/director/InteractiveTutorial.d.ts.map +1 -1
  22. package/dist/director/SpawnerPatterns.d.ts +10 -7
  23. package/dist/director/SpawnerPatterns.d.ts.map +1 -1
  24. package/dist/director/WaveDirector.d.ts +5 -1
  25. package/dist/director/WaveDirector.d.ts.map +1 -1
  26. package/dist/entities/CoreEntity.d.ts +3 -1
  27. package/dist/entities/CoreEntity.d.ts.map +1 -1
  28. package/dist/entities/EnemyEntity.d.ts +7 -0
  29. package/dist/entities/EnemyEntity.d.ts.map +1 -1
  30. package/dist/entities/ExperienceOrb.d.ts +26 -3
  31. package/dist/entities/ExperienceOrb.d.ts.map +1 -1
  32. package/dist/factory/EntityFactory.d.ts +5 -2
  33. package/dist/factory/EntityFactory.d.ts.map +1 -1
  34. package/dist/input/InputManager.d.ts +3 -1
  35. package/dist/input/InputManager.d.ts.map +1 -1
  36. package/dist/physics/EffectClusterer.d.ts +18 -0
  37. package/dist/physics/EffectClusterer.d.ts.map +1 -0
  38. package/dist/physics/PhysicsEngine.d.ts +5 -1
  39. package/dist/physics/PhysicsEngine.d.ts.map +1 -1
  40. package/dist/physics/handlers/ChainReactionHelper.d.ts +2 -2
  41. package/dist/physics/handlers/ChainReactionHelper.d.ts.map +1 -1
  42. package/dist/physics/handlers/CoreCollisionHandler.d.ts +3 -1
  43. package/dist/physics/handlers/CoreCollisionHandler.d.ts.map +1 -1
  44. package/dist/physics/handlers/ShieldCollisionHandler.d.ts +3 -1
  45. package/dist/physics/handlers/ShieldCollisionHandler.d.ts.map +1 -1
  46. package/dist/physics/handlers/ThrownCollisionHandler.d.ts +3 -1
  47. package/dist/physics/handlers/ThrownCollisionHandler.d.ts.map +1 -1
  48. package/dist/physics/handlers/ToxicPoolPhysicsHandler.d.ts +2 -1
  49. package/dist/physics/handlers/ToxicPoolPhysicsHandler.d.ts.map +1 -1
  50. package/dist/physics/handlers/VortexPhysicsHandler.d.ts +3 -2
  51. package/dist/physics/handlers/VortexPhysicsHandler.d.ts.map +1 -1
  52. package/dist/powerups/PowerUpRegistry.d.ts +10 -3
  53. package/dist/powerups/PowerUpRegistry.d.ts.map +1 -1
  54. package/dist/powerups/PowerUpTypes.d.ts +6 -1
  55. package/dist/powerups/PowerUpTypes.d.ts.map +1 -1
  56. package/dist/render/CanvasRenderer.d.ts +5 -2
  57. package/dist/render/CanvasRenderer.d.ts.map +1 -1
  58. package/dist/render/EnemyShapeRenderer.d.ts +5 -0
  59. package/dist/render/EnemyShapeRenderer.d.ts.map +1 -1
  60. package/dist/strategies/FragmentClusterStrategy.d.ts.map +1 -1
  61. package/dist/strategies/GravityParasiteStrategy.d.ts.map +1 -1
  62. package/dist/strategies/HeavyShieldStrategy.d.ts.map +1 -1
  63. package/dist/strategies/ImpactStrategy.d.ts +4 -0
  64. package/dist/strategies/ImpactStrategy.d.ts.map +1 -1
  65. package/dist/strategies/ToxicSporeStrategy.d.ts.map +1 -1
  66. package/dist/styles.css +1 -1
  67. package/dist/theme/GameColors.d.ts +4 -1
  68. package/dist/theme/GameColors.d.ts.map +1 -1
  69. package/dist/types/game.d.ts +5 -1
  70. package/dist/types/game.d.ts.map +1 -1
  71. package/dist/ui/HUDOverlay.d.ts +2 -6
  72. package/dist/ui/HUDOverlay.d.ts.map +1 -1
  73. package/dist/ui/ProgressBar.d.ts +8 -4
  74. package/dist/ui/ProgressBar.d.ts.map +1 -1
  75. package/package.json +1 -1
@@ -4,12 +4,16 @@ import { EnemyEntity } from "../entities/EnemyEntity";
4
4
  import { JuiceEffects } from "../render/JuiceEffects";
5
5
  import { EventBus } from "../core/EventBus";
6
6
  import { I18nService } from "../i18n/I18nService";
7
+ import { GameConfigManager } from "../config/GameConfig";
8
+ import type { EntityFactory } from "../factory/EntityFactory";
7
9
  export declare class PhysicsEngine {
10
+ private readonly factory;
11
+ private readonly configManager;
8
12
  private spatialHash;
9
13
  private eventBus;
10
14
  private i18n;
11
15
  private throwState;
12
- constructor(eventBus: EventBus, i18n: I18nService);
16
+ constructor(eventBus: EventBus, i18n: I18nService, factory: EntityFactory, configManager: GameConfigManager);
13
17
  update(dt: number, core: CoreEntity, enemies: EnemyEntity[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, combo: {
14
18
  value: number;
15
19
  }, score: {
@@ -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;AASlD,qBAAa,aAAa;IACtB,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAoE;gBAE1E,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;CAoJV"}
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;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAW9D,qBAAa,aAAa;IAM6B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAAiB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAL1H,OAAO,CAAC,WAAW,CAA2B;IAC9C,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,IAAI,CAAc;IAC1B,OAAO,CAAC,UAAU,CAAoE;gBAE1E,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAmB,OAAO,EAAE,aAAa,EAAmB,aAAa,EAAE,iBAAiB;IAMtI,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;CAwJV"}
@@ -1,6 +1,6 @@
1
1
  import type { EnemyEntity } from "../../entities/EnemyEntity";
2
- import type { ToxicPool, GravityVortex, Shockwave } from "../../types/game";
2
+ import type { EnemyEffectContext } from "../../content/EnemyBehavior";
3
3
  export declare class ChainReactionHelper {
4
- static killEnemy(enemy: EnemyEntity, angle: number, pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], allEnemies: EnemyEntity[]): void;
4
+ static killEnemy(enemy: EnemyEntity, angle: number, context: EnemyEffectContext): void;
5
5
  }
6
6
  //# sourceMappingURL=ChainReactionHelper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainReactionHelper.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ChainReactionHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAI5E,qBAAa,mBAAmB;WACd,SAAS,CACnB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,UAAU,EAAE,WAAW,EAAE,GAC1B,IAAI;CAuFV"}
1
+ {"version":3,"file":"ChainReactionHelper.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ChainReactionHelper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,qBAAa,mBAAmB;WACd,SAAS,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAqBhG"}
@@ -3,9 +3,11 @@ import type { EnemyEntity } from "../../entities/EnemyEntity";
3
3
  import type { Shockwave, Particle, FloatingText } from "../../types/game";
4
4
  import type { JuiceEffects } from "../../render/JuiceEffects";
5
5
  import type { EventBus } from "../../core/EventBus";
6
+ import type { GameConfigData } from "../../config/GameConfig";
6
7
  export declare class CoreCollisionHandler {
7
8
  static update(core: CoreEntity, enemies: EnemyEntity[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, eventBus: EventBus, score: {
8
9
  value: number;
9
- }, width: number, height: number): void;
10
+ }, width: number, height: number, config: GameConfigData): void;
11
+ private static tryAutoDeflectFragment;
10
12
  }
11
13
  //# sourceMappingURL=CoreCollisionHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoreCollisionHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/CoreCollisionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,qBAAa,oBAAoB;WACf,MAAM,CAChB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,EAC7B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,IAAI;CAqEV"}
1
+ {"version":3,"file":"CoreCollisionHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/CoreCollisionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAG9D,qBAAa,oBAAoB;WACf,MAAM,CAChB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,aAAa,EAAE,YAAY,EAAE,EAC7B,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,GACvB,IAAI;IAwEP,OAAO,CAAC,MAAM,CAAC,sBAAsB;CAkExC"}
@@ -3,9 +3,11 @@ import type { ToxicPool, GravityVortex, Shockwave, Particle, FloatingText } from
3
3
  import type { JuiceEffects } from "../../render/JuiceEffects";
4
4
  import type { EventBus } from "../../core/EventBus";
5
5
  import type { SpatialHash } from "../SpatialHash";
6
+ import type { EntityFactory } from "../../factory/EntityFactory";
7
+ import type { GameConfigData } from "../../config/GameConfig";
6
8
  export declare class ShieldCollisionHandler {
7
9
  static update(enemies: EnemyEntity[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, eventBus: EventBus, currentThrowState: {
8
10
  kills: number;
9
- }, width: number, height: number, spatialHash: SpatialHash<EnemyEntity>, onKill?: () => void): void;
11
+ }, width: number, height: number, spatialHash: SpatialHash<EnemyEntity>, factory: EntityFactory, config: GameConfigData, onKill?: () => void): void;
10
12
  }
11
13
  //# sourceMappingURL=ShieldCollisionHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ShieldCollisionHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ShieldCollisionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,qBAAa,sBAAsB;WACjB,MAAM,CAChB,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,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EACrC,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CA4CV"}
1
+ {"version":3,"file":"ShieldCollisionHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ShieldCollisionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACpG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,qBAAa,sBAAsB;WACjB,MAAM,CAChB,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,QAAQ,EAAE,QAAQ,EAClB,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EACrC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CA8CV"}
@@ -3,12 +3,14 @@ import type { ToxicPool, GravityVortex, Shockwave, Particle, FloatingText, Vecto
3
3
  import type { JuiceEffects } from "../../render/JuiceEffects";
4
4
  import type { EventBus } from "../../core/EventBus";
5
5
  import type { SpatialHash } from "../SpatialHash";
6
+ import type { EntityFactory } from "../../factory/EntityFactory";
7
+ import type { GameConfigData } from "../../config/GameConfig";
6
8
  export declare class ThrownCollisionHandler {
7
9
  static update(enemies: EnemyEntity[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, eventBus: EventBus, combo: {
8
10
  value: number;
9
11
  }, width: number, height: number, currentThrowState: {
10
12
  kills: number;
11
13
  pos: Vector2D | null;
12
- }, spatialHash: SpatialHash<EnemyEntity>, onKill?: () => void): void;
14
+ }, spatialHash: SpatialHash<EnemyEntity>, factory: EntityFactory, config: GameConfigData, onKill?: () => void): void;
13
15
  }
14
16
  //# sourceMappingURL=ThrownCollisionHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThrownCollisionHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ThrownCollisionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,qBAAa,sBAAsB;WACjB,MAAM,CAChB,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,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,EAC1D,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EACrC,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CAgTV"}
1
+ {"version":3,"file":"ThrownCollisionHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ThrownCollisionHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC9G,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAK9D,qBAAa,sBAAsB;WACjB,MAAM,CAChB,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,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,QAAQ,GAAG,IAAI,CAAA;KAAE,EAC1D,WAAW,EAAE,WAAW,CAAC,WAAW,CAAC,EACrC,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,cAAc,EACtB,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CA6LV"}
@@ -1,8 +1,9 @@
1
1
  import type { EnemyEntity } from "../../entities/EnemyEntity";
2
2
  import type { ToxicPool, GravityVortex, Shockwave, Particle } from "../../types/game";
3
+ import type { EnemyEffectContext } from "../../content/EnemyBehavior";
3
4
  export declare class ToxicPoolPhysicsHandler {
4
5
  static update(pools: ToxicPool[], enemies: EnemyEntity[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], dt: number, currentThrowState: {
5
6
  kills: number;
6
- }, onKill?: () => void): void;
7
+ }, runtime: EnemyEffectContext, onKill?: () => void): void;
7
8
  }
8
9
  //# sourceMappingURL=ToxicPoolPhysicsHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToxicPoolPhysicsHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ToxicPoolPhysicsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGtF,qBAAa,uBAAuB;WAClB,MAAM,CAChB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,WAAW,EAAE,EACtB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,EAAE,EAAE,MAAM,EACV,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACpC,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CAwBV"}
1
+ {"version":3,"file":"ToxicPoolPhysicsHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/ToxicPoolPhysicsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEtF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,qBAAa,uBAAuB;WAClB,MAAM,CAChB,KAAK,EAAE,SAAS,EAAE,EAClB,OAAO,EAAE,WAAW,EAAE,EACtB,QAAQ,EAAE,aAAa,EAAE,EACzB,UAAU,EAAE,SAAS,EAAE,EACvB,SAAS,EAAE,QAAQ,EAAE,EACrB,EAAE,EAAE,MAAM,EACV,iBAAiB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACpC,OAAO,EAAE,kBAAkB,EAC3B,MAAM,CAAC,EAAE,MAAM,IAAI,GACpB,IAAI;CA0BV"}
@@ -1,6 +1,7 @@
1
- import type { EnemyEntity } from "../../entities/EnemyEntity";
2
1
  import type { GravityVortex } from "../../types/game";
2
+ import type { GameConfigData } from "../../config/GameConfig";
3
+ import type { EnemyEntity } from "../../entities/EnemyEntity";
3
4
  export declare class VortexPhysicsHandler {
4
- static update(vortices: GravityVortex[], enemies: EnemyEntity[], dt: number): void;
5
+ static update(vortices: GravityVortex[], enemies: EnemyEntity[], dt: number, config: GameConfigData): void;
5
6
  }
6
7
  //# sourceMappingURL=VortexPhysicsHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VortexPhysicsHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/VortexPhysicsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,qBAAa,oBAAoB;WACf,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;CAqD5F"}
1
+ {"version":3,"file":"VortexPhysicsHandler.d.ts","sourceRoot":"","sources":["../../../src/physics/handlers/VortexPhysicsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAE9D,qBAAa,oBAAoB;WACf,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;CAoDpH"}
@@ -1,7 +1,14 @@
1
1
  import type { PowerUpDefinition } from "./PowerUpTypes";
2
+ import { GameConfigManager } from "../config/GameConfig";
2
3
  export declare class PowerUpRegistry {
3
- private static powerUps;
4
- static getRandomOptions(count?: number): PowerUpDefinition[];
5
- static registerPowerUp(def: PowerUpDefinition): void;
4
+ private readonly configManager;
5
+ private readonly registry;
6
+ private defaultsRegistered;
7
+ private readonly defaultPowerUps;
8
+ constructor(configManager: GameConfigManager);
9
+ private getDefinitions;
10
+ getAll(): PowerUpDefinition[];
11
+ getRandomOptions(count?: number): PowerUpDefinition[];
12
+ registerPowerUp(def: PowerUpDefinition): void;
6
13
  }
7
14
  //# sourceMappingURL=PowerUpRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PowerUpRegistry.d.ts","sourceRoot":"","sources":["../../src/powerups/PowerUpRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAoZrB;WAEY,gBAAgB,CAAC,KAAK,GAAE,MAAU,GAAG,iBAAiB,EAAE;WAmCxD,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;CAG9D"}
1
+ {"version":3,"file":"PowerUpRegistry.d.ts","sourceRoot":"","sources":["../../src/powerups/PowerUpRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAIzD,qBAAa,eAAe;IAkaL,OAAO,CAAC,QAAQ,CAAC,aAAa;IAjajD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyD;IAClF,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CA6Z9B;gBAEkC,aAAa,EAAE,iBAAiB;IAEpE,OAAO,CAAC,cAAc;IAQf,MAAM,IAAI,iBAAiB,EAAE;IAI7B,gBAAgB,CAAC,KAAK,GAAE,MAAU,GAAG,iBAAiB,EAAE;IAwBxD,eAAe,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI;CAIvD"}
@@ -1,4 +1,6 @@
1
1
  import type { Translations } from "../i18n/locales";
2
+ import type { GameConfigData } from "../config/GameConfig";
3
+ import type { CoreEntity } from "../entities/CoreEntity";
2
4
  export type PowerUpRarity = "common" | "rare" | "epic" | "legendary";
3
5
  export type PowerUpCategory = "radius" | "duration" | "power" | "defense" | "magnet";
4
6
  export interface PowerUpDefinition {
@@ -10,7 +12,10 @@ export interface PowerUpDefinition {
10
12
  rarity: PowerUpRarity;
11
13
  rarityWeight: number;
12
14
  color: string;
13
- apply: (core?: any) => void;
15
+ apply: (core?: CoreEntity) => void;
16
+ isAvailable?: (context: {
17
+ config: GameConfigData;
18
+ }) => boolean;
14
19
  }
15
20
  export declare const RARITY_COLORS: Record<PowerUpRarity, string>;
16
21
  //# sourceMappingURL=PowerUpTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PowerUpTypes.d.ts","sourceRoot":"","sources":["../../src/powerups/PowerUpTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,YAAY,CAAC;IAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKvD,CAAC"}
1
+ {"version":3,"file":"PowerUpTypes.d.ts","sourceRoot":"","sources":["../../src/powerups/PowerUpTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErF,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,YAAY,CAAC;IAC7B,OAAO,EAAE,MAAM,YAAY,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,aAAa,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,cAAc,CAAA;KAAE,KAAK,OAAO,CAAC;CAClE;AAED,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKvD,CAAC"}
@@ -7,22 +7,25 @@ import { JuiceEffects } from "./JuiceEffects";
7
7
  import { ThemeManager } from "../theme/ThemeManager";
8
8
  import type { InteractiveTutorial } from "../director/InteractiveTutorial";
9
9
  import type { I18nService } from "../i18n/I18nService";
10
+ import { GameConfigManager } from "../config/GameConfig";
10
11
  export declare class CanvasRenderer {
11
12
  private canvas;
12
13
  private ctx;
13
14
  private themeManager;
15
+ private configManager;
14
16
  private indicatorRenderer;
15
17
  private bgRenderer;
16
18
  private tutorialArrowRenderer;
17
19
  private enemyShapeRenderer;
18
- constructor(canvas: HTMLCanvasElement, themeManager: ThemeManager);
19
- render(core: CoreEntity, enemies: EnemyEntity[], experienceOrbs: ExperienceOrb[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, grabbedEnemy: EnemyEntity | null, mousePos: Vector2D, level?: number, tutorial?: InteractiveTutorial): void;
20
+ constructor(canvas: HTMLCanvasElement, themeManager: ThemeManager, configManager: GameConfigManager);
21
+ render(core: CoreEntity, enemies: EnemyEntity[], experienceOrbs: ExperienceOrb[], pools: ToxicPool[], vortices: GravityVortex[], shockwaves: Shockwave[], particles: Particle[], floatingTexts: FloatingText[], juice: JuiceEffects, grabbedEnemy: EnemyEntity | null, mousePos: Vector2D, level?: number, experienceProgress?: number, levelUpPulse?: number, tutorial?: InteractiveTutorial): void;
20
22
  private drawExperienceOrbs;
21
23
  private drawToxicPools;
22
24
  private drawShockwaves;
23
25
  private drawGravityVortices;
24
26
  private drawFluidCosmosBackground;
25
27
  private drawCoreFilaments;
28
+ private drawAutoDeflectionBeams;
26
29
  private drawOrganicConsciousnessCore;
27
30
  private drawPsionicTendril;
28
31
  private drawHoverTendril;
@@ -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,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAKxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,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;IACrD,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY;IAU1D,MAAM,CACT,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,cAAc,EAAE,aAAa,EAAE,EAC/B,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;IAmDP,OAAO,CAAC,kBAAkB;IAiD1B,OAAO,CAAC,cAAc;IAsEtB,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,4BAA4B;IAkIpC,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IA8F1B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAelB,wBAAwB,CAC3B,IAAI,EAAE,mBAAmB,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,GAAE,OAAc,EACzB,gBAAgB,GAAE,MAAU,GAC7B,IAAI;IA2GP,OAAO,CAAC,cAAc;CASzB"}
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,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC3G,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAqB,MAAM,uBAAuB,CAAC;AAKxE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAGzD,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,GAAG,CAAkC;IAC7C,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,MAAM,EAAE,iBAAiB,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,iBAAiB;IAW5F,MAAM,CACT,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,WAAW,EAAE,EACtB,cAAc,EAAE,aAAa,EAAE,EAC/B,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,kBAAkB,GAAE,MAAU,EAC9B,YAAY,GAAE,MAAU,EACxB,QAAQ,CAAC,EAAE,mBAAmB,GAC/B,IAAI;IAoDP,OAAO,CAAC,kBAAkB;IAoD1B,OAAO,CAAC,cAAc;IAsEtB,OAAO,CAAC,cAAc;IAoCtB,OAAO,CAAC,mBAAmB;IAqC3B,OAAO,CAAC,yBAAyB;IAgCjC,OAAO,CAAC,iBAAiB;IA6BzB,OAAO,CAAC,uBAAuB;IA8C/B,OAAO,CAAC,4BAA4B;IAsNpC,OAAO,CAAC,kBAAkB;IAwC1B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,kBAAkB;IAyF1B,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,iBAAiB;IAelB,wBAAwB,CAC3B,IAAI,EAAE,mBAAmB,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,WAAW,EACzB,SAAS,GAAE,OAAc,EACzB,gBAAgB,GAAE,MAAU,GAC7B,IAAI;IA2GP,OAAO,CAAC,cAAc;CASzB"}
@@ -1,8 +1,13 @@
1
1
  import { EnemyEntity } from "../entities/EnemyEntity";
2
+ import { GameConfigManager } from "../config/GameConfig";
2
3
  import type { ThemePalette } from "../theme/ThemeManager";
3
4
  /** Draws the local shape of an enemy after CanvasRenderer has positioned it. */
4
5
  export declare class EnemyShapeRenderer {
6
+ private readonly configManager;
7
+ constructor(configManager: GameConfigManager);
5
8
  draw(ctx: CanvasRenderingContext2D, enemy: EnemyEntity, time: number, palette: ThemePalette, color: string): void;
9
+ private readonly renderers;
10
+ private drawCircle;
6
11
  private drawPiercer;
7
12
  private drawSpore;
8
13
  private drawCluster;
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyShapeRenderer.d.ts","sourceRoot":"","sources":["../../src/render/EnemyShapeRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,gFAAgF;AAChF,qBAAa,kBAAkB;IACpB,IAAI,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAsBxH,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,SAAS;CAwFpB"}
1
+ {"version":3,"file":"EnemyShapeRenderer.d.ts","sourceRoot":"","sources":["../../src/render/EnemyShapeRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,gFAAgF;AAChF,qBAAa,kBAAkB;IACR,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,iBAAiB;IAC7D,IAAI,CAAC,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IASxH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAOxB;IAEF,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,SAAS;CAwFpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"FragmentClusterStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/FragmentClusterStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMvE,qBAAa,uBAAwB,YAAW,eAAe;IACpD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CA0F3C"}
1
+ {"version":3,"file":"FragmentClusterStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/FragmentClusterStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIvE,qBAAa,uBAAwB,YAAW,eAAe;IACpD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAqG3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"GravityParasiteStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/GravityParasiteStrategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,uBAAwB,YAAW,eAAe;IAC3D,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAgCxC"}
1
+ {"version":3,"file":"GravityParasiteStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/GravityParasiteStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,uBAAwB,YAAW,eAAe;IAC3D,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAgCxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"HeavyShieldStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/HeavyShieldStrategy.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,mBAAoB,YAAW,eAAe;IAChD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAoF3C"}
1
+ {"version":3,"file":"HeavyShieldStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/HeavyShieldStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,mBAAoB,YAAW,eAAe;IAChD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAoF3C"}
@@ -1,6 +1,8 @@
1
1
  import type { EnemyEntity } from "../entities/EnemyEntity";
2
2
  import type { ToxicPool, GravityVortex, Shockwave, Particle, FloatingText } from "../types/game";
3
3
  import type { EventBus } from "../core/EventBus";
4
+ import type { EntityFactory } from "../factory/EntityFactory";
5
+ import type { GameConfigData } from "../config/GameConfig";
4
6
  export interface ImpactContext {
5
7
  thrownEnemy: EnemyEntity;
6
8
  targetEnemy: EnemyEntity;
@@ -13,6 +15,8 @@ export interface ImpactContext {
13
15
  eventBus: EventBus;
14
16
  width: number;
15
17
  height: number;
18
+ factory: EntityFactory;
19
+ config: GameConfigData;
16
20
  }
17
21
  export interface IImpactStrategy {
18
22
  execute(ctx: ImpactContext): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ImpactStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/ImpactStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC"}
1
+ {"version":3,"file":"ImpactStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/ImpactStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACjG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToxicSporeStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/ToxicSporeStrategy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,kBAAmB,YAAW,eAAe;IAC/C,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAwD3C"}
1
+ {"version":3,"file":"ToxicSporeStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/ToxicSporeStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,kBAAmB,YAAW,eAAe;IAC/C,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAwD3C"}