@gamebob/axon-surge 0.51.0 → 0.52.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 (80) hide show
  1. package/dist/areas/AreaEnvironmentAirVisualGeometry.d.ts +5 -0
  2. package/dist/areas/AreaEnvironmentAirVisualGeometry.d.ts.map +1 -0
  3. package/dist/areas/AreaEnvironmentConstants.d.ts +8 -0
  4. package/dist/areas/AreaEnvironmentConstants.d.ts.map +1 -0
  5. package/dist/areas/AreaEnvironmentGeometry.d.ts +14 -0
  6. package/dist/areas/AreaEnvironmentGeometry.d.ts.map +1 -0
  7. package/dist/areas/AreaEnvironmentRuntime.d.ts +23 -0
  8. package/dist/areas/AreaEnvironmentRuntime.d.ts.map +1 -0
  9. package/dist/areas/AreaEnvironmentRuntimeAir.d.ts +22 -0
  10. package/dist/areas/AreaEnvironmentRuntimeAir.d.ts.map +1 -0
  11. package/dist/areas/AreaEnvironmentRuntimeInteractions.d.ts +43 -0
  12. package/dist/areas/AreaEnvironmentRuntimeInteractions.d.ts.map +1 -0
  13. package/dist/areas/AreaEnvironmentRuntimePayloads.d.ts +22 -0
  14. package/dist/areas/AreaEnvironmentRuntimePayloads.d.ts.map +1 -0
  15. package/dist/areas/AreaEnvironmentRuntimeStructures.d.ts +20 -0
  16. package/dist/areas/AreaEnvironmentRuntimeStructures.d.ts.map +1 -0
  17. package/dist/areas/AreaEnvironmentRuntimeVariants.d.ts +16 -0
  18. package/dist/areas/AreaEnvironmentRuntimeVariants.d.ts.map +1 -0
  19. package/dist/areas/AreaEnvironmentStructureGeometry.d.ts +13 -0
  20. package/dist/areas/AreaEnvironmentStructureGeometry.d.ts.map +1 -0
  21. package/dist/areas/AreaEnvironmentTypes.d.ts +103 -0
  22. package/dist/areas/AreaEnvironmentTypes.d.ts.map +1 -0
  23. package/dist/artwork/core-banners/meet-the-launcher.png +0 -0
  24. package/dist/artwork/core-banners/meet-the-repellent.png +0 -0
  25. package/dist/artwork/core-banners/meet-the-smasher.png +0 -0
  26. package/dist/axon-surge.js +4456 -3561
  27. package/dist/content/ContentTypes.d.ts +5 -0
  28. package/dist/content/ContentTypes.d.ts.map +1 -1
  29. package/dist/content/DefaultAreaDefinitions.d.ts.map +1 -1
  30. package/dist/content/EnemyBehavior.d.ts +1 -0
  31. package/dist/content/EnemyBehavior.d.ts.map +1 -1
  32. package/dist/content/EnemyBehaviorChains.d.ts.map +1 -1
  33. package/dist/core/GameEngineDebug.d.ts +2 -0
  34. package/dist/core/GameEngineDebug.d.ts.map +1 -1
  35. package/dist/core/GameEngineInitialization.d.ts.map +1 -1
  36. package/dist/core/GameEngineLoopInitialization.d.ts.map +1 -1
  37. package/dist/core/GameEngineMethodsBossRuntime.d.ts.map +1 -1
  38. package/dist/core/GameEngineMethodsLevelUp.d.ts +3 -0
  39. package/dist/core/GameEngineMethodsLevelUp.d.ts.map +1 -0
  40. package/dist/core/GameEngineMethodsStart.d.ts.map +1 -1
  41. package/dist/core/GameEngineMethodsUi.d.ts.map +1 -1
  42. package/dist/core/GameEngineMethodsUpdate.d.ts.map +1 -1
  43. package/dist/core/GameEngineState.d.ts +5 -1
  44. package/dist/core/GameEngineState.d.ts.map +1 -1
  45. package/dist/director/WaveDirector.d.ts.map +1 -1
  46. package/dist/entities/EnemyEntity.d.ts +12 -0
  47. package/dist/entities/EnemyEntity.d.ts.map +1 -1
  48. package/dist/input/InputManager.d.ts +6 -0
  49. package/dist/input/InputManager.d.ts.map +1 -1
  50. package/dist/physics/PhysicsEngine.d.ts +4 -1
  51. package/dist/physics/PhysicsEngine.d.ts.map +1 -1
  52. package/dist/physics/handlers/SmasherCollisionHandler.d.ts +2 -0
  53. package/dist/physics/handlers/SmasherCollisionHandler.d.ts.map +1 -1
  54. package/dist/physics/handlers/ThrownCollisionHandler.d.ts +2 -0
  55. package/dist/physics/handlers/ThrownCollisionHandler.d.ts.map +1 -1
  56. package/dist/physics/handlers/ThrownCollisionRuntime.d.ts +2 -0
  57. package/dist/physics/handlers/ThrownCollisionRuntime.d.ts.map +1 -1
  58. package/dist/pool/EnemyPopulationGuard.d.ts +5 -0
  59. package/dist/pool/EnemyPopulationGuard.d.ts.map +1 -0
  60. package/dist/render/AreaEnvironmentRenderer.d.ts +37 -0
  61. package/dist/render/AreaEnvironmentRenderer.d.ts.map +1 -0
  62. package/dist/render/AtmosphereRenderer.d.ts +5 -1
  63. package/dist/render/AtmosphereRenderer.d.ts.map +1 -1
  64. package/dist/render/CanvasRenderFoundation.d.ts +8 -0
  65. package/dist/render/CanvasRenderFoundation.d.ts.map +1 -1
  66. package/dist/render/CanvasRendererDrawings.d.ts +1 -0
  67. package/dist/render/CanvasRendererDrawings.d.ts.map +1 -1
  68. package/dist/render/HazardRenderer.d.ts +1 -0
  69. package/dist/render/HazardRenderer.d.ts.map +1 -1
  70. package/dist/render/InteractionParticleRenderer.d.ts +2 -0
  71. package/dist/render/InteractionParticleRenderer.d.ts.map +1 -1
  72. package/dist/render/MiasmaWindRenderer.d.ts +14 -0
  73. package/dist/render/MiasmaWindRenderer.d.ts.map +1 -0
  74. package/dist/strategies/FragmentClusterStrategy.d.ts.map +1 -1
  75. package/dist/strategies/HeavyShieldStrategy.d.ts.map +1 -1
  76. package/dist/types/game.d.ts +2 -0
  77. package/dist/types/game.d.ts.map +1 -1
  78. package/dist/ui/SettingsModal.d.ts +1 -0
  79. package/dist/ui/SettingsModal.d.ts.map +1 -1
  80. package/package.json +1 -1
@@ -0,0 +1,5 @@
1
+ import type { Vector2D } from "../types/game";
2
+ import type { AirCorridor } from "./AreaEnvironmentTypes";
3
+ export declare const getAirFlowCenterPoint: (corridor: AirCorridor, progress: number, time: number) => Vector2D;
4
+ export declare const getAirFlowThickness: (corridor: AirCorridor, progress: number) => number;
5
+ //# sourceMappingURL=AreaEnvironmentAirVisualGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentAirVisualGeometry.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentAirVisualGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,eAAO,MAAM,qBAAqB,GAAI,UAAU,WAAW,EAAE,UAAU,MAAM,EAAE,MAAM,MAAM,KAAG,QAO7F,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAAI,UAAU,WAAW,EAAE,UAAU,MAAM,KAAG,MAAqF,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { EnemyEffectContext } from "../content/EnemyBehavior";
2
+ import type { EnemyType, Vector2D } from "../types/game";
3
+ export declare const ENVIRONMENT_COLORS: Record<string, string>;
4
+ export declare const ENVIRONMENT_SYMBOLS: Record<string, string>;
5
+ export declare const distanceSquared: (a: Vector2D, b: Vector2D) => number;
6
+ export declare const makeShockwave: (ctx: EnemyEffectContext, position: Vector2D, color: string, maxRadius: number) => void;
7
+ export declare const environmentColor: (type: EnemyType) => string;
8
+ //# sourceMappingURL=AreaEnvironmentConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentConstants.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentConstants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzD,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOrD,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOtD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,GAAG,QAAQ,EAAE,GAAG,QAAQ,KAAG,MAA6C,CAAC;AAEzG,eAAO,MAAM,aAAa,GAAI,KAAK,kBAAkB,EAAE,UAAU,QAAQ,EAAE,OAAO,MAAM,EAAE,WAAW,MAAM,KAAG,IAW7G,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,MAAM,SAAS,KAAG,MAA+C,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Vector2D } from "../types/game";
2
+ import type { AdhesivePlate, AirCorridor } from "./AreaEnvironmentTypes";
3
+ type GeometryState = {
4
+ width: number;
5
+ height: number;
6
+ corePosition: Vector2D;
7
+ };
8
+ export declare const createAdhesivePlates: (state: GeometryState) => AdhesivePlate[];
9
+ export declare const createAirCorridor: (state: GeometryState, id: string, phase: number) => AirCorridor;
10
+ export declare const getRawAirPathPoint: (corridor: AirCorridor, progress: number) => Vector2D;
11
+ export declare const getAirPathPoint: (corridor: AirCorridor, progress: number) => Vector2D;
12
+ export declare const getAirPathTangent: (corridor: AirCorridor, progress: number) => Vector2D;
13
+ export {};
14
+ //# sourceMappingURL=AreaEnvironmentGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentGeometry.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAW,MAAM,wBAAwB,CAAC;AAElF,KAAK,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE/E,eAAO,MAAM,oBAAoB,GAAI,OAAO,aAAa,KAAG,aAAa,EAAgF,CAAC;AAsE1J,eAAO,MAAM,iBAAiB,GAAI,OAAO,aAAa,EAAE,IAAI,MAAM,EAAE,OAAO,MAAM,KAAG,WAuBnF,CAAC;AAgJF,eAAO,MAAM,kBAAkB,GAAI,UAAU,WAAW,EAAE,UAAU,MAAM,KAAG,QAS5E,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,UAAU,WAAW,EAAE,UAAU,MAAM,KAAG,QASzE,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,UAAU,WAAW,EAAE,UAAU,MAAM,KAAG,QACyI,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { AreaEnvironmentDefinition } from "../content/ContentTypes";
2
+ import type { EnemyEffectContext } from "../content/EnemyBehavior";
3
+ import type { EnemyEntity } from "../entities/EnemyEntity";
4
+ import type { Vector2D } from "../types/game";
5
+ import { AreaEnvironmentRuntimePayloads } from "./AreaEnvironmentRuntimePayloads";
6
+ import type { AreaEnvironmentSnapshot } from "./AreaEnvironmentTypes";
7
+ export type { AreaEnvironmentSnapshot } from "./AreaEnvironmentTypes";
8
+ export declare class AreaEnvironmentRuntime extends AreaEnvironmentRuntimePayloads {
9
+ setArea(definition: AreaEnvironmentDefinition | undefined, width: number, height: number): void;
10
+ getSnapshot(): AreaEnvironmentSnapshot;
11
+ getCoreMovementMultiplier(position: Vector2D, isSmasher?: boolean): number;
12
+ getCoreWindAtPosition(position: Vector2D, isSmasher?: boolean): Vector2D;
13
+ updateBeforePhysics(dt: number, enemies: EnemyEntity[], context: EnemyEffectContext, spawnEnemy?: (position: Vector2D, direction: Vector2D) => EnemyEntity | null): void;
14
+ resolveThrown(enemy: EnemyEntity, context: EnemyEffectContext): boolean;
15
+ resolveSmasherRelease(enemy: EnemyEntity, context: EnemyEffectContext): boolean;
16
+ private resolveEnvironmentTarget;
17
+ private configureGeometry;
18
+ private resetGeometry;
19
+ private geometryState;
20
+ private configureStructures;
21
+ private configureChargePad;
22
+ }
23
+ //# sourceMappingURL=AreaEnvironmentRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentRuntime.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAetE,qBAAa,sBAAuB,SAAQ,8BAA8B;IAC/D,OAAO,CAAC,UAAU,EAAE,yBAAyB,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAe/F,WAAW,IAAI,uBAAuB;IAgBtC,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,OAAe,GAAG,MAAM;IAKjF,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,GAAE,OAAe,GAAG,QAAQ;IAS/E,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI;IAYxK,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAIvE,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAItF,OAAO,CAAC,wBAAwB;IAOhC,OAAO,CAAC,iBAAiB;IASzB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;CAI7B"}
@@ -0,0 +1,22 @@
1
+ import type { EnemyEffectContext } from "../content/EnemyBehavior";
2
+ import type { EnemyEntity } from "../entities/EnemyEntity";
3
+ import { AreaEnvironmentRuntimeInteractions } from "./AreaEnvironmentRuntimeInteractions";
4
+ export declare abstract class AreaEnvironmentRuntimeAir extends AreaEnvironmentRuntimeInteractions {
5
+ protected airSpawnTimer: number | null;
6
+ protected airSequence: number;
7
+ protected updateEnvironmentalMotion(dt: number): void;
8
+ private updateAdhesiveMotion;
9
+ private updateAirCurrents;
10
+ private scheduleNextAir;
11
+ protected updateAirHazards(dt: number, context: EnemyEffectContext): void;
12
+ private updateToxicPools;
13
+ private updateMiasmaSeeds;
14
+ private markToxicCorridor;
15
+ private markMiasmaCorridor;
16
+ private propagateHazards;
17
+ protected updateMovementEffects(dt: number, enemies: EnemyEntity[], context: EnemyEffectContext): void;
18
+ private updateEnemyMovementEffect;
19
+ private applyWindEffects;
20
+ private resetEnemyEnvironment;
21
+ }
22
+ //# sourceMappingURL=AreaEnvironmentRuntimeAir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentRuntimeAir.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentRuntimeAir.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EAAE,kCAAkC,EAAE,MAAM,sCAAsC,CAAC;AAO1F,8BAAsB,yBAA0B,SAAQ,kCAAkC;IACtF,SAAS,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC9C,SAAS,CAAC,WAAW,SAAK;IAE1B,SAAS,CAAC,yBAAyB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKrD,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,eAAe;IASvB,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAOzE,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,iBAAiB;IAQzB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,gBAAgB;IAQxB,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAOtG,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,qBAAqB;CAOhC"}
@@ -0,0 +1,43 @@
1
+ import type { AreaEnvironmentDefinition } from "../content/ContentTypes";
2
+ import type { EnemyEffectContext } from "../content/EnemyBehavior";
3
+ import type { EnemyEntity } from "../entities/EnemyEntity";
4
+ import type { Vector2D } from "../types/game";
5
+ import type { AdhesivePlate, AirCorridor } from "./AreaEnvironmentTypes";
6
+ export declare abstract class AreaEnvironmentRuntimeInteractions {
7
+ protected definition: AreaEnvironmentDefinition | undefined;
8
+ protected width: number;
9
+ protected height: number;
10
+ protected adhesivePlates: AdhesivePlate[];
11
+ protected airCorridors: AirCorridor[];
12
+ protected environmentTime: number;
13
+ protected corePosition: Vector2D;
14
+ protected getAirWindAtPosition(position: Vector2D, additionalRadius: number): {
15
+ direction: Vector2D;
16
+ strength: number;
17
+ } | null;
18
+ protected applyAdhesive(enemy: EnemyEntity, dt: number): void;
19
+ protected getAdhesiveInfluence(position: Vector2D, padding?: number, selectedPlate?: AdhesivePlate, selectedDistance?: number): number;
20
+ protected applyAirCurrent(enemy: EnemyEntity, dt: number): {
21
+ corridor: AirCorridor;
22
+ progress: number;
23
+ } | null;
24
+ private getWindTargetSpeed;
25
+ protected applyAirToxin(enemy: EnemyEntity, selected: {
26
+ corridor: AirCorridor;
27
+ progress: number;
28
+ }, context: EnemyEffectContext): void;
29
+ protected applyAirCamouflage(enemy: EnemyEntity, selected: {
30
+ corridor: AirCorridor;
31
+ progress: number;
32
+ }): void;
33
+ protected findAirFlowAtPosition(position: Vector2D, additionalRadius: number): {
34
+ corridor: AirCorridor;
35
+ progress: number;
36
+ } | null;
37
+ private closestAirSample;
38
+ private isToxicSegment;
39
+ private isMiasmaSegment;
40
+ private distanceSquared;
41
+ private smoothstep;
42
+ }
43
+ //# sourceMappingURL=AreaEnvironmentRuntimeInteractions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentRuntimeInteractions.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentRuntimeInteractions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIzE,8BAAsB,kCAAkC;IACpD,SAAS,CAAC,UAAU,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAC5D,SAAS,CAAC,KAAK,SAAK;IACpB,SAAS,CAAC,MAAM,SAAK;IACrB,SAAS,CAAC,cAAc,EAAE,aAAa,EAAE,CAAM;IAC/C,SAAS,CAAC,YAAY,EAAE,WAAW,EAAE,CAAM;IAC3C,SAAS,CAAC,eAAe,SAAK;IAC9B,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAkB;IAElD,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,QAAQ,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM9H,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAU7D,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,SAAI,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;IASjI,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAmB7G,OAAO,CAAC,kBAAkB;IAK1B,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAUrI,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM7G,SAAS,CAAC,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,WAAW,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAejI,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,UAAU;CAIrB"}
@@ -0,0 +1,22 @@
1
+ import type { EnemyEffectContext } from "../content/EnemyBehavior";
2
+ import type { EnemyEntity } from "../entities/EnemyEntity";
3
+ import type { EnemyType } from "../types/game";
4
+ import { AreaEnvironmentRuntimeStructures } from "./AreaEnvironmentRuntimeStructures";
5
+ import type { EnvironmentPoint } from "./AreaEnvironmentTypes";
6
+ export declare abstract class AreaEnvironmentRuntimePayloads extends AreaEnvironmentRuntimeStructures {
7
+ protected chargePad: EnvironmentPoint | null;
8
+ protected organicReceptor: EnvironmentPoint | null;
9
+ protected storedChargeEffects: EnemyType[];
10
+ protected resolveChargeTargets(enemy: EnemyEntity, context: EnemyEffectContext): boolean;
11
+ private isInsidePoint;
12
+ private explodeChargePad;
13
+ private applyPayload;
14
+ private createSporePayload;
15
+ private createClusterPayload;
16
+ private createParasitePayload;
17
+ private createHeavyPayload;
18
+ private pushHeavyTarget;
19
+ private killInRadius;
20
+ protected consumeEnemy(enemy: EnemyEntity): void;
21
+ }
22
+ //# sourceMappingURL=AreaEnvironmentRuntimePayloads.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentRuntimePayloads.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentRuntimePayloads.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,eAAe,CAAC;AAEzD,OAAO,EAAE,gCAAgC,EAAE,MAAM,oCAAoC,CAAC;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,8BAAsB,8BAA+B,SAAQ,gCAAgC;IACzF,SAAS,CAAC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IACpD,SAAS,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC1D,SAAS,CAAC,mBAAmB,EAAE,SAAS,EAAE,CAAM;IAEhD,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAiBxF,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,YAAY;IASpB,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAMnD"}
@@ -0,0 +1,20 @@
1
+ import type { EnemyEffectContext } from "../content/EnemyBehavior";
2
+ import type { EnemyEntity } from "../entities/EnemyEntity";
3
+ import type { EnemyType, Vector2D } from "../types/game";
4
+ import { AreaEnvironmentRuntimeVariants } from "./AreaEnvironmentRuntimeVariants";
5
+ import type { StructureState } from "./AreaEnvironmentTypes";
6
+ export declare abstract class AreaEnvironmentRuntimeStructures extends AreaEnvironmentRuntimeVariants {
7
+ protected pulseTimer: number;
8
+ protected pulseTelegraph: number;
9
+ protected structures: StructureState[];
10
+ protected updatePulse(dt: number, enemies: EnemyEntity[], context: EnemyEffectContext): void;
11
+ private applyPulseImpulse;
12
+ protected createEnvironmentStructure(id: string, x: number, y: number, enemyType: EnemyType): StructureState;
13
+ protected updateStructures(dt: number, enemies: EnemyEntity[], spawnEnemy?: (position: Vector2D, direction: Vector2D) => EnemyEntity | null): void;
14
+ private updateStructureEmission;
15
+ protected resolveStructure(enemy: EnemyEntity, context: EnemyEffectContext): boolean;
16
+ private resolveStructureTarget;
17
+ private isInsideStructure;
18
+ protected abstract consumeEnemy(enemy: EnemyEntity): void;
19
+ }
20
+ //# sourceMappingURL=AreaEnvironmentRuntimeStructures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentRuntimeStructures.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentRuntimeStructures.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAIzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,8BAAsB,gCAAiC,SAAQ,8BAA8B;IACzF,SAAS,CAAC,UAAU,SAAM;IAC1B,SAAS,CAAC,cAAc,SAAK;IAC7B,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,CAAM;IAE5C,SAAS,CAAC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAc5F,OAAO,CAAC,iBAAiB;IAOzB,SAAS,CAAC,0BAA0B,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,cAAc;IAI5G,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,KAAK,WAAW,GAAG,IAAI,GAAG,IAAI;IAOlJ,OAAO,CAAC,uBAAuB;IAU/B,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO;IAUpF,OAAO,CAAC,sBAAsB;IAO9B,OAAO,CAAC,iBAAiB;IAIzB,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;CAC5D"}
@@ -0,0 +1,16 @@
1
+ import type { EnemyEntity } from "../entities/EnemyEntity";
2
+ import { AreaEnvironmentRuntimeAir } from "./AreaEnvironmentRuntimeAir";
3
+ import type { EnvironmentPoint, VariantSnapshot } from "./AreaEnvironmentTypes";
4
+ export declare abstract class AreaEnvironmentRuntimeVariants extends AreaEnvironmentRuntimeAir {
5
+ protected conversionField: EnvironmentPoint | null;
6
+ protected convertedVariants: Map<string, VariantSnapshot>;
7
+ protected updateConversion(enemies: EnemyEntity[]): void;
8
+ private updateEnemyConversion;
9
+ private isInsideConversionField;
10
+ private enterConversionField;
11
+ private leaveConversionField;
12
+ private clearDeadConversion;
13
+ private convertToMononreuronal;
14
+ private restoreVariant;
15
+ }
16
+ //# sourceMappingURL=AreaEnvironmentRuntimeVariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentRuntimeVariants.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentRuntimeVariants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEhF,8BAAsB,8BAA+B,SAAQ,yBAAyB;IAClF,SAAS,CAAC,eAAe,EAAE,gBAAgB,GAAG,IAAI,CAAQ;IAC1D,SAAS,CAAC,iBAAiB,+BAAsC;IAEjE,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI;IAOxD,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,uBAAuB;IAI/B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,sBAAsB;IAwB9B,OAAO,CAAC,cAAc;CAiBzB"}
@@ -0,0 +1,13 @@
1
+ import type { EnemyType } from "../types/game";
2
+ import type { StructureState } from "./AreaEnvironmentTypes";
3
+ type StructureConfig = {
4
+ id: string;
5
+ x: number;
6
+ y: number;
7
+ enemyType: EnemyType;
8
+ color: string;
9
+ symbol: string;
10
+ };
11
+ export declare const createStructure: (config: StructureConfig) => StructureState;
12
+ export {};
13
+ //# sourceMappingURL=AreaEnvironmentStructureGeometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentStructureGeometry.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentStructureGeometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,KAAK,eAAe,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjH,eAAO,MAAM,eAAe,GAAI,QAAQ,eAAe,KAAG,cAUxD,CAAC"}
@@ -0,0 +1,103 @@
1
+ import type { AreaEnvironmentDefinition } from "../content/ContentTypes";
2
+ import type { EnemyEntity } from "../entities/EnemyEntity";
3
+ import type { EnemyType, Vector2D } from "../types/game";
4
+ export type EnvironmentPoint = Vector2D & {
5
+ radius: number;
6
+ };
7
+ export type AirSide = "left" | "right" | "top" | "bottom";
8
+ export type AirCorridor = {
9
+ id: string;
10
+ x: number;
11
+ y: number;
12
+ width: number;
13
+ height: number;
14
+ direction: Vector2D;
15
+ baseDirection: Vector2D;
16
+ baseY: number;
17
+ phase: number;
18
+ frequency: number;
19
+ strength: number;
20
+ active: boolean;
21
+ age: number;
22
+ lifetime: number;
23
+ opacity: number;
24
+ looping: boolean;
25
+ revealProgress: number;
26
+ revealDuration: number;
27
+ sustainDuration: number;
28
+ fadeDuration: number;
29
+ spawnFromLeft: boolean;
30
+ startSide: AirSide;
31
+ endSide: AirSide;
32
+ pathStart: Vector2D;
33
+ pathControlIn: Vector2D;
34
+ pathCenter: Vector2D;
35
+ pathControlOut: Vector2D;
36
+ pathEnd: Vector2D;
37
+ coreCenter: Vector2D;
38
+ coreAvoidanceRadius: number;
39
+ toxicStartProgress: number | null;
40
+ toxicProgress: number;
41
+ toxicStrength: number;
42
+ miasmaStartProgress: number | null;
43
+ miasmaProgress: number;
44
+ miasmaStrength: number;
45
+ };
46
+ export type AdhesivePlate = {
47
+ id: string;
48
+ shape: "bubble" | "puddle" | "amoeba";
49
+ position: Vector2D;
50
+ radius: number;
51
+ baseRadius: number;
52
+ scaleX: number;
53
+ scaleY: number;
54
+ baseScaleX: number;
55
+ baseScaleY: number;
56
+ orbitCenter: Vector2D;
57
+ orbitRadius: Vector2D;
58
+ phase: number;
59
+ angularSpeed: number;
60
+ pulseFrequency: number;
61
+ };
62
+ export interface EnvironmentStructureVisual {
63
+ id: string;
64
+ position: Vector2D;
65
+ radius: number;
66
+ active: boolean;
67
+ enemyType: EnemyType;
68
+ color: string;
69
+ symbol: string;
70
+ emissionProgress: number;
71
+ }
72
+ export interface AreaEnvironmentSnapshot {
73
+ readonly kind: AreaEnvironmentDefinition["kind"] | null;
74
+ readonly motionTime: number;
75
+ readonly adhesivePlates: readonly AdhesivePlate[];
76
+ readonly airCorridors: readonly AirCorridor[];
77
+ readonly conversionField: EnvironmentPoint | null;
78
+ readonly structures: readonly EnvironmentStructureVisual[];
79
+ readonly chargePad: EnvironmentPoint | null;
80
+ readonly organicReceptor: EnvironmentPoint | null;
81
+ readonly pulseTelegraph: number;
82
+ readonly storedChargeEffects: readonly EnemyType[];
83
+ }
84
+ export interface StructureState extends EnvironmentStructureVisual {
85
+ emissionTimer: number;
86
+ }
87
+ export interface VariantSnapshot {
88
+ enemy: EnemyEntity;
89
+ variantId: string | null;
90
+ variantRendererId: string | null;
91
+ canBeManipulatedByCore: boolean;
92
+ isGrabbable: boolean;
93
+ canBeKilledByCoreRepelWave: boolean;
94
+ color: string;
95
+ accentColor: string | null;
96
+ eyeProfile: EnemyEntity["eyeProfile"];
97
+ visualProfile: EnemyEntity["visualProfile"];
98
+ variantPulseInterval: number;
99
+ blocksFrontImpacts: boolean;
100
+ frontCoverageArc: number;
101
+ frontCoverageRadiusMultiplier: number;
102
+ }
103
+ //# sourceMappingURL=AreaEnvironmentTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AreaEnvironmentTypes.d.ts","sourceRoot":"","sources":["../../src/areas/AreaEnvironmentTypes.ts"],"names":[],"mappings":"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"}