@gamebob/axon-surge 0.53.0 → 0.55.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 (123) hide show
  1. package/dist/areas/AreaEnvironmentConstants.d.ts +1 -0
  2. package/dist/areas/AreaEnvironmentConstants.d.ts.map +1 -1
  3. package/dist/areas/AreaEnvironmentRuntime.d.ts +9 -1
  4. package/dist/areas/AreaEnvironmentRuntime.d.ts.map +1 -1
  5. package/dist/areas/AreaEnvironmentRuntimePayloads.d.ts +10 -3
  6. package/dist/areas/AreaEnvironmentRuntimePayloads.d.ts.map +1 -1
  7. package/dist/areas/AreaEnvironmentRuntimeStructures.d.ts +17 -3
  8. package/dist/areas/AreaEnvironmentRuntimeStructures.d.ts.map +1 -1
  9. package/dist/areas/AreaEnvironmentRuntimeVariants.d.ts +12 -0
  10. package/dist/areas/AreaEnvironmentRuntimeVariants.d.ts.map +1 -1
  11. package/dist/areas/AreaEnvironmentStructureGeometry.d.ts +9 -0
  12. package/dist/areas/AreaEnvironmentStructureGeometry.d.ts.map +1 -1
  13. package/dist/areas/AreaEnvironmentTypes.d.ts +12 -0
  14. package/dist/areas/AreaEnvironmentTypes.d.ts.map +1 -1
  15. package/dist/axon-surge.js +5938 -5133
  16. package/dist/challenges/ChallengeSpawnProfile.d.ts +4 -0
  17. package/dist/challenges/ChallengeSpawnProfile.d.ts.map +1 -1
  18. package/dist/codex/DefaultCodex.d.ts.map +1 -1
  19. package/dist/config/GameConfig.d.ts.map +1 -1
  20. package/dist/config/GameConfigTypes.d.ts +0 -1
  21. package/dist/config/GameConfigTypes.d.ts.map +1 -1
  22. package/dist/content/ContentTypes.d.ts +63 -0
  23. package/dist/content/ContentTypes.d.ts.map +1 -1
  24. package/dist/content/DefaultAreaDefinitions.d.ts.map +1 -1
  25. package/dist/content/DefaultContentRegistry.d.ts.map +1 -1
  26. package/dist/content/EnemyBehavior.d.ts +3 -1
  27. package/dist/content/EnemyBehavior.d.ts.map +1 -1
  28. package/dist/content/EnemyBehaviorChains.d.ts.map +1 -1
  29. package/dist/content/EnemyBehaviorCollisions.d.ts.map +1 -1
  30. package/dist/content/EnemyBehaviorEffects.d.ts.map +1 -1
  31. package/dist/content/EnemySwarmBehavior.d.ts +15 -0
  32. package/dist/content/EnemySwarmBehavior.d.ts.map +1 -0
  33. package/dist/core/ActiveCollection.d.ts +5 -0
  34. package/dist/core/ActiveCollection.d.ts.map +1 -0
  35. package/dist/core/GameEngineConstants.d.ts +1 -0
  36. package/dist/core/GameEngineConstants.d.ts.map +1 -1
  37. package/dist/core/GameEngineMethodsLevelUp.d.ts.map +1 -1
  38. package/dist/core/GameEngineMethodsOrbs.d.ts.map +1 -1
  39. package/dist/core/GameEngineMethodsPhysics.d.ts.map +1 -1
  40. package/dist/core/GameEngineMethodsProgress.d.ts.map +1 -1
  41. package/dist/core/GameEngineMethodsSetup.d.ts.map +1 -1
  42. package/dist/core/GameEngineMethodsUi.d.ts.map +1 -1
  43. package/dist/core/GameEngineMethodsUpdate.d.ts.map +1 -1
  44. package/dist/core/GameEngineState.d.ts +2 -0
  45. package/dist/core/GameEngineState.d.ts.map +1 -1
  46. package/dist/core/PerformanceAudit.d.ts +22 -15
  47. package/dist/core/PerformanceAudit.d.ts.map +1 -1
  48. package/dist/core/PerformanceAuditLongTaskObserver.d.ts +2 -0
  49. package/dist/core/PerformanceAuditLongTaskObserver.d.ts.map +1 -0
  50. package/dist/core/PerformanceAuditReport.d.ts +70 -0
  51. package/dist/core/PerformanceAuditReport.d.ts.map +1 -0
  52. package/dist/core/PerformanceAuditSampling.d.ts +18 -0
  53. package/dist/core/PerformanceAuditSampling.d.ts.map +1 -0
  54. package/dist/director/WaveDirector.d.ts +1 -0
  55. package/dist/director/WaveDirector.d.ts.map +1 -1
  56. package/dist/director/WaveSpawnResolver.d.ts +4 -0
  57. package/dist/director/WaveSpawnResolver.d.ts.map +1 -1
  58. package/dist/entities/EnemyEntity.d.ts +13 -8
  59. package/dist/entities/EnemyEntity.d.ts.map +1 -1
  60. package/dist/entities/EnemyEntityReset.d.ts +3 -0
  61. package/dist/entities/EnemyEntityReset.d.ts.map +1 -0
  62. package/dist/factory/EntityFactory.d.ts.map +1 -1
  63. package/dist/i18n/locales.d.ts +2 -1
  64. package/dist/i18n/locales.d.ts.map +1 -1
  65. package/dist/input/InputManager.d.ts +1 -0
  66. package/dist/input/InputManager.d.ts.map +1 -1
  67. package/dist/input/PointerTracker.d.ts +3 -0
  68. package/dist/input/PointerTracker.d.ts.map +1 -1
  69. package/dist/objectives/DefaultObjectives.d.ts.map +1 -1
  70. package/dist/physics/EffectClusterer.d.ts.map +1 -1
  71. package/dist/physics/FamilySweepPhysicsHandler.d.ts +11 -0
  72. package/dist/physics/FamilySweepPhysicsHandler.d.ts.map +1 -0
  73. package/dist/physics/PhysicsEnemyUpdater.d.ts +2 -0
  74. package/dist/physics/PhysicsEnemyUpdater.d.ts.map +1 -1
  75. package/dist/physics/PhysicsEngine.d.ts +3 -1
  76. package/dist/physics/PhysicsEngine.d.ts.map +1 -1
  77. package/dist/physics/SpatialHash.d.ts +6 -0
  78. package/dist/physics/SpatialHash.d.ts.map +1 -1
  79. package/dist/physics/handlers/ChainReactionHelper.d.ts.map +1 -1
  80. package/dist/physics/handlers/CoreCollisionHandler.d.ts +1 -3
  81. package/dist/physics/handlers/CoreCollisionHandler.d.ts.map +1 -1
  82. package/dist/physics/handlers/ShieldCollisionHandler.d.ts.map +1 -1
  83. package/dist/physics/handlers/SmasherCollisionHandler.d.ts.map +1 -1
  84. package/dist/physics/handlers/ThrownCollisionRuntime.d.ts.map +1 -1
  85. package/dist/physics/handlers/ThrownComboEffects.d.ts.map +1 -1
  86. package/dist/physics/handlers/ThrownSynergyEffects.d.ts.map +1 -1
  87. package/dist/physics/handlers/ToxicPoolPhysicsHandler.d.ts.map +1 -1
  88. package/dist/render/AreaEnvironmentPulseRenderer.d.ts +19 -0
  89. package/dist/render/AreaEnvironmentPulseRenderer.d.ts.map +1 -0
  90. package/dist/render/AreaEnvironmentRenderer.d.ts +4 -5
  91. package/dist/render/AreaEnvironmentRenderer.d.ts.map +1 -1
  92. package/dist/render/AreaEnvironmentSpecialRenderer.d.ts +12 -0
  93. package/dist/render/AreaEnvironmentSpecialRenderer.d.ts.map +1 -0
  94. package/dist/render/CanvasRenderFoundation.d.ts +10 -0
  95. package/dist/render/CanvasRenderFoundation.d.ts.map +1 -1
  96. package/dist/render/CanvasRenderer.d.ts +6 -2
  97. package/dist/render/CanvasRenderer.d.ts.map +1 -1
  98. package/dist/render/CanvasRendererDrawings.d.ts +9 -3
  99. package/dist/render/CanvasRendererDrawings.d.ts.map +1 -1
  100. package/dist/render/EnemyRenderer.d.ts +6 -0
  101. package/dist/render/EnemyRenderer.d.ts.map +1 -1
  102. package/dist/render/EnemyRendererRegistry.d.ts.map +1 -1
  103. package/dist/render/HazardRenderer.d.ts +2 -0
  104. package/dist/render/HazardRenderer.d.ts.map +1 -1
  105. package/dist/render/JuiceEffects.d.ts +4 -0
  106. package/dist/render/JuiceEffects.d.ts.map +1 -1
  107. package/dist/render/ParticlePool.d.ts +16 -0
  108. package/dist/render/ParticlePool.d.ts.map +1 -0
  109. package/dist/strategies/FragmentClusterStrategy.d.ts +0 -2
  110. package/dist/strategies/FragmentClusterStrategy.d.ts.map +1 -1
  111. package/dist/strategies/HeavyShieldStrategy.d.ts +0 -2
  112. package/dist/strategies/HeavyShieldStrategy.d.ts.map +1 -1
  113. package/dist/strategies/ImpactStrategy.d.ts +2 -0
  114. package/dist/strategies/ImpactStrategy.d.ts.map +1 -1
  115. package/dist/strategies/PiercingCellStrategy.d.ts.map +1 -1
  116. package/dist/strategies/ToxicSporeStrategy.d.ts.map +1 -1
  117. package/dist/styles.css +1 -1
  118. package/dist/types/game.d.ts +4 -0
  119. package/dist/types/game.d.ts.map +1 -1
  120. package/dist/ui/CodexVariantCanvas.d.ts.map +1 -1
  121. package/dist/ui/SettingsModalView.d.ts +0 -1
  122. package/dist/ui/SettingsModalView.d.ts.map +1 -1
  123. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasRendererDrawings.d.ts","sourceRoot":"","sources":["../../src/render/CanvasRendererDrawings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI3F,qBAAa,sBAAuB,SAAQ,sBAAsB;IACvD,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAajD,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,aAAa;CAqBxB"}
1
+ {"version":3,"file":"CanvasRendererDrawings.d.ts","sourceRoot":"","sources":["../../src/render/CanvasRendererDrawings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACzF,YAAY,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIhH,qBAAa,sBAAuB,SAAQ,sBAAsB;IACvD,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB;IAuBhE,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,sBAAsB;IAe9B,OAAO,CAAC,yBAAyB;IAejC,OAAO,CAAC,aAAa;CAqBxB"}
@@ -14,7 +14,13 @@ export interface EnemyRenderer {
14
14
  }
15
15
  export declare abstract class FilledEnemyRenderer implements EnemyRenderer {
16
16
  render(context: EnemyRenderContext): void;
17
+ private applyStyle;
18
+ private drawSwarmState;
19
+ private getSwarmAlpha;
17
20
  protected isOutline(context: EnemyRenderContext): boolean;
21
+ private drawSwarmShield;
22
+ private drawSwarmInterior;
23
+ private drawSwarmAttraction;
18
24
  protected abstract drawShape(context: EnemyRenderContext): void;
19
25
  }
20
26
  //# sourceMappingURL=EnemyRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyRenderer.d.ts","sourceRoot":"","sources":["../../src/render/EnemyRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC7C;AAED,8BAAsB,mBAAoB,YAAW,aAAa;IACvD,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAmBhD,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAIzD,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAClE"}
1
+ {"version":3,"file":"EnemyRenderer.d.ts","sourceRoot":"","sources":["../../src/render/EnemyRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,GAAG,EAAE,wBAAwB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC1B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAAC;CAC7C;AAED,8BAAsB,mBAAoB,YAAW,aAAa;IACvD,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAchD,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,aAAa;IAQrB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAIzD,OAAO,CAAC,eAAe;IAUvB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,mBAAmB;IAa3B,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;CAClE"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyRendererRegistry.d.ts","sourceRoot":"","sources":["../../src/render/EnemyRendererRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqE;gBAEhF,aAAa,EAAE,iBAAiB;IAS5C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI3D,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAI1C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB;CAG1E"}
1
+ {"version":3,"file":"EnemyRendererRegistry.d.ts","sourceRoot":"","sources":["../../src/render/EnemyRendererRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAO9D,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoC;IAC9D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAG3B;gBAEgB,aAAa,EAAE,iBAAiB;IAS5C,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAI3D,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa;IAI1C,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,gBAAgB;CAG1E"}
@@ -9,6 +9,8 @@ export declare abstract class HazardRenderer extends CollectibleRenderer {
9
9
  private drawPoolBubbles;
10
10
  drawShockwaves(shockwaves: Shockwave[]): void;
11
11
  private drawShockwave;
12
+ private drawOrganicShockwave;
13
+ private buildOrganicFront;
12
14
  drawRepelWaveProjectiles(projectiles: RepelWaveProjectile[]): void;
13
15
  private drawRepelProjectile;
14
16
  private getRepelProjectileStart;
@@ -1 +1 @@
1
- {"version":3,"file":"HazardRenderer.d.ts","sourceRoot":"","sources":["../../src/render/HazardRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzE,8BAAsB,cAAe,SAAQ,mBAAmB;IACrD,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7D,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IAahB,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAOpD,OAAO,CAAC,aAAa;IAyBd,wBAAwB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAOzE,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,uBAAuB;IAQxB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1E,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,eAAe;CAW1B"}
1
+ {"version":3,"file":"HazardRenderer.d.ts","sourceRoot":"","sources":["../../src/render/HazardRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEzE,8BAAsB,cAAe,SAAQ,mBAAmB;IACrD,cAAc,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7D,OAAO,CAAC,aAAa;IAyBrB,OAAO,CAAC,iBAAiB;IAyBzB,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,eAAe;IAahB,cAAc,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI;IAOpD,OAAO,CAAC,aAAa;IA6BrB,OAAO,CAAC,oBAAoB;IAuB5B,OAAO,CAAC,iBAAiB;IAelB,wBAAwB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAOzE,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,uBAAuB;IAQ/B,OAAO,CAAC,wBAAwB;IAehC,OAAO,CAAC,6BAA6B;IAWrC,OAAO,CAAC,uBAAuB;IAQxB,mBAAmB,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK1E,OAAO,CAAC,iBAAiB;IAuBzB,OAAO,CAAC,eAAe;CAW1B"}
@@ -1,4 +1,5 @@
1
1
  import type { Vector2D, FloatingText, Particle } from "../types/game";
2
+ import { type ParticleSpawnOptions } from "./ParticlePool";
2
3
  export declare class JuiceEffects {
3
4
  shakeTime: number;
4
5
  shakeDuration: number;
@@ -7,12 +8,15 @@ export declare class JuiceEffects {
7
8
  flashAlpha: number;
8
9
  private effectsIntensity;
9
10
  private reducedMotion;
11
+ private readonly particlePool;
10
12
  setEffectsIntensity(intensity: "full" | "reduced" | "minimal"): void;
11
13
  setReducedMotion(enabled: boolean): void;
12
14
  triggerHitstop(_durationSeconds?: number): void;
13
15
  triggerFlash(intensity?: number): void;
14
16
  triggerScreenShake(direction: Vector2D, comboCount?: number): void;
15
17
  reset(): void;
18
+ spawnParticle(particles: Particle[], options: ParticleSpawnOptions): boolean;
19
+ releaseParticles(particles: Particle[]): void;
16
20
  update(dt: number, floatingTexts: FloatingText[], particles: Particle[]): void;
17
21
  private trimCollections;
18
22
  private updateFloatingTexts;
@@ -1 +1 @@
1
- {"version":3,"file":"JuiceEffects.d.ts","sourceRoot":"","sources":["../../src/render/JuiceEffects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtE,qBAAa,YAAY;IACd,SAAS,EAAE,MAAM,CAAK;IACtB,aAAa,EAAE,MAAM,CAAQ;IAC7B,cAAc,EAAE,MAAM,CAAK;IAC3B,WAAW,EAAE,QAAQ,CAAkB;IACvC,UAAU,EAAE,MAAM,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAS;IAEvB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI;IAUpE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC,cAAc,CAAC,gBAAgB,GAAE,MAAa,GAAG,IAAI;IAErD,YAAY,CAAC,SAAS,GAAE,MAAY,GAAG,IAAI;IAI3C,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAcrE,KAAK,IAAI,IAAI;IAOb,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQrF,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IAYhB,cAAc,IAAI,QAAQ;CAQpC"}
1
+ {"version":3,"file":"JuiceEffects.d.ts","sourceRoot":"","sources":["../../src/render/JuiceEffects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACtE,OAAO,EAAsC,KAAK,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,qBAAa,YAAY;IACd,SAAS,EAAE,MAAM,CAAK;IACtB,aAAa,EAAE,MAAM,CAAQ;IAC7B,cAAc,EAAE,MAAM,CAAK;IAC3B,WAAW,EAAE,QAAQ,CAAkB;IACvC,UAAU,EAAE,MAAM,CAAK;IAC9B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAE5C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,IAAI;IAUpE,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAIxC,cAAc,CAAC,gBAAgB,GAAE,MAAa,GAAG,IAAI;IAErD,YAAY,CAAC,SAAS,GAAE,MAAY,GAAG,IAAI;IAI3C,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,GAAE,MAAU,GAAG,IAAI;IAcrE,KAAK,IAAI,IAAI;IAOb,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO;IAM5E,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAK7C,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI;IAQrF,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,eAAe;IAgBhB,cAAc,IAAI,QAAQ;CAQpC"}
@@ -0,0 +1,16 @@
1
+ import type { Particle, Vector2D } from "../types/game";
2
+ export declare const MAX_ACTIVE_PARTICLES = 96;
3
+ export interface ParticleSpawnOptions {
4
+ position: Vector2D;
5
+ velocity: Vector2D;
6
+ color: string;
7
+ radius: number;
8
+ maxLifetime: number;
9
+ }
10
+ export declare class ParticlePool {
11
+ private readonly recycled;
12
+ spawn(particles: Particle[], options: ParticleSpawnOptions): boolean;
13
+ recycle(particle: Particle): void;
14
+ private createParticle;
15
+ }
16
+ //# sourceMappingURL=ParticlePool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ParticlePool.d.ts","sourceRoot":"","sources":["../../src/render/ParticlePool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAExD,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,YAAY;IACrB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAEpC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO;IAiBpE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAIxC,OAAO,CAAC,cAAc;CAYzB"}
@@ -9,7 +9,5 @@ export declare class FragmentClusterStrategy implements IImpactStrategy {
9
9
  private findNearestEnemy;
10
10
  private isIgnoredCandidate;
11
11
  private addParticles;
12
- private createParticle;
13
- private addFeedback;
14
12
  }
15
13
  //# sourceMappingURL=FragmentClusterStrategy.d.ts.map
@@ -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;AAYvE,qBAAa,uBAAwB,YAAW,eAAe;IACpD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IASxC,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,WAAW;CActB"}
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;AAYvE,qBAAa,uBAAwB,YAAW,eAAe;IACpD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAQxC,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,YAAY;CAcvB"}
@@ -4,7 +4,5 @@ export declare class HeavyShieldStrategy implements IImpactStrategy {
4
4
  private createFanBeams;
5
5
  private configureBeam;
6
6
  private addFeedback;
7
- private createFeedbackText;
8
- private createParticle;
9
7
  }
10
8
  //# sourceMappingURL=HeavyShieldStrategy.d.ts.map
@@ -1 +1 @@
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;AAYvE,qBAAa,mBAAoB,YAAW,eAAe;IAChD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAWxC,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,cAAc;CAczB"}
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;AAYvE,qBAAa,mBAAoB,YAAW,eAAe;IAChD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAWxC,OAAO,CAAC,cAAc;IA4BtB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,WAAW;CActB"}
@@ -4,6 +4,7 @@ import type { EventBus } from "../core/EventBus";
4
4
  import type { EntityFactory } from "../factory/EntityFactory";
5
5
  import type { GameConfigData } from "../config/GameConfig";
6
6
  import type { LauncherImpactProfile } from "../progression/LauncherElevationTypes";
7
+ import type { JuiceEffects } from "../render/JuiceEffects";
7
8
  export interface ImpactContext {
8
9
  thrownEnemy: EnemyEntity;
9
10
  targetEnemy: EnemyEntity;
@@ -13,6 +14,7 @@ export interface ImpactContext {
13
14
  shockwaves: Shockwave[];
14
15
  particles: Particle[];
15
16
  floatingTexts: FloatingText[];
17
+ juice: JuiceEffects;
16
18
  eventBus: EventBus;
17
19
  width: number;
18
20
  height: number;
@@ -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;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAEnF,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;IACvB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CAC1C;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;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,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,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,MAAM,WAAW,eAAe;IAC5B,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAAC;CACrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PiercingCellStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/PiercingCellStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,oBAAqB,YAAW,eAAe;IACjD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAQ3C"}
1
+ {"version":3,"file":"PiercingCellStrategy.d.ts","sourceRoot":"","sources":["../../src/strategies/PiercingCellStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGvE,qBAAa,oBAAqB,YAAW,eAAe;IACjD,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAiB3C"}
@@ -1 +1 @@
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;CAW3C"}
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;CAoB3C"}