@gamebob/axon-surge 0.58.0 → 0.60.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 (142) hide show
  1. package/dist/areas/AreaDirector.d.ts +4 -0
  2. package/dist/areas/AreaDirector.d.ts.map +1 -1
  3. package/dist/areas/AreaEnvironmentRuntime.d.ts.map +1 -1
  4. package/dist/axon-surge.js +9379 -7239
  5. package/dist/bosses/BossEncounter.d.ts +30 -83
  6. package/dist/bosses/BossEncounter.d.ts.map +1 -1
  7. package/dist/bosses/BossEncounterChromaticRuntime.d.ts +15 -0
  8. package/dist/bosses/BossEncounterChromaticRuntime.d.ts.map +1 -0
  9. package/dist/bosses/BossEncounterMarionetteCutting.d.ts +14 -0
  10. package/dist/bosses/BossEncounterMarionetteCutting.d.ts.map +1 -0
  11. package/dist/bosses/BossEncounterMarionetteRuntime.d.ts +68 -0
  12. package/dist/bosses/BossEncounterMarionetteRuntime.d.ts.map +1 -0
  13. package/dist/bosses/BossEncounterMarionetteSupport.d.ts +27 -0
  14. package/dist/bosses/BossEncounterMarionetteSupport.d.ts.map +1 -0
  15. package/dist/bosses/BossEncounterMarionetteView.d.ts +4 -0
  16. package/dist/bosses/BossEncounterMarionetteView.d.ts.map +1 -0
  17. package/dist/bosses/BossEncounterMarionetteWeaving.d.ts +22 -0
  18. package/dist/bosses/BossEncounterMarionetteWeaving.d.ts.map +1 -0
  19. package/dist/bosses/BossEncounterRuntime.d.ts +14 -5
  20. package/dist/bosses/BossEncounterRuntime.d.ts.map +1 -1
  21. package/dist/bosses/BossEncounterRuntimeHit.d.ts +11 -0
  22. package/dist/bosses/BossEncounterRuntimeHit.d.ts.map +1 -0
  23. package/dist/bosses/BossEncounterSimonRuntime.d.ts +15 -0
  24. package/dist/bosses/BossEncounterSimonRuntime.d.ts.map +1 -0
  25. package/dist/bosses/BossEncounterSpecialSnapshots.d.ts +4 -0
  26. package/dist/bosses/BossEncounterSpecialSnapshots.d.ts.map +1 -0
  27. package/dist/bosses/BossEncounterTargeting.d.ts +7 -0
  28. package/dist/bosses/BossEncounterTargeting.d.ts.map +1 -0
  29. package/dist/bosses/BossEncounterTentacleRuntime.d.ts +4 -0
  30. package/dist/bosses/BossEncounterTentacleRuntime.d.ts.map +1 -0
  31. package/dist/bosses/BossEncounterTypes.d.ts +176 -0
  32. package/dist/bosses/BossEncounterTypes.d.ts.map +1 -0
  33. package/dist/bosses/BossEncounterView.d.ts +9 -1
  34. package/dist/bosses/BossEncounterView.d.ts.map +1 -1
  35. package/dist/codex/DefaultBossCodex.d.ts.map +1 -1
  36. package/dist/content/ContentRegistry.d.ts +2 -0
  37. package/dist/content/ContentRegistry.d.ts.map +1 -1
  38. package/dist/content/ContentTypes.d.ts +29 -0
  39. package/dist/content/ContentTypes.d.ts.map +1 -1
  40. package/dist/content/DefaultAreaDefinitions.d.ts.map +1 -1
  41. package/dist/content/DefaultContentRegistry.d.ts.map +1 -1
  42. package/dist/content/VariantSpawnChances.d.ts +9 -0
  43. package/dist/content/VariantSpawnChances.d.ts.map +1 -0
  44. package/dist/core/BossImpactSupport.d.ts +7 -0
  45. package/dist/core/BossImpactSupport.d.ts.map +1 -0
  46. package/dist/core/BossRewardRuntime.d.ts +6 -0
  47. package/dist/core/BossRewardRuntime.d.ts.map +1 -0
  48. package/dist/core/GameEngineArenaSetup.d.ts +3 -0
  49. package/dist/core/GameEngineArenaSetup.d.ts.map +1 -0
  50. package/dist/core/GameEngineDebug.d.ts +5 -0
  51. package/dist/core/GameEngineDebug.d.ts.map +1 -1
  52. package/dist/core/GameEngineMethodsBossEncounter.d.ts +5 -0
  53. package/dist/core/GameEngineMethodsBossEncounter.d.ts.map +1 -0
  54. package/dist/core/GameEngineMethodsBossImpact.d.ts.map +1 -1
  55. package/dist/core/GameEngineMethodsBossRuntime.d.ts.map +1 -1
  56. package/dist/core/GameEngineMethodsMarionette.d.ts +5 -0
  57. package/dist/core/GameEngineMethodsMarionette.d.ts.map +1 -0
  58. package/dist/core/GameEngineMethodsOrbs.d.ts.map +1 -1
  59. package/dist/core/GameEngineMethodsPhysics.d.ts.map +1 -1
  60. package/dist/core/GameEngineMethodsProgress.d.ts +1 -0
  61. package/dist/core/GameEngineMethodsProgress.d.ts.map +1 -1
  62. package/dist/core/GameEngineMethodsStart.d.ts.map +1 -1
  63. package/dist/core/GameEngineMethodsUi.d.ts.map +1 -1
  64. package/dist/core/GameEngineMethodsUpdate.d.ts.map +1 -1
  65. package/dist/core/GameEngineState.d.ts +4 -1
  66. package/dist/core/GameEngineState.d.ts.map +1 -1
  67. package/dist/director/SpawnGeometry.d.ts +8 -0
  68. package/dist/director/SpawnGeometry.d.ts.map +1 -1
  69. package/dist/director/WaveDirector.d.ts +10 -1
  70. package/dist/director/WaveDirector.d.ts.map +1 -1
  71. package/dist/entities/BossCatalystOrb.d.ts +3 -1
  72. package/dist/entities/BossCatalystOrb.d.ts.map +1 -1
  73. package/dist/entities/BossDestructionSequence.d.ts +27 -0
  74. package/dist/entities/BossDestructionSequence.d.ts.map +1 -0
  75. package/dist/entities/BossPuppetControl.d.ts +4 -0
  76. package/dist/entities/BossPuppetControl.d.ts.map +1 -0
  77. package/dist/entities/EnemyEntity.d.ts +19 -0
  78. package/dist/entities/EnemyEntity.d.ts.map +1 -1
  79. package/dist/i18n/locales.d.ts +6 -0
  80. package/dist/i18n/locales.d.ts.map +1 -1
  81. package/dist/input/InputManager.d.ts +3 -2
  82. package/dist/input/InputManager.d.ts.map +1 -1
  83. package/dist/input/InputThrowCalculator.d.ts +6 -0
  84. package/dist/input/InputThrowCalculator.d.ts.map +1 -0
  85. package/dist/input/PointerTracker.d.ts +5 -0
  86. package/dist/input/PointerTracker.d.ts.map +1 -1
  87. package/dist/physics/handlers/CoreCollisionHandler.d.ts +1 -0
  88. package/dist/physics/handlers/CoreCollisionHandler.d.ts.map +1 -1
  89. package/dist/physics/handlers/LauncherThrownEffects.d.ts +1 -0
  90. package/dist/physics/handlers/LauncherThrownEffects.d.ts.map +1 -1
  91. package/dist/physics/handlers/SmasherCollisionHandler.d.ts +1 -0
  92. package/dist/physics/handlers/SmasherCollisionHandler.d.ts.map +1 -1
  93. package/dist/physics/handlers/ThrownCollisionGuards.d.ts +4 -0
  94. package/dist/physics/handlers/ThrownCollisionGuards.d.ts.map +1 -0
  95. package/dist/physics/handlers/ThrownCollisionRuntime.d.ts.map +1 -1
  96. package/dist/render/BossCamera.d.ts +17 -0
  97. package/dist/render/BossCamera.d.ts.map +1 -0
  98. package/dist/render/BossDestructionEffectRenderer.d.ts +9 -0
  99. package/dist/render/BossDestructionEffectRenderer.d.ts.map +1 -0
  100. package/dist/render/BossEncounterRenderer.d.ts +3 -0
  101. package/dist/render/BossEncounterRenderer.d.ts.map +1 -1
  102. package/dist/render/BossIntroRenderer.d.ts +13 -0
  103. package/dist/render/BossIntroRenderer.d.ts.map +1 -1
  104. package/dist/render/CanvasRenderFoundation.d.ts +2 -0
  105. package/dist/render/CanvasRenderFoundation.d.ts.map +1 -1
  106. package/dist/render/CanvasRenderer.d.ts +8 -0
  107. package/dist/render/CanvasRenderer.d.ts.map +1 -1
  108. package/dist/render/CanvasRendererDrawings.d.ts +2 -0
  109. package/dist/render/CanvasRendererDrawings.d.ts.map +1 -1
  110. package/dist/render/CollectibleRenderer.d.ts +1 -0
  111. package/dist/render/CollectibleRenderer.d.ts.map +1 -1
  112. package/dist/render/CoreLifeRingRenderer.d.ts +1 -1
  113. package/dist/render/CoreLifeRingRenderer.d.ts.map +1 -1
  114. package/dist/render/InteractionParticleRenderer.d.ts +1 -0
  115. package/dist/render/InteractionParticleRenderer.d.ts.map +1 -1
  116. package/dist/render/MarionetistaDetailedRenderer.d.ts +4 -0
  117. package/dist/render/MarionetistaDetailedRenderer.d.ts.map +1 -0
  118. package/dist/render/MarionetistaRenderer.d.ts +39 -0
  119. package/dist/render/MarionetistaRenderer.d.ts.map +1 -0
  120. package/dist/render/MarionetistaVisuals.d.ts +28 -0
  121. package/dist/render/MarionetistaVisuals.d.ts.map +1 -0
  122. package/dist/render/OrganicLifeRingPath.d.ts +14 -0
  123. package/dist/render/OrganicLifeRingPath.d.ts.map +1 -0
  124. package/dist/render/PintalotodoRenderer.d.ts +36 -0
  125. package/dist/render/PintalotodoRenderer.d.ts.map +1 -0
  126. package/dist/render/PintalotodoStarRenderer.d.ts +19 -0
  127. package/dist/render/PintalotodoStarRenderer.d.ts.map +1 -0
  128. package/dist/render/SimonDestructionExplosion.d.ts +10 -0
  129. package/dist/render/SimonDestructionExplosion.d.ts.map +1 -0
  130. package/dist/render/SimonDestructionRenderer.d.ts +9 -0
  131. package/dist/render/SimonDestructionRenderer.d.ts.map +1 -0
  132. package/dist/render/SimonDestructionRings.d.ts +19 -0
  133. package/dist/render/SimonDestructionRings.d.ts.map +1 -0
  134. package/dist/render/SimonRenderer.d.ts +31 -0
  135. package/dist/render/SimonRenderer.d.ts.map +1 -0
  136. package/dist/render/SimonRendererHelpers.d.ts +16 -0
  137. package/dist/render/SimonRendererHelpers.d.ts.map +1 -0
  138. package/dist/ui/BossCodexCanvas.d.ts +11 -1
  139. package/dist/ui/BossCodexCanvas.d.ts.map +1 -1
  140. package/dist/ui/CodexCanvasFactories.d.ts +1 -1
  141. package/dist/ui/CodexCanvasFactories.d.ts.map +1 -1
  142. package/package.json +1 -1
@@ -1,89 +1,18 @@
1
- import type { BossDefinition } from "../content/ContentTypes";
2
1
  import type { BossStartOptions } from "./BossEncounterRuntime";
3
2
  import type { EnemyType, Vector2D } from "../types/game";
4
3
  import type { BossEncounterView } from "./BossEncounterView";
5
4
  import { type BossEncounterFactory } from "./BossEncounterFactory";
6
- export type BossPhase = "inactive" | "intro" | "tentacles" | "exposed" | "defeated";
7
- export interface BossTentacleSnapshot {
8
- readonly id: string;
9
- readonly basePosition: Vector2D;
10
- readonly tipPosition: Vector2D;
11
- readonly requiredEnemyId: EnemyType;
12
- readonly tipColor: string;
13
- readonly protected: boolean;
14
- readonly launchPulse: number;
15
- readonly regenerationProgress: number;
16
- }
17
- export interface BossTentacleTarget {
18
- readonly enemyId: EnemyType;
19
- readonly color: string;
20
- }
21
- export interface BossLaunchRequest {
22
- readonly tentacleId: string;
23
- readonly origin: Vector2D;
24
- readonly direction: Vector2D;
25
- }
26
- export interface BossEncounterSnapshot {
27
- readonly id: string;
28
- readonly title: string;
29
- readonly versusLabel: string;
30
- readonly phase: BossPhase;
31
- readonly introProgress: number;
32
- readonly introMotionProgress: number;
33
- readonly introPauseActive: boolean;
34
- readonly introPauseProgress: number;
35
- readonly combatEntryProgress: number;
36
- readonly bossPosition: Vector2D;
37
- readonly headPosition: Vector2D;
38
- readonly headLaunchPulse: number;
39
- readonly headLaunchSide: -1 | 1;
40
- readonly tentacles: readonly BossTentacleSnapshot[];
41
- readonly exposureProgress: number;
42
- readonly integrity: number;
43
- readonly maxIntegrity: number;
44
- readonly impactPulse: number;
45
- }
46
- export type BossHitResult = "none" | "area-impact" | "tentacle-broken" | "boss-damaged" | "defeated";
47
- export interface MutableTentacle {
48
- id: string;
49
- index: number;
50
- requiredEnemyId: EnemyType;
51
- tipColor: string;
52
- protected: boolean;
53
- launchPulse: number;
54
- regenerationProgress: number;
55
- }
56
- export interface BossEncounterState {
57
- definition: BossDefinition | null;
58
- phase: BossPhase;
59
- tentacles: MutableTentacle[];
60
- exposureRemaining: number;
61
- integrity: number;
62
- maxIntegrity: number;
63
- impactPulse: number;
64
- introElapsed: number;
65
- introDuration: number;
66
- introTravelElapsed: number;
67
- introPauseElapsed: number;
68
- introPauseActive: boolean;
69
- introPauseCompleted: boolean;
70
- readonly introPreludeDuration: number;
71
- readonly introPauseDuration: number;
72
- launchCooldown: number;
73
- movementTime: number;
74
- combatEntryElapsed: number;
75
- readonly combatEntryDuration: number;
76
- readonly combatEntryDelay: number;
77
- arenaWidth: number;
78
- arenaHeight: number;
79
- title: string;
80
- versusLabel: string;
81
- targetCandidates: BossTentacleTarget[];
82
- headLaunchPulse: number;
83
- headLaunchSide: -1 | 1;
84
- regenerationElapsed: number;
85
- regenerationActive: boolean;
86
- }
5
+ import type { MarionetteEnemySnapshot, MarionetteEncounterState, MarionetteEvent } from "./BossEncounterMarionetteRuntime";
6
+ import type { BossEncounterSnapshot, BossEncounterState, BossHitResult, BossLaunchRequest, BossPhase, BossTentacleTarget, MutableTentacle, SimonEncounterState } from "./BossEncounterTypes";
7
+ import type { BossDefinition } from "../content/ContentTypes";
8
+ export type { BossEncounterSnapshot, BossEncounterState, BossHitResult, BossLaunchRequest, BossPhase, BossPigmentSnapshot, BossTentacleSnapshot, BossTentacleTarget, MarionetteEncounterSnapshot, MarionetteThreadSnapshot, MutableTentacle, SimonEncounterSnapshot, } from "./BossEncounterTypes";
9
+ export declare const MARIONETTE_INTRO_TIMELINE: {
10
+ readonly enterStart: 0.4;
11
+ readonly enterEnd: 2.2;
12
+ readonly centerHoldEnd: 3.7;
13
+ readonly exitEnd: 5.2;
14
+ readonly saluteEnd: 8.8;
15
+ };
87
16
  export declare class BossEncounter implements BossEncounterState {
88
17
  definition: BossDefinition | null;
89
18
  phase: BossPhase;
@@ -110,22 +39,40 @@ export declare class BossEncounter implements BossEncounterState {
110
39
  title: string;
111
40
  versusLabel: string;
112
41
  targetCandidates: BossTentacleTarget[];
42
+ pigmentTargets: BossTentacleTarget[];
43
+ activePigment: BossTentacleTarget | null;
44
+ pigmentCharge: number;
45
+ pigmentMaxCharge: number;
46
+ pigmentPulse: number;
47
+ pigmentMorphProgress: number;
48
+ pigmentLaunchElapsed: number;
49
+ pigmentCycle: number;
50
+ pigmentStars: number[];
51
+ pigmentStarExplosionPulse: number;
52
+ pigmentStarExplosionIndex: number;
113
53
  headLaunchPulse: number;
114
54
  headLaunchSide: -1 | 1;
115
55
  regenerationElapsed: number;
116
56
  regenerationActive: boolean;
57
+ marionette: MarionetteEncounterState | null;
58
+ simon: SimonEncounterState | null;
117
59
  readonly view: BossEncounterView;
118
60
  private readonly runtime;
119
61
  constructor(factory?: BossEncounterFactory);
120
62
  start(options: BossStartOptions): void;
121
63
  start(definition: BossDefinition): void;
122
64
  reset(): void;
123
- update(dt: number, corePosition?: Vector2D): BossLaunchRequest | null;
65
+ private resetCombatState;
66
+ private resetPigmentState;
67
+ update(dt: number, corePosition?: Vector2D, marionetteEnemies?: readonly MarionetteEnemySnapshot[]): BossLaunchRequest | null;
124
68
  hit(position: Vector2D, type: EnemyType, corePosition: Vector2D): BossHitResult;
125
69
  getPhase(): BossPhase;
126
70
  isIntroPaused(): boolean;
127
71
  getBossPosition(corePosition: Vector2D): Vector2D;
128
72
  getSnapshot(corePosition: Vector2D): BossEncounterSnapshot | null;
129
73
  launchFromHead(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
74
+ launchFromBody(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
75
+ getMarionetteControlIds(): ReadonlySet<string>;
76
+ drainMarionetteEvents(): MarionetteEvent[];
130
77
  }
131
78
  //# sourceMappingURL=BossEncounter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BossEncounter.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BossEncounter.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { BossDefinition } from "../content/ContentTypes";
2
+ import type { EnemyType, Vector2D } from "../types/game";
3
+ import type { BossEncounterState, BossHitResult, BossLaunchRequest, BossTentacleTarget } from "./BossEncounter";
4
+ import type { BossEncounterView } from "./BossEncounterView";
5
+ type PigmentHitOptions = {
6
+ position: Vector2D;
7
+ type: EnemyType;
8
+ corePosition: Vector2D;
9
+ };
10
+ export declare function buildPigmentState(encounter: BossEncounterState, definition: BossDefinition, candidates: readonly BossTentacleTarget[]): void;
11
+ export declare function updatePigmentCharging(encounter: BossEncounterState, view: BossEncounterView, dt: number, corePosition: Vector2D): BossLaunchRequest | null;
12
+ export declare function updatePigmentExposure(encounter: BossEncounterState, dt: number): void;
13
+ export declare function hitPigment(encounter: BossEncounterState, view: BossEncounterView, options: PigmentHitOptions): BossHitResult;
14
+ export {};
15
+ //# sourceMappingURL=BossEncounterChromaticRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterChromaticRuntime.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterChromaticRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAChH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,KAAK,iBAAiB,GAAG;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,QAAQ,CAAA;CAAE,CAAC;AAIzF,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,kBAAkB,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,CAY5I;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,iBAAiB,GAAG,IAAI,CAO1J;AAkBD,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAMrF;AAED,wBAAgB,UAAU,CAAC,SAAS,EAAE,kBAAkB,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAM5H"}
@@ -0,0 +1,14 @@
1
+ import type { BossDefinition } from "../content/ContentTypes";
2
+ import type { Vector2D } from "../types/game";
3
+ import type { BossEncounterState } from "./BossEncounterTypes";
4
+ import type { MarionetteEncounterState, MarionetteEnemySnapshot } from "./BossEncounterMarionetteRuntime";
5
+ type MarionetteConfig = NonNullable<BossDefinition["marionette"]>;
6
+ export declare function processThreadCuts(context: {
7
+ readonly encounter: BossEncounterState;
8
+ readonly state: MarionetteEncounterState;
9
+ readonly config: MarionetteConfig;
10
+ readonly enemies: readonly MarionetteEnemySnapshot[];
11
+ readonly bossPosition: Vector2D;
12
+ }): void;
13
+ export {};
14
+ //# sourceMappingURL=BossEncounterMarionetteCutting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterMarionetteCutting.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterMarionetteCutting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAyB,MAAM,kCAAkC,CAAC;AAGjI,KAAK,gBAAgB,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACvC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACnC,GAAG,IAAI,CAqBP"}
@@ -0,0 +1,68 @@
1
+ import type { BossDefinition } from "../content/ContentTypes";
2
+ import type { EnemyType, Vector2D } from "../types/game";
3
+ import type { BossEncounterState, BossHitResult, BossLaunchRequest } from "./BossEncounterTypes";
4
+ import type { BossEncounterView } from "./BossEncounterView";
5
+ export interface MarionetteEnemySnapshot {
6
+ readonly id: string;
7
+ readonly type: EnemyType;
8
+ readonly position: Vector2D;
9
+ readonly active: boolean;
10
+ readonly isDying: boolean;
11
+ readonly isGrabbed: boolean;
12
+ readonly isThrown: boolean;
13
+ readonly wasManipulated: boolean;
14
+ readonly launchDelay: number;
15
+ }
16
+ type MarionetteWeavePhase = "idle" | "connect" | "retreat";
17
+ export interface MarionetteThreadState {
18
+ readonly id: string;
19
+ readonly enemyId: string;
20
+ readonly waveSeed: number;
21
+ endpoint: Vector2D;
22
+ cutPulse: number;
23
+ }
24
+ export interface MarionetteEncounterState {
25
+ act: number;
26
+ totalActs: number;
27
+ cutsThisAct: number;
28
+ replacementCount: number;
29
+ pendingReinforcements: number;
30
+ replacementWarning: number;
31
+ stunRemaining: number;
32
+ stunDuration: number;
33
+ exposureRemaining: number;
34
+ pressureElapsed: number;
35
+ danceTime: number;
36
+ bossPosition: Vector2D | null;
37
+ weaveTargetId: string | null;
38
+ weaveTargetPosition: Vector2D | null;
39
+ weavePhase: MarionetteWeavePhase;
40
+ weaveElapsed: number;
41
+ weaveProgress: number;
42
+ weaveFingerIndex: number;
43
+ weaveCooldown: number;
44
+ threadSerial: number;
45
+ spawnSerial: number;
46
+ threads: MarionetteThreadState[];
47
+ previousEnemyPositions: Record<string, Vector2D>;
48
+ events: MarionetteEvent[];
49
+ }
50
+ export interface MarionetteEvent {
51
+ readonly type: "thread-cut" | "exposure-opened";
52
+ readonly position: Vector2D;
53
+ readonly enemyId?: string;
54
+ readonly longExposure?: boolean;
55
+ }
56
+ export declare function createMarionetteState(definition: BossDefinition): MarionetteEncounterState;
57
+ export declare function updateMarionette(context: {
58
+ readonly encounter: BossEncounterState;
59
+ readonly view: BossEncounterView;
60
+ readonly dt: number;
61
+ readonly corePosition: Vector2D;
62
+ readonly enemies: readonly MarionetteEnemySnapshot[];
63
+ }): BossLaunchRequest | null;
64
+ export declare function hitMarionette(encounter: BossEncounterState, view: BossEncounterView, position: Vector2D, corePosition: Vector2D): BossHitResult;
65
+ export declare function getMarionetteControlIds(state: MarionetteEncounterState | null): ReadonlySet<string>;
66
+ export declare function drainMarionetteEvents(state: MarionetteEncounterState | null): MarionetteEvent[];
67
+ export {};
68
+ //# sourceMappingURL=BossEncounterMarionetteRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterMarionetteRuntime.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterMarionetteRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { BossDefinition } from "../content/ContentTypes";
2
+ import type { Vector2D } from "../types/game";
3
+ import type { BossEncounterState, BossLaunchRequest } from "./BossEncounterTypes";
4
+ import type { MarionetteEncounterState, MarionetteEnemySnapshot } from "./BossEncounterMarionetteRuntime";
5
+ type MarionetteConfig = NonNullable<BossDefinition["marionette"]>;
6
+ export interface MarionetteExposureContext {
7
+ readonly encounter: BossEncounterState;
8
+ readonly state: MarionetteEncounterState;
9
+ readonly config: MarionetteConfig;
10
+ readonly dt: number;
11
+ readonly corePosition: Vector2D;
12
+ readonly enemies: readonly MarionetteEnemySnapshot[];
13
+ }
14
+ export declare function updateExposure(context: MarionetteExposureContext): BossLaunchRequest | null;
15
+ export declare function maybeSpawnFreeReinforcement(context: MarionetteExposureContext): BossLaunchRequest | null;
16
+ export declare function createReinforcementLaunch(encounter: BossEncounterState, corePosition: Vector2D, index: number): BossLaunchRequest;
17
+ export declare function getActiveThreadLimit(config: MarionetteConfig, act: number): number;
18
+ export declare function getActValue(values: readonly number[], act: number, fallback: number): number;
19
+ export declare function isBindCandidate(enemy: MarionetteEnemySnapshot): boolean;
20
+ export declare function isCuttingCandidate(enemy: MarionetteEnemySnapshot): boolean;
21
+ export declare function isInsideCombatArena(position: Vector2D, width: number, height: number): boolean;
22
+ export declare function distanceSquared(left: Vector2D, right: Vector2D): number;
23
+ export declare function pruneStaleThreads(state: MarionetteEncounterState, enemies: readonly MarionetteEnemySnapshot[]): void;
24
+ export declare function updateThreadEndpoints(state: MarionetteEncounterState, enemies: readonly MarionetteEnemySnapshot[]): void;
25
+ export declare function rememberEnemyPositions(state: MarionetteEncounterState, enemies: readonly MarionetteEnemySnapshot[]): void;
26
+ export {};
27
+ //# sourceMappingURL=BossEncounterMarionetteSupport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterMarionetteSupport.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterMarionetteSupport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAE1G,KAAK,gBAAgB,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;AAElE,MAAM,WAAW,yBAAyB;IACtC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;CACxD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,GAAG,IAAI,CAQ3F;AA4BD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,GAAG,IAAI,CAOxG;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,iBAAiB,CAWjI;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlF;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAEvE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAE1E;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAG9F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,MAAM,CAIvE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAQpH;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAOxH;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,wBAAwB,EAAE,OAAO,EAAE,SAAS,uBAAuB,EAAE,GAAG,IAAI,CAIzH"}
@@ -0,0 +1,4 @@
1
+ import type { Vector2D } from "../types/game";
2
+ import type { BossEncounterSnapshot, BossEncounterState } from "./BossEncounterTypes";
3
+ export declare function createMarionetteSnapshot(state: BossEncounterState, corePosition: Vector2D, bossPosition: Vector2D): BossEncounterSnapshot["marionette"];
4
+ //# sourceMappingURL=BossEncounterMarionetteView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterMarionetteView.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterMarionetteView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAEtF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,GAAG,qBAAqB,CAAC,YAAY,CAAC,CA2BvJ"}
@@ -0,0 +1,22 @@
1
+ import type { BossDefinition } from "../content/ContentTypes";
2
+ import type { Vector2D } from "../types/game";
3
+ import type { MarionetteEncounterState, MarionetteEnemySnapshot } from "./BossEncounterMarionetteRuntime";
4
+ type MarionetteConfig = NonNullable<BossDefinition["marionette"]>;
5
+ export declare function updateWeaveMovement(context: {
6
+ readonly state: MarionetteEncounterState;
7
+ readonly config: MarionetteConfig;
8
+ readonly corePosition: Vector2D;
9
+ readonly enemies: readonly MarionetteEnemySnapshot[];
10
+ readonly dt: number;
11
+ }): void;
12
+ export declare function startWeave(context: {
13
+ readonly state: MarionetteEncounterState;
14
+ readonly enemies: readonly MarionetteEnemySnapshot[];
15
+ readonly arenaWidth: number;
16
+ readonly arenaHeight: number;
17
+ readonly bossPosition: Vector2D;
18
+ }): void;
19
+ export declare function initializeBossPosition(state: MarionetteEncounterState, corePosition: Vector2D): void;
20
+ export declare function getDanceTarget(corePosition: Vector2D, time: number): Vector2D;
21
+ export {};
22
+ //# sourceMappingURL=BossEncounterMarionetteWeaving.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterMarionetteWeaving.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterMarionetteWeaving.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,uBAAuB,EAAyB,MAAM,kCAAkC,CAAC;AAGjI,KAAK,gBAAgB,GAAG,WAAW,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC;AAElE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE;IACzC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACrD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACvB,GAAG,IAAI,CAWP;AA4BD,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAChC,QAAQ,CAAC,KAAK,EAAE,wBAAwB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,uBAAuB,EAAE,CAAC;IACrD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACnC,GAAG,IAAI,CAcP;AAcD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,QAAQ,GAAG,IAAI,CAEpG;AAED,wBAAgB,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAG7E"}
@@ -2,6 +2,7 @@ import type { BossDefinition } from "../content/ContentTypes";
2
2
  import type { EnemyType, Vector2D } from "../types/game";
3
3
  import type { BossEncounterState, BossLaunchRequest, BossHitResult, BossTentacleTarget } from "./BossEncounter";
4
4
  import type { BossEncounterView } from "./BossEncounterView";
5
+ import { type MarionetteEnemySnapshot, type MarionetteEvent } from "./BossEncounterMarionetteRuntime";
5
6
  export interface BossStartOptions {
6
7
  definition: BossDefinition;
7
8
  arenaWidth?: number;
@@ -16,18 +17,26 @@ export declare class BossEncounterRuntime {
16
17
  constructor(encounter: BossEncounterState, view: BossEncounterView);
17
18
  start(options: BossStartOptions): void;
18
19
  private resetState;
20
+ private resetEncounterState;
21
+ private resetMechanicState;
22
+ private resetPigmentState;
19
23
  private buildTentacles;
20
- update(dt: number, corePosition?: Vector2D): BossLaunchRequest | null;
24
+ private buildStandardTentacles;
25
+ private buildPigments;
26
+ update(dt: number, corePosition?: Vector2D, marionetteEnemies?: readonly MarionetteEnemySnapshot[]): BossLaunchRequest | null;
21
27
  private decayPulses;
22
28
  private updateIntro;
29
+ private updateStandardIntro;
30
+ private completeStandardIntro;
31
+ private updateMarionetteIntro;
23
32
  private updateIntroPause;
24
33
  private updateEntryDelay;
25
34
  private updateCombat;
26
- private updateTentacleRegeneration;
35
+ private updateTentacleCombat;
36
+ private updateExposureCombat;
27
37
  private updateTentaclePhase;
28
38
  hit(position: Vector2D, type: EnemyType, corePosition: Vector2D): BossHitResult;
29
- private isHittable;
30
- private hitTentacle;
31
- private hitBoss;
39
+ getMarionetteControlIds(): ReadonlySet<string>;
40
+ drainMarionetteEvents(): MarionetteEvent[];
32
41
  }
33
42
  //# sourceMappingURL=BossEncounterRuntime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BossEncounterRuntime.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAChH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AAED,qBAAa,oBAAoB;aAET,SAAS,EAAE,kBAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADL,SAAS,EAAE,kBAAkB,EAC5B,IAAI,EAAE,iBAAiB;IAGrC,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAK7C,OAAO,CAAC,UAAU;IAwBlB,OAAO,CAAC,cAAc;IAoBf,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,GAAE,QAA6B,GAAG,iBAAiB,GAAG,IAAI;IAQhG,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,mBAAmB;IAWpB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,aAAa;IAKtF,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,OAAO;CAYlB"}
1
+ {"version":3,"file":"BossEncounterRuntime.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAChH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAA2F,KAAK,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAK/L,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACpD;AACD,qBAAa,oBAAoB;aAET,SAAS,EAAE,kBAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBADL,SAAS,EAAE,kBAAkB,EAC5B,IAAI,EAAE,iBAAiB;IAErC,KAAK,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI;IAI7C,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,mBAAmB;IAsB3B,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,iBAAiB;IAazB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,aAAa;IAQd,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,GAAE,QAA6B,EAAE,iBAAiB,GAAE,SAAS,uBAAuB,EAAO,GAAG,iBAAiB,GAAG,IAAI;IAO5J,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,qBAAqB;IAI7B,OAAO,CAAC,qBAAqB;IAc7B,OAAO,CAAC,gBAAgB;IAkBxB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;IAUpB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,aAAa;IAG/E,uBAAuB,IAAI,WAAW,CAAC,MAAM,CAAC;IAG9C,qBAAqB,IAAI,eAAe,EAAE;CAGpD"}
@@ -0,0 +1,11 @@
1
+ import type { EnemyType, Vector2D } from "../types/game";
2
+ import type { BossEncounterState, BossHitResult } from "./BossEncounterTypes";
3
+ import type { BossEncounterView } from "./BossEncounterView";
4
+ export declare function hitBossEncounter(context: {
5
+ readonly encounter: BossEncounterState;
6
+ readonly view: BossEncounterView;
7
+ readonly position: Vector2D;
8
+ readonly type: EnemyType;
9
+ readonly corePosition: Vector2D;
10
+ }): BossHitResult;
11
+ //# sourceMappingURL=BossEncounterRuntimeHit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterRuntimeHit.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterRuntimeHit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC9E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAK7D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACtC,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;CACnC,GAAG,aAAa,CAIhB"}
@@ -0,0 +1,15 @@
1
+ import type { BossDefinition } from "../content/ContentTypes";
2
+ import type { EnemyType, Vector2D } from "../types/game";
3
+ import type { BossEncounterState, BossHitResult, BossTentacleTarget, SimonEncounterState } from "./BossEncounterTypes";
4
+ import type { BossEncounterView } from "./BossEncounterView";
5
+ export declare const SIMON_ORBITAL_TYPES: readonly EnemyType[];
6
+ export declare function createSimonState(definition: BossDefinition, candidates: readonly BossTentacleTarget[]): SimonEncounterState;
7
+ export declare function updateSimon(encounter: BossEncounterState, dt: number): null;
8
+ export declare function hitSimon(context: {
9
+ readonly encounter: BossEncounterState;
10
+ readonly view: BossEncounterView;
11
+ readonly type: EnemyType;
12
+ readonly position: Vector2D;
13
+ readonly corePosition: Vector2D;
14
+ }): BossHitResult;
15
+ //# sourceMappingURL=BossEncounterSimonRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterSimonRuntime.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterSimonRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,eAAO,MAAM,mBAAmB,EAAE,SAAS,SAAS,EAAgD,CAAC;AAMrG,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,kBAAkB,EAAE,GAAG,mBAAmB,CA6B3H;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAuB3E;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAAE,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAA;CAAE,GAAG,aAAa,CAMrN"}
@@ -0,0 +1,4 @@
1
+ import type { BossEncounterSnapshot, BossEncounterState } from "./BossEncounter";
2
+ export declare function getSimonSnapshot(encounter: BossEncounterState): BossEncounterSnapshot["simon"];
3
+ export declare function getPigmentSnapshot(encounter: BossEncounterState): BossEncounterSnapshot["pigment"];
4
+ //# sourceMappingURL=BossEncounterSpecialSnapshots.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterSpecialSnapshots.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterSpecialSnapshots.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAmB9F;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAclG"}
@@ -0,0 +1,7 @@
1
+ import type { BossEncounterState, BossTentacleTarget, MutableTentacle } from "./BossEncounterTypes";
2
+ import type { Vector2D } from "../types/game";
3
+ export declare function isBossVisible(encounter: BossEncounterState, position: Vector2D, horizontalMargin?: number): boolean;
4
+ export declare function selectTentacleTargets(candidates: readonly BossTentacleTarget[], count: number): BossTentacleTarget[];
5
+ export declare function rerollTentacleTarget(encounter: BossEncounterState, index: number): void;
6
+ export declare function findNearestTentacle(tentacles: readonly MutableTentacle[], position: Vector2D, corePosition: Vector2D, getTip: (index: number, core: Vector2D) => Vector2D): MutableTentacle | null;
7
+ //# sourceMappingURL=BossEncounterTargeting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterTargeting.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterTargeting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE9C,wBAAgB,aAAa,CAAC,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,GAAE,MAAY,GAAG,OAAO,CAExH;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAOpH;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASvF;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,KAAK,QAAQ,GAAG,eAAe,GAAG,IAAI,CAalM"}
@@ -0,0 +1,4 @@
1
+ import type { BossEncounterState } from "./BossEncounterTypes";
2
+ export declare function updateTentacleExposure(encounter: BossEncounterState, dt: number): null;
3
+ export declare function updateTentacleRegeneration(encounter: BossEncounterState, dt: number): void;
4
+ //# sourceMappingURL=BossEncounterTentacleRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BossEncounterTentacleRuntime.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterTentacleRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAYtF;AAED,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAU1F"}