@gamebob/axon-surge 0.28.0 → 0.30.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 (108) hide show
  1. package/dist/axon-surge.js +4862 -1917
  2. package/dist/codex/DefaultCodex.d.ts.map +1 -1
  3. package/dist/config/GameConfig.d.ts +5 -0
  4. package/dist/config/GameConfig.d.ts.map +1 -1
  5. package/dist/content/ContentRegistry.d.ts +3 -2
  6. package/dist/content/ContentRegistry.d.ts.map +1 -1
  7. package/dist/content/ContentTypes.d.ts +31 -3
  8. package/dist/content/ContentTypes.d.ts.map +1 -1
  9. package/dist/content/DefaultContentRegistry.d.ts.map +1 -1
  10. package/dist/content/DefaultHeavyVariants.d.ts +3 -0
  11. package/dist/content/DefaultHeavyVariants.d.ts.map +1 -0
  12. package/dist/content/DefaultTutorials.d.ts +3 -0
  13. package/dist/content/DefaultTutorials.d.ts.map +1 -0
  14. package/dist/content/EnemyBehavior.d.ts +5 -0
  15. package/dist/content/EnemyBehavior.d.ts.map +1 -1
  16. package/dist/content/EnemyBehaviors.d.ts +5 -0
  17. package/dist/content/EnemyBehaviors.d.ts.map +1 -1
  18. package/dist/content/EnemyDefinitions.d.ts.map +1 -1
  19. package/dist/core/CoreInteractionController.d.ts +23 -0
  20. package/dist/core/CoreInteractionController.d.ts.map +1 -0
  21. package/dist/core/GameEngine.d.ts +17 -0
  22. package/dist/core/GameEngine.d.ts.map +1 -1
  23. package/dist/director/InteractiveTutorial.d.ts +27 -11
  24. package/dist/director/InteractiveTutorial.d.ts.map +1 -1
  25. package/dist/director/SpawnerPatterns.d.ts +8 -7
  26. package/dist/director/SpawnerPatterns.d.ts.map +1 -1
  27. package/dist/director/WaveDirector.d.ts +2 -0
  28. package/dist/director/WaveDirector.d.ts.map +1 -1
  29. package/dist/entities/CoreEntity.d.ts +23 -0
  30. package/dist/entities/CoreEntity.d.ts.map +1 -1
  31. package/dist/entities/EnemyEntity.d.ts +18 -0
  32. package/dist/entities/EnemyEntity.d.ts.map +1 -1
  33. package/dist/entities/RepelWaveProjectile.d.ts +25 -0
  34. package/dist/entities/RepelWaveProjectile.d.ts.map +1 -0
  35. package/dist/factory/EntityFactory.d.ts +10 -1
  36. package/dist/factory/EntityFactory.d.ts.map +1 -1
  37. package/dist/i18n/locales.d.ts +61 -0
  38. package/dist/i18n/locales.d.ts.map +1 -1
  39. package/dist/input/InputManager.d.ts +4 -0
  40. package/dist/input/InputManager.d.ts.map +1 -1
  41. package/dist/physics/EffectClusterer.d.ts.map +1 -1
  42. package/dist/physics/PhysicsEngine.d.ts +1 -1
  43. package/dist/physics/PhysicsEngine.d.ts.map +1 -1
  44. package/dist/physics/handlers/CoreCollisionHandler.d.ts +6 -0
  45. package/dist/physics/handlers/CoreCollisionHandler.d.ts.map +1 -1
  46. package/dist/physics/handlers/SmasherCollisionHandler.d.ts +9 -0
  47. package/dist/physics/handlers/SmasherCollisionHandler.d.ts.map +1 -0
  48. package/dist/physics/handlers/ThrownCollisionHandler.d.ts.map +1 -1
  49. package/dist/physics/handlers/VortexPhysicsHandler.d.ts.map +1 -1
  50. package/dist/powerups/PowerUpRegistry.d.ts +1 -1
  51. package/dist/powerups/PowerUpRegistry.d.ts.map +1 -1
  52. package/dist/powerups/PowerUpTypes.d.ts +1 -0
  53. package/dist/powerups/PowerUpTypes.d.ts.map +1 -1
  54. package/dist/progression/CoreProgressionTypes.d.ts +53 -0
  55. package/dist/progression/CoreProgressionTypes.d.ts.map +1 -0
  56. package/dist/progression/CoreRoster.d.ts +40 -0
  57. package/dist/progression/CoreRoster.d.ts.map +1 -0
  58. package/dist/progression/CoreRosterStorage.d.ts +9 -0
  59. package/dist/progression/CoreRosterStorage.d.ts.map +1 -0
  60. package/dist/progression/CoreRosterValidation.d.ts +3 -0
  61. package/dist/progression/CoreRosterValidation.d.ts.map +1 -0
  62. package/dist/progression/CoreWisdomPassives.d.ts +4 -0
  63. package/dist/progression/CoreWisdomPassives.d.ts.map +1 -0
  64. package/dist/progression/DefaultCoreRoster.d.ts +3 -0
  65. package/dist/progression/DefaultCoreRoster.d.ts.map +1 -0
  66. package/dist/progression/DefaultGeneticMemory.d.ts.map +1 -1
  67. package/dist/progression/GeneticMemory.d.ts +1 -0
  68. package/dist/progression/GeneticMemory.d.ts.map +1 -1
  69. package/dist/render/CanvasRenderer.d.ts +7 -1
  70. package/dist/render/CanvasRenderer.d.ts.map +1 -1
  71. package/dist/render/EnemyRenderer.d.ts +20 -0
  72. package/dist/render/EnemyRenderer.d.ts.map +1 -0
  73. package/dist/render/EnemyRendererRegistry.d.ts +11 -0
  74. package/dist/render/EnemyRendererRegistry.d.ts.map +1 -0
  75. package/dist/render/EnemyShapeRenderer.d.ts +1 -8
  76. package/dist/render/EnemyShapeRenderer.d.ts.map +1 -1
  77. package/dist/render/SmasherRenderer.d.ts +15 -0
  78. package/dist/render/SmasherRenderer.d.ts.map +1 -0
  79. package/dist/render/TutorialArrowRenderer.d.ts +2 -0
  80. package/dist/render/TutorialArrowRenderer.d.ts.map +1 -1
  81. package/dist/render/renderers/CircleEnemyRenderer.d.ts +5 -0
  82. package/dist/render/renderers/CircleEnemyRenderer.d.ts.map +1 -0
  83. package/dist/render/renderers/ClusterEnemyRenderer.d.ts +5 -0
  84. package/dist/render/renderers/ClusterEnemyRenderer.d.ts.map +1 -0
  85. package/dist/render/renderers/HeavyEnemyRenderer.d.ts +8 -0
  86. package/dist/render/renderers/HeavyEnemyRenderer.d.ts.map +1 -0
  87. package/dist/render/renderers/MononreuronalVisuals.d.ts +4 -0
  88. package/dist/render/renderers/MononreuronalVisuals.d.ts.map +1 -0
  89. package/dist/render/renderers/ParasiteEnemyRenderer.d.ts +5 -0
  90. package/dist/render/renderers/ParasiteEnemyRenderer.d.ts.map +1 -0
  91. package/dist/render/renderers/PiercerEnemyRenderer.d.ts +5 -0
  92. package/dist/render/renderers/PiercerEnemyRenderer.d.ts.map +1 -0
  93. package/dist/render/renderers/SporeEnemyRenderer.d.ts +5 -0
  94. package/dist/render/renderers/SporeEnemyRenderer.d.ts.map +1 -0
  95. package/dist/styles.css +1 -1
  96. package/dist/types/game.d.ts +1 -0
  97. package/dist/types/game.d.ts.map +1 -1
  98. package/dist/ui/CodexOverlay.d.ts.map +1 -1
  99. package/dist/ui/CodexVariantCanvas.d.ts +1 -0
  100. package/dist/ui/CodexVariantCanvas.d.ts.map +1 -1
  101. package/dist/ui/CoreRosterOverlay.d.ts +35 -0
  102. package/dist/ui/CoreRosterOverlay.d.ts.map +1 -0
  103. package/dist/ui/CoreRunSummaryOverlay.d.ts +18 -0
  104. package/dist/ui/CoreRunSummaryOverlay.d.ts.map +1 -0
  105. package/dist/ui/StartMenu.d.ts +4 -1
  106. package/dist/ui/StartMenu.d.ts.map +1 -1
  107. package/dist/ui/TutorialOverlay.d.ts.map +1 -1
  108. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultCodex.d.ts","sourceRoot":"","sources":["../../src/codex/DefaultCodex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EAGvB,MAAM,cAAc,CAAC;AA4DtB,eAAO,MAAM,qBAAqB,EAAE,SAAS,oBAAoB,EAMhE,CAAC"}
1
+ {"version":3,"file":"DefaultCodex.d.ts","sourceRoot":"","sources":["../../src/codex/DefaultCodex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,oBAAoB,EAGvB,MAAM,cAAc,CAAC;AAmEtB,eAAO,MAAM,qBAAqB,EAAE,SAAS,oBAAoB,EAMhE,CAAC"}
@@ -8,6 +8,11 @@ export interface CoreConfig {
8
8
  fragmentDeflectionLookahead: number;
9
9
  fragmentDeflectionSpeed: number;
10
10
  fragmentDeflectionCooldown: number;
11
+ repelWaveRadius: number;
12
+ repelProjectileSpeed: number;
13
+ repelLaunchSpeed: number;
14
+ smasherMaxImpacts: number;
15
+ smasherCooldown: number;
11
16
  }
12
17
  export interface ToxicPoolConfig {
13
18
  baseRadius: number;
@@ -1 +1 @@
1
- {"version":3,"file":"GameConfig.d.ts","sourceRoot":"","sources":["../../src/config/GameConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GameConfig.d.ts","sourceRoot":"","sources":["../../src/config/GameConfig.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { DefinitionRegistry } from "./DefinitionRegistry";
2
- import type { AreaDefinition, BossDefinition, BossRewardDefinition, ContentCatalog, CoreDefinition, EnemyDefinition, EnemyVariantDefinition, SpawnerPatternDefinition, SynergyDefinition } from "./ContentTypes";
2
+ import type { AreaDefinition, BossDefinition, BossRewardDefinition, ContentCatalog, CoreDefinition, EnemyDefinition, EnemyVariantDefinition, SpawnerPatternDefinition, SynergyDefinition, TutorialDefinition } from "./ContentTypes";
3
3
  import type { PowerUpDefinition } from "../powerups/PowerUpTypes";
4
4
  export declare class ContentRegistry {
5
5
  readonly enemies: DefinitionRegistry<EnemyDefinition>;
@@ -11,8 +11,9 @@ export declare class ContentRegistry {
11
11
  readonly bossRewards: DefinitionRegistry<BossRewardDefinition>;
12
12
  readonly cores: DefinitionRegistry<CoreDefinition>;
13
13
  readonly spawnerPatterns: DefinitionRegistry<SpawnerPatternDefinition>;
14
- readonly tutorial: ContentCatalog["tutorial"];
14
+ readonly tutorials: DefinitionRegistry<TutorialDefinition>;
15
15
  constructor(catalog?: ContentCatalog);
16
16
  validate(): void;
17
+ getTutorialForCore(coreId: string): TutorialDefinition | undefined;
17
18
  }
18
19
  //# sourceMappingURL=ContentRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentRegistry.d.ts","sourceRoot":"","sources":["../../src/content/ContentRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACR,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,qBAAa,eAAe;IACxB,SAAgB,OAAO,sCAAoD;IAC3E,SAAgB,QAAQ,6CAAmE;IAC3F,SAAgB,QAAQ,wCAAyD;IACjF,SAAgB,SAAS,wCAAwD;IACjF,SAAgB,KAAK,qCAAkD;IACvE,SAAgB,MAAM,qCAAkD;IACxE,SAAgB,WAAW,2CAA+D;IAC1F,SAAgB,KAAK,qCAAkD;IACvE,SAAgB,eAAe,+CAE7B;IACF,SAAgB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;gBAElC,OAAO,GAAE,cAAmB;IAaxC,QAAQ,IAAI,IAAI;CA+C1B"}
1
+ {"version":3,"file":"ContentRegistry.d.ts","sourceRoot":"","sources":["../../src/content/ContentRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EACR,cAAc,EACd,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,wBAAwB,EACxB,iBAAiB,EACjB,kBAAkB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,qBAAa,eAAe;IACxB,SAAgB,OAAO,sCAAoD;IAC3E,SAAgB,QAAQ,6CAAmE;IAC3F,SAAgB,QAAQ,wCAAyD;IACjF,SAAgB,SAAS,wCAAwD;IACjF,SAAgB,KAAK,qCAAkD;IACvE,SAAgB,MAAM,qCAAkD;IACxE,SAAgB,WAAW,2CAA+D;IAC1F,SAAgB,KAAK,qCAAkD;IACvE,SAAgB,eAAe,+CAE7B;IACF,SAAgB,SAAS,yCAA0D;gBAEhE,OAAO,GAAE,cAAmB;IAaxC,QAAQ,IAAI,IAAI;IAmEhB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;CAG5E"}
@@ -4,6 +4,8 @@ import type { PowerUpDefinition } from "../powerups/PowerUpTypes";
4
4
  import type { IdentifiedDefinition } from "./DefinitionRegistry";
5
5
  import type { EnemyBehavior } from "./EnemyBehavior";
6
6
  import type { Translations } from "../i18n/locales";
7
+ export type EnemyEyeProfile = "none" | "single-white" | "double-white-spore" | "single-black-hole" | "double-white-heavy" | "single-white-slit" | "single-white-open";
8
+ export type EnemyVisualProfile = "default" | "hooked-blade" | "silver-tip" | "miasma-spore" | "orbital-cluster" | "bulwark-heavy";
7
9
  export interface EnemyDefinition extends IdentifiedDefinition {
8
10
  readonly id: EnemyType;
9
11
  readonly speed: number;
@@ -11,6 +13,7 @@ export interface EnemyDefinition extends IdentifiedDefinition {
11
13
  readonly radius: number;
12
14
  readonly hitRadiusPadding?: number;
13
15
  readonly color: string;
16
+ readonly eyeProfile: EnemyEyeProfile;
14
17
  readonly canBeGrabbed: boolean;
15
18
  readonly initialRotation: "none" | "random";
16
19
  readonly impactStrategyFactory?: () => IImpactStrategy;
@@ -22,6 +25,25 @@ export interface EnemyDefinition extends IdentifiedDefinition {
22
25
  }
23
26
  export interface EnemyVariantDefinition extends IdentifiedDefinition {
24
27
  readonly baseEnemyId: EnemyType;
28
+ readonly titleKey: keyof Translations;
29
+ readonly descriptionKey: keyof Translations;
30
+ readonly rendererId: string;
31
+ readonly startAreaId: string;
32
+ readonly spawnChanceByArea: Readonly<Record<string, number>>;
33
+ readonly color?: string;
34
+ readonly accentColor?: string;
35
+ readonly eyeProfile?: EnemyEyeProfile;
36
+ readonly visualProfile?: EnemyVisualProfile;
37
+ readonly speedMultiplier?: number;
38
+ readonly maxSpeedMultiplier?: number;
39
+ readonly pulseInterval?: number;
40
+ readonly blocksFrontImpacts?: boolean;
41
+ readonly frontCoverageArc?: number;
42
+ readonly frontCoverageRadiusMultiplier?: number;
43
+ readonly behaviorOverrides?: Partial<EnemyBehavior>;
44
+ readonly canBeManipulatedByCore: boolean;
45
+ readonly canBeDamagedByCore: boolean;
46
+ readonly canBeKilledByCoreRepelWave: boolean;
25
47
  }
26
48
  export interface SynergyDefinition extends IdentifiedDefinition {
27
49
  readonly requiredIds: readonly string[];
@@ -65,8 +87,14 @@ export interface SpawnerPatternDefinition extends IdentifiedDefinition {
65
87
  readonly weight: number;
66
88
  }
67
89
  export interface TutorialDefinition {
68
- readonly launcherEnemyId: EnemyType;
69
- readonly targetEnemyId: EnemyType;
90
+ readonly id: string;
91
+ readonly coreId: string;
92
+ readonly mechanic: "launcher" | "repellent" | "smasher";
93
+ readonly primaryEnemyId: EnemyType;
94
+ readonly secondaryEnemyId: EnemyType;
95
+ readonly step1TextKey: keyof Translations;
96
+ readonly step2TextKey: keyof Translations;
97
+ readonly warningTextKey: keyof Translations;
70
98
  }
71
99
  export interface ContentCatalog {
72
100
  readonly enemies?: readonly EnemyDefinition[];
@@ -78,6 +106,6 @@ export interface ContentCatalog {
78
106
  readonly bossRewards?: readonly BossRewardDefinition[];
79
107
  readonly cores?: readonly CoreDefinition[];
80
108
  readonly spawnerPatterns?: readonly SpawnerPatternDefinition[];
81
- readonly tutorial?: TutorialDefinition;
109
+ readonly tutorials?: readonly TutorialDefinition[];
82
110
  }
83
111
  //# sourceMappingURL=ContentTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContentTypes.d.ts","sourceRoot":"","sources":["../../src/content/ContentTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IACzD,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,eAAe,CAAC;IACvD,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IAChE,QAAQ,CAAC,WAAW,EAAE,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC3D,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IACxD,QAAQ,CAAC,OAAO,EAAE,MAAM,YAAY,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,SAAS,SAAS,EAAE,CAAC;IAC5C,QAAQ,CAAC,kBAAkB,EAAE,SAAS,SAAS,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3D,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,YAAY,CAAC;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,YAAY,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAC9D,QAAQ,CAAC,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IAChD,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,cAAe,SAAQ,oBAAoB;IACxD,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,wBAAyB,SAAQ,oBAAoB;IAClE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,SAAS,SAAS,EAAE,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IAC/B,QAAQ,CAAC,eAAe,EAAE,SAAS,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,SAAS,CAAC;CACrC;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC5C,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IACvD,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC3C,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC/D,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC1C"}
1
+ {"version":3,"file":"ContentTypes.d.ts","sourceRoot":"","sources":["../../src/content/ContentTypes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultContentRegistry.d.ts","sourceRoot":"","sources":["../../src/content/DefaultContentRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,eAAO,MAAM,wBAAwB,iBAyEnC,CAAC"}
1
+ {"version":3,"file":"DefaultContentRegistry.d.ts","sourceRoot":"","sources":["../../src/content/DefaultContentRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAiJpD,eAAO,MAAM,wBAAwB,iBAiFnC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { EnemyVariantDefinition } from "./ContentTypes";
2
+ export declare const DEFAULT_HEAVY_VARIANTS: readonly EnemyVariantDefinition[];
3
+ //# sourceMappingURL=DefaultHeavyVariants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultHeavyVariants.d.ts","sourceRoot":"","sources":["../../src/content/DefaultHeavyVariants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAG7D,eAAO,MAAM,sBAAsB,EAAE,SAAS,sBAAsB,EAyBnE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TutorialDefinition } from "./ContentTypes";
2
+ export declare const DEFAULT_TUTORIALS: readonly TutorialDefinition[];
3
+ //# sourceMappingURL=DefaultTutorials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultTutorials.d.ts","sourceRoot":"","sources":["../../src/content/DefaultTutorials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,eAAO,MAAM,iBAAiB,EAAE,SAAS,kBAAkB,EA+B1D,CAAC"}
@@ -12,6 +12,10 @@ export interface EnemyUpdateContext {
12
12
  readonly dt: number;
13
13
  readonly enemies: readonly EnemyEntity[];
14
14
  readonly config: GameConfigData;
15
+ readonly shockwaves: Shockwave[];
16
+ readonly corePosition: Vector2D;
17
+ readonly width: number;
18
+ readonly height: number;
15
19
  }
16
20
  export interface EnemyEffectContext {
17
21
  readonly enemies: EnemyEntity[];
@@ -49,6 +53,7 @@ export interface EnemyBehavior {
49
53
  readonly canBeChainReactionTarget: boolean;
50
54
  readonly autoDeflectFromCore?: boolean;
51
55
  readonly onRelease?: (enemy: EnemyEntity, context: EnemyReleaseContext) => void;
56
+ readonly onUpdate?: (enemy: EnemyEntity, context: EnemyUpdateContext) => void;
52
57
  readonly onThrownUpdate?: (enemy: EnemyEntity, context: EnemyUpdateContext) => void;
53
58
  readonly onOutOfBounds?: (enemy: EnemyEntity, context: EnemyEffectContext) => void;
54
59
  readonly onCollision?: (context: EnemyCollisionContext) => boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyBehavior.d.ts","sourceRoot":"","sources":["../../src/content/EnemyBehavior.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EnemyBehavior.d.ts","sourceRoot":"","sources":["../../src/content/EnemyBehavior.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,9 @@
1
1
  import type { EnemyBehavior } from "./EnemyBehavior";
2
+ export declare const TRAITOR_BEHAVIOR_OVERRIDES: Partial<EnemyBehavior>;
3
+ export declare const CAMUFLAESPORE_BEHAVIOR_OVERRIDES: Partial<EnemyBehavior>;
4
+ export declare const ORBITAL_CLUSTER_BEHAVIOR_OVERRIDES: Partial<EnemyBehavior>;
5
+ export declare const BULWARK_BEHAVIOR_OVERRIDES: Partial<EnemyBehavior>;
6
+ export declare const ANTI_CHUCLADOR_BEHAVIOR_OVERRIDES: Partial<EnemyBehavior>;
2
7
  export declare const DEFAULT_ENEMY_BEHAVIORS: Record<string, EnemyBehavior>;
3
8
  export declare const getDefaultEnemyBehavior: (id: string) => EnemyBehavior;
4
9
  //# sourceMappingURL=EnemyBehaviors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyBehaviors.d.ts","sourceRoot":"","sources":["../../src/content/EnemyBehaviors.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACR,aAAa,EAMhB,MAAM,iBAAiB,CAAC;AA6QzB,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAoDjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,KAAG,aAMhD,CAAC"}
1
+ {"version":3,"file":"EnemyBehaviors.d.ts","sourceRoot":"","sources":["../../src/content/EnemyBehaviors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,aAAa,EAMhB,MAAM,iBAAiB,CAAC;AAwazB,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,aAAa,CAE7D,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,OAAO,CAAC,aAAa,CAEnE,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,OAAO,CAAC,aAAa,CAErE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,aAAa,CAE7D,CAAC;AA+DF,eAAO,MAAM,iCAAiC,EAAE,OAAO,CAAC,aAAa,CAGpE,CAAC;AASF,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAoDjE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,IAAI,MAAM,KAAG,aAMhD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyDefinitions.d.ts","sourceRoot":"","sources":["../../src/content/EnemyDefinitions.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,EAAE,SAAS,eAAe,EA+E/D,CAAC"}
1
+ {"version":3,"file":"EnemyDefinitions.d.ts","sourceRoot":"","sources":["../../src/content/EnemyDefinitions.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,yBAAyB,EAAE,SAAS,eAAe,EAqF/D,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { CoreEntity } from "../entities/CoreEntity";
2
+ import type { EnemyEntity } from "../entities/EnemyEntity";
3
+ import type { InputManager } from "../input/InputManager";
4
+ import type { CoreMechanic } from "../progression/CoreProgressionTypes";
5
+ import type { Vector2D } from "../types/game";
6
+ export interface CoreInteractionResult {
7
+ readonly mechanic: CoreMechanic;
8
+ readonly enemy?: EnemyEntity;
9
+ readonly waveOrigin?: Vector2D;
10
+ }
11
+ export declare class CoreInteractionController {
12
+ private readonly inputManager;
13
+ private readonly core;
14
+ private mechanic;
15
+ constructor(inputManager: InputManager, core: CoreEntity);
16
+ setMechanic(mechanic: CoreMechanic): void;
17
+ getMechanic(): CoreMechanic;
18
+ pointerDown(enemies: EnemyEntity[], isTouch: boolean): CoreInteractionResult | null;
19
+ resolveRepelWave(enemies: EnemyEntity[], origin: Vector2D, isTouch: boolean): readonly EnemyEntity[];
20
+ pointerUp(): EnemyEntity | null;
21
+ updateHover(pointerPosition: Vector2D, isActive: boolean, isTouch: boolean): void;
22
+ }
23
+ //# sourceMappingURL=CoreInteractionController.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoreInteractionController.d.ts","sourceRoot":"","sources":["../../src/core/CoreInteractionController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,WAAW,qBAAqB;IAClC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;CAClC;AAED,qBAAa,yBAAyB;IAI9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJzB,OAAO,CAAC,QAAQ,CAA4B;gBAGvB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,UAAU;IAG9B,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIzC,WAAW,IAAI,YAAY;IAI3B,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,OAAO,GAAG,qBAAqB,GAAG,IAAI;IAgBnF,gBAAgB,CACnB,OAAO,EAAE,WAAW,EAAE,EACtB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,GACjB,SAAS,WAAW,EAAE;IAclB,SAAS,IAAI,WAAW,GAAG,IAAI;IAM/B,WAAW,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;CAW3F"}
@@ -16,13 +16,16 @@ export declare class GameEngine {
16
16
  private eventBus;
17
17
  private gameLoop;
18
18
  private inputManager;
19
+ private coreInteraction;
19
20
  private physicsEngine;
20
21
  private waveDirector;
21
22
  private renderer;
22
23
  private juice;
23
24
  private hud;
24
25
  private startMenu;
26
+ private coreRosterOverlay;
25
27
  private geneticMemoryOverlay;
28
+ private coreRunSummaryOverlay;
26
29
  private codexOverlay;
27
30
  private codexToast;
28
31
  private settingsModal;
@@ -33,20 +36,26 @@ export declare class GameEngine {
33
36
  private readonly content;
34
37
  private readonly entityFactory;
35
38
  private readonly configManager;
39
+ private readonly corePreview;
36
40
  private readonly powerUpRegistry;
37
41
  private readonly geneticMemory;
42
+ private readonly coreRoster;
38
43
  private readonly codex;
39
44
  private readonly bossCodex;
40
45
  private readonly areaDirector;
41
46
  private readonly bossEncounter;
42
47
  private unsubscribeCodex;
43
48
  private unsubscribeBossCodex;
49
+ private unsubscribeCoreRoster;
44
50
  private core;
45
51
  private enemies;
46
52
  private ambientEnemies;
47
53
  private pools;
48
54
  private vortices;
49
55
  private shockwaves;
56
+ private repelProjectiles;
57
+ private pendingSmasherRelease;
58
+ private smasherBossImpactCooldown;
50
59
  private particles;
51
60
  private floatingTexts;
52
61
  private experienceOrbs;
@@ -68,6 +77,7 @@ export declare class GameEngine {
68
77
  private isPaused;
69
78
  private isDeathSequenceActive;
70
79
  private deathSequenceElapsed;
80
+ private pendingCoreRunSummary;
71
81
  private areaTransitionElapsed;
72
82
  private areaIntroElapsed;
73
83
  private readonly areaTransitionDuration;
@@ -81,10 +91,13 @@ export declare class GameEngine {
81
91
  getTheme(): Theme;
82
92
  private onLanguageChanged;
83
93
  private initAmbientArena;
94
+ private syncSelectedCorePreview;
84
95
  private resizeCanvas;
85
96
  private setupEvents;
86
97
  startGame(): void;
87
98
  private clearTransientRunState;
99
+ private updateRepelProjectiles;
100
+ private isRepelProjectileBlocked;
88
101
  private clearTransientRunEntities;
89
102
  private updateDeathSequence;
90
103
  private update;
@@ -92,6 +105,7 @@ export declare class GameEngine {
92
105
  private startBossIfReady;
93
106
  private clearArenaForBoss;
94
107
  private processBossImpacts;
108
+ private processSmasherBossImpact;
95
109
  private getBossImpactRadius;
96
110
  private releaseBossExposureBurst;
97
111
  private updateBossExposureBurst;
@@ -105,6 +119,9 @@ export declare class GameEngine {
105
119
  private triggerLevelUp;
106
120
  private presentNextLevelUp;
107
121
  private spawnExperienceDrops;
122
+ private recordEnemyObservation;
123
+ private recordEnemyObservations;
124
+ private isEnemyVisible;
108
125
  private updateExperienceOrbs;
109
126
  private updateEcosomaOrbs;
110
127
  private getEcosomaDropPolicy;
@@ -1 +1 @@
1
- {"version":3,"file":"GameEngine.d.ts","sourceRoot":"","sources":["../../src/core/GameEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GameEngine.d.ts","sourceRoot":"","sources":["../../src/core/GameEngine.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,40 @@
1
1
  import type { EnemyEntity } from "../entities/EnemyEntity";
2
2
  import type { EntityFactory } from "../factory/EntityFactory";
3
- import type { EnemyType } from "../types/game";
3
+ import type { TutorialDefinition } from "../content/ContentTypes";
4
+ import type { Vector2D } from "../types/game";
5
+ import type { Translations } from "../i18n/locales";
4
6
  export declare class InteractiveTutorial {
5
7
  private readonly factory;
6
- private readonly launcherType;
7
- private readonly targetType;
8
- constructor(factory: EntityFactory, launcherType: EnemyType, targetType: EnemyType);
8
+ private definition;
9
+ constructor(factory: EntityFactory, definition?: TutorialDefinition | null);
9
10
  isActive: boolean;
10
11
  showWarning: boolean;
11
- private dummyLauncher;
12
- private dummyTarget;
13
- private initialLauncherPos;
14
- private initialTargetPos;
12
+ private primary;
13
+ private secondary;
14
+ private initialPrimaryPos;
15
+ private initialSecondaryPos;
16
+ private readonly corePosition;
17
+ private waveTarget;
18
+ private repellentWaveElapsed;
19
+ setDefinition(definition: TutorialDefinition | null): void;
20
+ hasDefinition(): boolean;
15
21
  isTutorialEnabled(): boolean;
16
22
  setTutorialEnabled(enabled: boolean): void;
17
- getLauncher(): EnemyEntity | null;
18
- getTarget(): EnemyEntity | null;
23
+ getPrimary(): EnemyEntity | null;
24
+ getSecondary(): EnemyEntity | null;
25
+ getWaveTarget(): Vector2D | null;
26
+ getMechanic(): TutorialDefinition["mechanic"] | null;
19
27
  getStep(): 1 | 2;
28
+ getInstructionKey(): keyof Translations;
20
29
  start(width: number, height: number, activeEnemies: EnemyEntity[]): void;
21
- update(dt: number, enemies: EnemyEntity[], width: number, height: number, onComplete: () => void, onForceRelease?: () => void): void;
30
+ update(dt: number, enemies: EnemyEntity[], width: number, height: number, onComplete: () => void, onForceRelease: () => void): void;
31
+ private updateLauncher;
32
+ private updateRepellent;
33
+ private updateSmasher;
34
+ private startRepellent;
35
+ private startSmasher;
36
+ private createEnemy;
37
+ private isTooCloseToCore;
22
38
  private resetDummies;
23
39
  complete(): void;
24
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InteractiveTutorial.d.ts","sourceRoot":"","sources":["../../src/director/InteractiveTutorial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAI/C,qBAAa,mBAAmB;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAFV,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,SAAS,EACvB,UAAU,EAAE,SAAS;IAEnC,QAAQ,EAAE,OAAO,CAAS;IAC1B,WAAW,EAAE,OAAO,CAAS;IACpC,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,gBAAgB,CAA4B;IAE7C,iBAAiB,IAAI,OAAO;IAQ5B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAM1C,WAAW,IAAI,WAAW,GAAG,IAAI;IAIjC,SAAS,IAAI,WAAW,GAAG,IAAI;IAI/B,OAAO,IAAI,CAAC,GAAG,CAAC;IAUhB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI;IA+BxE,MAAM,CACT,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,IAAI,EACtB,cAAc,CAAC,EAAE,MAAM,IAAI,GAC5B,IAAI;IA0DP,OAAO,CAAC,YAAY;IAqBb,QAAQ,IAAI,IAAI;CAI1B"}
1
+ {"version":3,"file":"InteractiveTutorial.d.ts","sourceRoot":"","sources":["../../src/director/InteractiveTutorial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIpD,qBAAa,mBAAmB;IAExB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,UAAU;gBADD,OAAO,EAAE,aAAa,EAC/B,UAAU,GAAE,kBAAkB,GAAG,IAAW;IAGjD,QAAQ,UAAS;IACjB,WAAW,UAAS;IAC3B,OAAO,CAAC,OAAO,CAA4B;IAC3C,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,iBAAiB,CAA4B;IACrD,OAAO,CAAC,mBAAmB,CAA4B;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,UAAU,CAAyB;IAC3C,OAAO,CAAC,oBAAoB,CAAK;IAE1B,aAAa,CAAC,UAAU,EAAE,kBAAkB,GAAG,IAAI,GAAG,IAAI;IAK1D,aAAa,IAAI,OAAO;IAIxB,iBAAiB,IAAI,OAAO;IAQ5B,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAM1C,UAAU,IAAI,WAAW,GAAG,IAAI;IAIhC,YAAY,IAAI,WAAW,GAAG,IAAI;IAIlC,aAAa,IAAI,QAAQ,GAAG,IAAI;IAchC,WAAW,IAAI,kBAAkB,CAAC,UAAU,CAAC,GAAG,IAAI;IAIpD,OAAO,IAAI,CAAC,GAAG,CAAC;IAWhB,iBAAiB,IAAI,MAAM,YAAY;IAMvC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,GAAG,IAAI;IAoCxE,MAAM,CACT,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,WAAW,EAAE,EACtB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,IAAI,EACtB,cAAc,EAAE,MAAM,IAAI,GAC3B,IAAI;IAkBP,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,eAAe;IAyDvB,OAAO,CAAC,aAAa;IA4CrB,OAAO,CAAC,cAAc;IA8BtB,OAAO,CAAC,YAAY;IAoBpB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,YAAY;IA+Cb,QAAQ,IAAI,IAAI;CAQ1B"}
@@ -2,15 +2,16 @@ import type { EnemyEntity } from "../entities/EnemyEntity";
2
2
  import type { EnemyPool } from "../pool/EnemyPool";
3
3
  import type { EntityFactory } from "../factory/EntityFactory";
4
4
  import type { Vector2D, EnemyType } from "../types/game";
5
+ export type VariantResolver = (enemyId: EnemyType) => string | undefined;
5
6
  export declare class SpawnerPatterns {
6
7
  private static readonly algorithms;
7
- static spawn(factory: EntityFactory, pool: EnemyPool, algorithmId: string, enemyIds: readonly EnemyType[], corePos: Vector2D, width: number, height: number): EnemyEntity[];
8
+ static spawn(factory: EntityFactory, pool: EnemyPool, algorithmId: string, enemyIds: readonly EnemyType[], corePos: Vector2D, width: number, height: number, variantResolver?: VariantResolver): EnemyEntity[];
8
9
  static getOffscreenPosition(width: number, height: number): Vector2D;
9
- static spawnCircleOfDeath(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], corePos: Vector2D, width: number, height: number): EnemyEntity[];
10
- static spawnDenseCluster(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D): EnemyEntity[];
11
- static spawnSineSnake(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D): EnemyEntity[];
12
- static spawnDoubleSpiral(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D): EnemyEntity[];
13
- static spawnMarchingWall(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D): EnemyEntity[];
14
- static spawnCrossfireStreams(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D): EnemyEntity[];
10
+ static spawnCircleOfDeath(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], corePos: Vector2D, width: number, height: number, variantResolver?: VariantResolver): EnemyEntity[];
11
+ static spawnDenseCluster(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D, variantResolver?: VariantResolver): EnemyEntity[];
12
+ static spawnSineSnake(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D, variantResolver?: VariantResolver): EnemyEntity[];
13
+ static spawnDoubleSpiral(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D, variantResolver?: VariantResolver): EnemyEntity[];
14
+ static spawnMarchingWall(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D, variantResolver?: VariantResolver): EnemyEntity[];
15
+ static spawnCrossfireStreams(factory: EntityFactory, pool: EnemyPool, enemyIds: readonly EnemyType[], width: number, height: number, corePos: Vector2D, variantResolver?: VariantResolver): EnemyEntity[];
15
16
  }
16
17
  //# sourceMappingURL=SpawnerPatterns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpawnerPatterns.d.ts","sourceRoot":"","sources":["../../src/director/SpawnerPatterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAuBhC;WAEY,KAAK,CACf,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,WAAW,EAAE;WAMF,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ;WAS7D,kBAAkB,CAC5B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACf,WAAW,EAAE;WAuBF,iBAAiB,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,EAAE;WA+BF,cAAc,CACxB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,EAAE;WAiBF,iBAAiB,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,EAAE;WAkBF,iBAAiB,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,EAAE;WAsBF,qBAAqB,CAC/B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,EAAE;CAgBnB"}
1
+ {"version":3,"file":"SpawnerPatterns.d.ts","sourceRoot":"","sources":["../../src/director/SpawnerPatterns.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAEzD,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,CAAC;AAEzE,qBAAa,eAAe;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAwEhC;WAEY,KAAK,CACf,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;WAcF,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ;WAS7D,kBAAkB,CAC5B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;WA2BF,iBAAiB,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;WAoCF,cAAc,CACxB,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;WAsBF,iBAAiB,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;WAuBF,iBAAiB,CAC3B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;WA2BF,qBAAqB,CAC/B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,EACjB,eAAe,GAAE,eAAiC,GACnD,WAAW,EAAE;CA0BnB"}
@@ -31,6 +31,8 @@ export declare class WaveDirector {
31
31
  private getAvailablePatternEnemyIds;
32
32
  private getEnemyWeight;
33
33
  private getPatternWeight;
34
+ private getVariantResolver;
35
+ private selectVariantForSpawn;
34
36
  private applyFlockingBehaviors;
35
37
  }
36
38
  //# sourceMappingURL=WaveDirector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WaveDirector.d.ts","sourceRoot":"","sources":["../../src/director/WaveDirector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,YAAY;IAUjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAX1B,IAAI,EAAE,MAAM,CAAK;IACxB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,IAAI,CAA+B;gBAGtB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,eAAe,EACxB,WAAW,CAAC,EAAE,WAAW,YAAA;IAKvC,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAK1C,oBAAoB,IAAI,WAAW,CAAC,SAAS,CAAC;IAI9C,sBAAsB,IAAI,aAAa,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAM9E,MAAM,CACT,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,WAAW,EAAE,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,GAAG,IAAI;IAgCrB,OAAO,CAAC,gBAAgB;IAyBjB,eAAe,CAClB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,QAAQ,EACjB,eAAe,CAAC,EAAE,QAAQ,GAC3B,WAAW,GAAG,IAAI;IAmCrB,OAAO,CAAC,qBAAqB;IA6B7B,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,sBAAsB;CAqDjC"}
1
+ {"version":3,"file":"WaveDirector.d.ts","sourceRoot":"","sources":["../../src/director/WaveDirector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,qBAAa,YAAY;IAUjB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAX1B,IAAI,EAAE,MAAM,CAAK;IACxB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,IAAI,CAA+B;gBAGtB,OAAO,EAAE,aAAa,EACtB,OAAO,EAAE,eAAe,EACxB,WAAW,CAAC,EAAE,WAAW,YAAA;IAKvC,KAAK,IAAI,IAAI;IAOb,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI;IAK1C,oBAAoB,IAAI,WAAW,CAAC,SAAS,CAAC;IAI9C,sBAAsB,IAAI,aAAa,CAAC;QAAE,OAAO,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAM9E,MAAM,CACT,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,WAAW,EAAE,EAC5B,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,QAAQ,GAClB,WAAW,GAAG,IAAI;IAgCrB,OAAO,CAAC,gBAAgB;IA6BjB,eAAe,CAClB,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,QAAQ,EACjB,eAAe,CAAC,EAAE,QAAQ,GAC3B,WAAW,GAAG,IAAI;IAuCrB,OAAO,CAAC,qBAAqB;IA8B7B,OAAO,CAAC,4BAA4B;IAcpC,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,qBAAqB;IAkB7B,OAAO,CAAC,sBAAsB;CAqDjC"}
@@ -1,5 +1,6 @@
1
1
  import type { Vector2D } from "../types/game";
2
2
  import type { GameConfigManager } from "../config/GameConfig";
3
+ import type { CoreMechanic } from "../progression/CoreProgressionTypes";
3
4
  export declare class CoreEntity {
4
5
  private readonly configManager;
5
6
  position: Vector2D;
@@ -8,6 +9,17 @@ export declare class CoreEntity {
8
9
  maxIntegrity: number;
9
10
  pulsePhase: number;
10
11
  organicSeed: number;
12
+ mechanic: CoreMechanic;
13
+ repelDirection: Vector2D;
14
+ repelHoverDirection: Vector2D;
15
+ repelHoverCompression: number;
16
+ repelPulse: number;
17
+ smasherImpactsRemaining: number;
18
+ smasherCooldownTimer: number;
19
+ smasherImpactPulse: number;
20
+ smasherBreakPulse: number;
21
+ smasherRetractionOrigin: Vector2D | null;
22
+ smasherArmColor: string;
11
23
  invulnerabilityTimer: number;
12
24
  maxInvulnerabilityDuration: number;
13
25
  customColor: {
@@ -19,6 +31,17 @@ export declare class CoreEntity {
19
31
  collectedPowerUpColors: string[];
20
32
  constructor(x: number, y: number, configManager: GameConfigManager);
21
33
  absorbPowerUpColor(hexColor: string, weight?: number): void;
34
+ setMechanic(mechanic: CoreMechanic): void;
35
+ triggerRepel(direction: Vector2D): void;
36
+ setRepelHoverDirection(direction: Vector2D | null): void;
37
+ getRepelCompression(): number;
38
+ getRepelDirection(): Vector2D;
39
+ canSmasherGrab(): boolean;
40
+ consumeSmasherImpact(): boolean;
41
+ getSmasherArmStrength(): number;
42
+ startSmasherRetraction(origin: Vector2D, armColor: string): void;
43
+ getSmasherRetractionEndpoint(): Vector2D | null;
44
+ getSmasherArmColor(): string;
22
45
  getHitboxRadius(): number;
23
46
  getColorHex(): string;
24
47
  update(dt: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"CoreEntity.d.ts","sourceRoot":"","sources":["../../src/entities/CoreEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,qBAAa,UAAU;IAkBf,OAAO,CAAC,QAAQ,CAAC,aAAa;IAjB3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAK;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,oBAAoB,EAAE,MAAM,CAAK;IACjC,0BAA0B,EAAE,MAAM,CAAC;IAEnC,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAA4B;IAC5E,YAAY,EAAE,MAAM,CAAK;IACzB,sBAAsB,EAAE,MAAM,EAAE,CAAM;gBAGzC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACQ,aAAa,EAAE,iBAAiB;IAW9C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,IAAI;IAejE,eAAe,IAAI,MAAM;IAOzB,WAAW,IAAI,MAAM;IAOrB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAOxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOxC,cAAc,EAAE,MAAM,CAAK;IAE3B,aAAa,IAAI,OAAO;IAgBxB,IAAI,CAAC,MAAM,GAAE,MAAU,GAAG,OAAO;IASjC,UAAU,CAAC,MAAM,GAAE,MAAU,GAAG,IAAI;IAKpC,UAAU,IAAI,OAAO;IAYrB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAc3C"}
1
+ {"version":3,"file":"CoreEntity.d.ts","sourceRoot":"","sources":["../../src/entities/CoreEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAExE,qBAAa,UAAU;IA6Bf,OAAO,CAAC,QAAQ,CAAC,aAAa;IA5B3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAK;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAc;IACpC,cAAc,EAAE,QAAQ,CAAkB;IAC1C,mBAAmB,EAAE,QAAQ,CAAkB;IAC/C,qBAAqB,EAAE,MAAM,CAAK;IAClC,UAAU,EAAE,MAAM,CAAK;IACvB,uBAAuB,EAAE,MAAM,CAAK;IACpC,oBAAoB,EAAE,MAAM,CAAK;IACjC,kBAAkB,EAAE,MAAM,CAAK;IAC/B,iBAAiB,EAAE,MAAM,CAAK;IAC9B,uBAAuB,EAAE,QAAQ,GAAG,IAAI,CAAQ;IAChD,eAAe,EAAE,MAAM,CAAa;IAEpC,oBAAoB,EAAE,MAAM,CAAK;IACjC,0BAA0B,EAAE,MAAM,CAAC;IAEnC,WAAW,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAA4B;IAC5E,YAAY,EAAE,MAAM,CAAK;IACzB,sBAAsB,EAAE,MAAM,EAAE,CAAM;gBAGzC,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACQ,aAAa,EAAE,iBAAiB;IAW9C,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAa,GAAG,IAAI;IAejE,WAAW,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;IAIzC,YAAY,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAUvC,sBAAsB,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAcxD,mBAAmB,IAAI,MAAM;IAK7B,iBAAiB,IAAI,QAAQ;IAI7B,cAAc,IAAI,OAAO;IAQzB,oBAAoB,IAAI,OAAO;IAU/B,qBAAqB,IAAI,MAAM;IAK/B,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMhE,4BAA4B,IAAI,QAAQ,GAAG,IAAI;IAe/C,kBAAkB,IAAI,MAAM;IAI5B,eAAe,IAAI,MAAM;IAOzB,WAAW,IAAI,MAAM;IAOrB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAoBxB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAOxC,cAAc,EAAE,MAAM,CAAK;IAE3B,aAAa,IAAI,OAAO;IAgBxB,IAAI,CAAC,MAAM,GAAE,MAAU,GAAG,OAAO;IASjC,UAAU,CAAC,MAAM,GAAE,MAAU,GAAG,IAAI;IAKpC,UAAU,IAAI,OAAO;IAYrB,KAAK,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;CAwB3C"}
@@ -1,6 +1,7 @@
1
1
  import type { Vector2D, EnemyType } from "../types/game";
2
2
  import type { IImpactStrategy } from "../strategies/ImpactStrategy";
3
3
  import type { EnemyBehavior } from "../content/EnemyBehavior";
4
+ import type { EnemyEyeProfile, EnemyVisualProfile } from "../content/ContentTypes";
4
5
  export type DeathType = "none" | "dissolve" | "sliced";
5
6
  export type BossLaunchPhase = "none" | "outbound" | "reentry";
6
7
  export declare class EnemyEntity {
@@ -9,18 +10,33 @@ export declare class EnemyEntity {
9
10
  velocity: Vector2D;
10
11
  radius: number;
11
12
  type: EnemyType;
13
+ variantId: string | null;
14
+ variantRendererId: string | null;
12
15
  active: boolean;
13
16
  isGrabbed: boolean;
14
17
  isThrown: boolean;
15
18
  wasManipulated: boolean;
16
19
  isGrabbable: boolean;
20
+ canBeManipulatedByCore: boolean;
21
+ canBeDamagedByCore: boolean;
22
+ canBeKilledByCoreRepelWave: boolean;
17
23
  rotation: number;
18
24
  color: string;
25
+ accentColor: string | null;
26
+ eyeProfile: EnemyEyeProfile;
27
+ visualProfile: EnemyVisualProfile;
28
+ variantState: Record<string, number>;
29
+ variantTrail: Vector2D[];
19
30
  strategy: IImpactStrategy | null;
20
31
  behavior: EnemyBehavior;
21
32
  synergyKey: string;
22
33
  hitRadiusPadding: number;
23
34
  maxSpeed: number;
35
+ variantPulseInterval: number;
36
+ variantPulseTimer: number;
37
+ blocksFrontImpacts: boolean;
38
+ frontCoverageArc: number;
39
+ frontCoverageRadiusMultiplier: number;
24
40
  isStationaryShield: boolean;
25
41
  shieldAngle: number;
26
42
  launchDelay: number;
@@ -37,6 +53,8 @@ export declare class EnemyEntity {
37
53
  sliceAngle: number;
38
54
  constructor(id: string);
39
55
  getHitRadius(): number;
56
+ getFrontCoverageRadius(): number;
57
+ isFrontCoverageHit(approachAngle: number): boolean;
40
58
  triggerDissolveDeath(dropExperience?: boolean, sourceType?: EnemyType | null): void;
41
59
  triggerSliceDeath(angle: number, dropExperience?: boolean, sourceType?: EnemyType | null): void;
42
60
  update(dt: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"EnemyEntity.d.ts","sourceRoot":"","sources":["../../src/entities/EnemyEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAG9D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9D,qBAAa,WAAW;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAkB;IACpC,QAAQ,EAAE,QAAQ,CAAkB;IACpC,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,SAAS,CAAM;IACrB,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,cAAc,EAAE,OAAO,CAAS;IAChC,WAAW,EAAE,OAAO,CAAQ;IAC5B,QAAQ,EAAE,MAAM,CAAK;IACrB,KAAK,EAAE,MAAM,CAAa;IAC1B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAQ;IACxC,QAAQ,EAAE,aAAa,CAA0B;IACjD,UAAU,EAAE,MAAM,CAAM;IAExB,gBAAgB,EAAE,MAAM,CAAO;IAC/B,QAAQ,EAAE,MAAM,CAAO;IAEvB,kBAAkB,EAAE,OAAO,CAAS;IACpC,WAAW,EAAE,MAAM,CAAK;IACxB,WAAW,EAAE,MAAM,CAAK;IACxB,eAAe,EAAE,eAAe,CAAU;IAC1C,oBAAoB,EAAE,MAAM,CAAK;IACjC,qBAAqB,EAAE,OAAO,CAAS;IACvC,oBAAoB,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC9C,yBAAyB,EAAE,MAAM,CAAK;IACtC,sBAAsB,EAAE,MAAM,CAAK;IAEnC,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,SAAS,CAAU;IAC9B,UAAU,EAAE,MAAM,CAAK;IACvB,aAAa,EAAE,MAAM,CAAO;IAC5B,UAAU,EAAE,MAAM,CAAK;gBAElB,EAAE,EAAE,MAAM;IAIf,YAAY,IAAI,MAAM;IAItB,oBAAoB,CACvB,cAAc,GAAE,OAAe,EAC/B,UAAU,GAAE,SAAS,GAAG,IAAW,GACpC,IAAI;IAWA,iBAAiB,CACpB,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,OAAe,EAC/B,UAAU,GAAE,SAAS,GAAG,IAAW,GACpC,IAAI;IAYA,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAuCxB,KAAK,IAAI,IAAI;CA2BvB"}
1
+ {"version":3,"file":"EnemyEntity.d.ts","sourceRoot":"","sources":["../../src/entities/EnemyEntity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAEnF,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,UAAU,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;AAE9D,qBAAa,WAAW;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAkB;IACpC,QAAQ,EAAE,QAAQ,CAAkB;IACpC,MAAM,EAAE,MAAM,CAAM;IACpB,IAAI,EAAE,SAAS,CAAM;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAChC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAQ;IACxC,MAAM,EAAE,OAAO,CAAS;IACxB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,OAAO,CAAS;IAC1B,cAAc,EAAE,OAAO,CAAS;IAChC,WAAW,EAAE,OAAO,CAAQ;IAC5B,sBAAsB,EAAE,OAAO,CAAQ;IACvC,kBAAkB,EAAE,OAAO,CAAQ;IACnC,0BAA0B,EAAE,OAAO,CAAS;IAC5C,QAAQ,EAAE,MAAM,CAAK;IACrB,KAAK,EAAE,MAAM,CAAa;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAClC,UAAU,EAAE,eAAe,CAAU;IACrC,aAAa,EAAE,kBAAkB,CAAa;IAC9C,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAC1C,YAAY,EAAE,QAAQ,EAAE,CAAM;IAC9B,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAQ;IACxC,QAAQ,EAAE,aAAa,CAA0B;IACjD,UAAU,EAAE,MAAM,CAAM;IAExB,gBAAgB,EAAE,MAAM,CAAO;IAC/B,QAAQ,EAAE,MAAM,CAAO;IACvB,oBAAoB,EAAE,MAAM,CAAK;IACjC,iBAAiB,EAAE,MAAM,CAAK;IAC9B,kBAAkB,EAAE,OAAO,CAAS;IACpC,gBAAgB,EAAE,MAAM,CAAK;IAC7B,6BAA6B,EAAE,MAAM,CAAK;IAE1C,kBAAkB,EAAE,OAAO,CAAS;IACpC,WAAW,EAAE,MAAM,CAAK;IACxB,WAAW,EAAE,MAAM,CAAK;IACxB,eAAe,EAAE,eAAe,CAAU;IAC1C,oBAAoB,EAAE,MAAM,CAAK;IACjC,qBAAqB,EAAE,OAAO,CAAS;IACvC,oBAAoB,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC9C,yBAAyB,EAAE,MAAM,CAAK;IACtC,sBAAsB,EAAE,MAAM,CAAK;IAEnC,OAAO,EAAE,OAAO,CAAS;IACzB,SAAS,EAAE,SAAS,CAAU;IAC9B,UAAU,EAAE,MAAM,CAAK;IACvB,aAAa,EAAE,MAAM,CAAO;IAC5B,UAAU,EAAE,MAAM,CAAK;gBAElB,EAAE,EAAE,MAAM;IAIf,YAAY,IAAI,MAAM;IAItB,sBAAsB,IAAI,MAAM;IAIhC,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IASlD,oBAAoB,CACvB,cAAc,GAAE,OAAe,EAC/B,UAAU,GAAE,SAAS,GAAG,IAAW,GACpC,IAAI;IAWA,iBAAiB,CACpB,KAAK,EAAE,MAAM,EACb,cAAc,GAAE,OAAe,EAC/B,UAAU,GAAE,SAAS,GAAG,IAAW,GACpC,IAAI;IAYA,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAuCxB,KAAK,IAAI,IAAI;CA0CvB"}