@gamebob/axon-surge 0.58.0 → 0.59.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.
- package/dist/areas/AreaDirector.d.ts +4 -0
- package/dist/areas/AreaDirector.d.ts.map +1 -1
- package/dist/axon-surge.js +3683 -2382
- package/dist/bosses/BossEncounter.d.ts +29 -83
- package/dist/bosses/BossEncounter.d.ts.map +1 -1
- package/dist/bosses/BossEncounterChromaticRuntime.d.ts +15 -0
- package/dist/bosses/BossEncounterChromaticRuntime.d.ts.map +1 -0
- package/dist/bosses/BossEncounterMarionetteCutting.d.ts +14 -0
- package/dist/bosses/BossEncounterMarionetteCutting.d.ts.map +1 -0
- package/dist/bosses/BossEncounterMarionetteRuntime.d.ts +68 -0
- package/dist/bosses/BossEncounterMarionetteRuntime.d.ts.map +1 -0
- package/dist/bosses/BossEncounterMarionetteSupport.d.ts +27 -0
- package/dist/bosses/BossEncounterMarionetteSupport.d.ts.map +1 -0
- package/dist/bosses/BossEncounterMarionetteView.d.ts +4 -0
- package/dist/bosses/BossEncounterMarionetteView.d.ts.map +1 -0
- package/dist/bosses/BossEncounterMarionetteWeaving.d.ts +22 -0
- package/dist/bosses/BossEncounterMarionetteWeaving.d.ts.map +1 -0
- package/dist/bosses/BossEncounterRuntime.d.ts +13 -4
- package/dist/bosses/BossEncounterRuntime.d.ts.map +1 -1
- package/dist/bosses/BossEncounterRuntimeHit.d.ts +11 -0
- package/dist/bosses/BossEncounterRuntimeHit.d.ts.map +1 -0
- package/dist/bosses/BossEncounterTargeting.d.ts +7 -0
- package/dist/bosses/BossEncounterTargeting.d.ts.map +1 -0
- package/dist/bosses/BossEncounterTypes.d.ts +139 -0
- package/dist/bosses/BossEncounterTypes.d.ts.map +1 -0
- package/dist/bosses/BossEncounterView.d.ts +7 -1
- package/dist/bosses/BossEncounterView.d.ts.map +1 -1
- package/dist/codex/DefaultBossCodex.d.ts.map +1 -1
- package/dist/content/ContentRegistry.d.ts +2 -0
- package/dist/content/ContentRegistry.d.ts.map +1 -1
- package/dist/content/ContentTypes.d.ts +20 -0
- package/dist/content/ContentTypes.d.ts.map +1 -1
- package/dist/content/DefaultAreaDefinitions.d.ts.map +1 -1
- package/dist/content/DefaultContentRegistry.d.ts.map +1 -1
- package/dist/core/GameEngineArenaSetup.d.ts +3 -0
- package/dist/core/GameEngineArenaSetup.d.ts.map +1 -0
- package/dist/core/GameEngineDebug.d.ts +5 -0
- package/dist/core/GameEngineDebug.d.ts.map +1 -1
- package/dist/core/GameEngineMethodsBossEncounter.d.ts +3 -0
- package/dist/core/GameEngineMethodsBossEncounter.d.ts.map +1 -0
- package/dist/core/GameEngineMethodsBossImpact.d.ts.map +1 -1
- package/dist/core/GameEngineMethodsBossRuntime.d.ts.map +1 -1
- package/dist/core/GameEngineMethodsMarionette.d.ts +5 -0
- package/dist/core/GameEngineMethodsMarionette.d.ts.map +1 -0
- package/dist/core/GameEngineMethodsPhysics.d.ts.map +1 -1
- package/dist/core/GameEngineMethodsStart.d.ts.map +1 -1
- package/dist/core/GameEngineMethodsUi.d.ts.map +1 -1
- package/dist/core/GameEngineMethodsUpdate.d.ts.map +1 -1
- package/dist/core/GameEngineState.d.ts +4 -1
- package/dist/core/GameEngineState.d.ts.map +1 -1
- package/dist/director/SpawnGeometry.d.ts +8 -0
- package/dist/director/SpawnGeometry.d.ts.map +1 -1
- package/dist/director/WaveDirector.d.ts +9 -1
- package/dist/director/WaveDirector.d.ts.map +1 -1
- package/dist/entities/BossCatalystOrb.d.ts +3 -1
- package/dist/entities/BossCatalystOrb.d.ts.map +1 -1
- package/dist/entities/BossDestructionSequence.d.ts +20 -0
- package/dist/entities/BossDestructionSequence.d.ts.map +1 -0
- package/dist/entities/BossPuppetControl.d.ts +4 -0
- package/dist/entities/BossPuppetControl.d.ts.map +1 -0
- package/dist/entities/EnemyEntity.d.ts +18 -0
- package/dist/entities/EnemyEntity.d.ts.map +1 -1
- package/dist/i18n/locales.d.ts +4 -0
- package/dist/i18n/locales.d.ts.map +1 -1
- package/dist/render/BossDestructionEffectRenderer.d.ts +19 -0
- package/dist/render/BossDestructionEffectRenderer.d.ts.map +1 -0
- package/dist/render/BossEncounterRenderer.d.ts +2 -0
- package/dist/render/BossEncounterRenderer.d.ts.map +1 -1
- package/dist/render/BossIntroRenderer.d.ts +5 -0
- package/dist/render/BossIntroRenderer.d.ts.map +1 -1
- package/dist/render/CanvasRenderFoundation.d.ts +2 -0
- package/dist/render/CanvasRenderFoundation.d.ts.map +1 -1
- package/dist/render/CanvasRenderer.d.ts +6 -0
- package/dist/render/CanvasRenderer.d.ts.map +1 -1
- package/dist/render/CanvasRendererDrawings.d.ts +1 -0
- package/dist/render/CanvasRendererDrawings.d.ts.map +1 -1
- package/dist/render/CollectibleRenderer.d.ts +1 -0
- package/dist/render/CollectibleRenderer.d.ts.map +1 -1
- package/dist/render/InteractionParticleRenderer.d.ts +1 -0
- package/dist/render/InteractionParticleRenderer.d.ts.map +1 -1
- package/dist/render/MarionetistaDetailedRenderer.d.ts +4 -0
- package/dist/render/MarionetistaDetailedRenderer.d.ts.map +1 -0
- package/dist/render/MarionetistaRenderer.d.ts +39 -0
- package/dist/render/MarionetistaRenderer.d.ts.map +1 -0
- package/dist/render/MarionetistaVisuals.d.ts +28 -0
- package/dist/render/MarionetistaVisuals.d.ts.map +1 -0
- package/dist/render/PintalotodoRenderer.d.ts +36 -0
- package/dist/render/PintalotodoRenderer.d.ts.map +1 -0
- package/dist/render/PintalotodoStarRenderer.d.ts +19 -0
- package/dist/render/PintalotodoStarRenderer.d.ts.map +1 -0
- package/dist/ui/BossCodexCanvas.d.ts +9 -1
- package/dist/ui/BossCodexCanvas.d.ts.map +1 -1
- package/dist/ui/CodexCanvasFactories.d.ts +1 -1
- package/dist/ui/CodexCanvasFactories.d.ts.map +1 -1
- 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
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
15
|
-
readonly
|
|
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 } from "./BossEncounterTypes";
|
|
7
|
+
import type { BossDefinition } from "../content/ContentTypes";
|
|
8
|
+
export type { BossEncounterSnapshot, BossEncounterState, BossHitResult, BossLaunchRequest, BossPhase, BossPigmentSnapshot, BossTentacleSnapshot, BossTentacleTarget, MarionetteEncounterSnapshot, MarionetteThreadSnapshot, MutableTentacle, } 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,39 @@ 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;
|
|
117
58
|
readonly view: BossEncounterView;
|
|
118
59
|
private readonly runtime;
|
|
119
60
|
constructor(factory?: BossEncounterFactory);
|
|
120
61
|
start(options: BossStartOptions): void;
|
|
121
62
|
start(definition: BossDefinition): void;
|
|
122
63
|
reset(): void;
|
|
123
|
-
|
|
64
|
+
private resetCombatState;
|
|
65
|
+
private resetPigmentState;
|
|
66
|
+
update(dt: number, corePosition?: Vector2D, marionetteEnemies?: readonly MarionetteEnemySnapshot[]): BossLaunchRequest | null;
|
|
124
67
|
hit(position: Vector2D, type: EnemyType, corePosition: Vector2D): BossHitResult;
|
|
125
68
|
getPhase(): BossPhase;
|
|
126
69
|
isIntroPaused(): boolean;
|
|
127
70
|
getBossPosition(corePosition: Vector2D): Vector2D;
|
|
128
71
|
getSnapshot(corePosition: Vector2D): BossEncounterSnapshot | null;
|
|
129
72
|
launchFromHead(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
|
|
73
|
+
launchFromBody(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
|
|
74
|
+
getMarionetteControlIds(): ReadonlySet<string>;
|
|
75
|
+
drainMarionetteEvents(): MarionetteEvent[];
|
|
130
76
|
}
|
|
131
77
|
//# sourceMappingURL=BossEncounter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BossEncounter.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
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 resetPigmentState;
|
|
19
21
|
private buildTentacles;
|
|
20
|
-
|
|
22
|
+
private buildStandardTentacles;
|
|
23
|
+
private buildPigments;
|
|
24
|
+
update(dt: number, corePosition?: Vector2D, marionetteEnemies?: readonly MarionetteEnemySnapshot[]): BossLaunchRequest | null;
|
|
21
25
|
private decayPulses;
|
|
22
26
|
private updateIntro;
|
|
27
|
+
private updateStandardIntro;
|
|
28
|
+
private completeStandardIntro;
|
|
29
|
+
private updateMarionetteIntro;
|
|
23
30
|
private updateIntroPause;
|
|
24
31
|
private updateEntryDelay;
|
|
25
32
|
private updateCombat;
|
|
33
|
+
private updateTentacleCombat;
|
|
34
|
+
private updateExposureCombat;
|
|
35
|
+
private updateTentacleExposure;
|
|
26
36
|
private updateTentacleRegeneration;
|
|
27
37
|
private updateTentaclePhase;
|
|
28
38
|
hit(position: Vector2D, type: EnemyType, corePosition: Vector2D): BossHitResult;
|
|
29
|
-
|
|
30
|
-
|
|
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;
|
|
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;AAI/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;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;IA0BlB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,sBAAsB;IAoB9B,OAAO,CAAC,aAAa;IASd,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,GAAE,QAA6B,EAAE,iBAAiB,GAAE,SAAS,uBAAuB,EAAO,GAAG,iBAAiB,GAAG,IAAI;IAQ5J,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,0BAA0B;IAkBlC,OAAO,CAAC,mBAAmB;IAWpB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,GAAG,aAAa;IAI/E,uBAAuB,IAAI,WAAW,CAAC,MAAM,CAAC;IAI9C,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;AAI7D,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,CAMhB"}
|
|
@@ -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): 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,GAAG,OAAO,CAExF;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,139 @@
|
|
|
1
|
+
import type { BossDefinition } from "../content/ContentTypes";
|
|
2
|
+
import type { EnemyType, Vector2D } from "../types/game";
|
|
3
|
+
import type { MarionetteEncounterState } from "./BossEncounterMarionetteRuntime";
|
|
4
|
+
export type BossPhase = "inactive" | "intro" | "charging" | "tentacles" | "exposed" | "defeated";
|
|
5
|
+
export interface BossTentacleSnapshot {
|
|
6
|
+
readonly id: string;
|
|
7
|
+
readonly basePosition: Vector2D;
|
|
8
|
+
readonly tipPosition: Vector2D;
|
|
9
|
+
readonly requiredEnemyId: EnemyType;
|
|
10
|
+
readonly tipColor: string;
|
|
11
|
+
readonly protected: boolean;
|
|
12
|
+
readonly launchPulse: number;
|
|
13
|
+
readonly regenerationProgress: number;
|
|
14
|
+
}
|
|
15
|
+
export interface BossTentacleTarget {
|
|
16
|
+
readonly enemyId: EnemyType;
|
|
17
|
+
readonly color: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BossLaunchRequest {
|
|
20
|
+
readonly tentacleId: string;
|
|
21
|
+
readonly origin: Vector2D;
|
|
22
|
+
readonly direction: Vector2D;
|
|
23
|
+
readonly enemyType?: EnemyType;
|
|
24
|
+
readonly kind?: "boss-minion" | "marionette-reinforcement";
|
|
25
|
+
}
|
|
26
|
+
export interface BossPigmentSnapshot {
|
|
27
|
+
readonly enemyId: EnemyType;
|
|
28
|
+
readonly color: string;
|
|
29
|
+
readonly charge: number;
|
|
30
|
+
readonly maxCharge: number;
|
|
31
|
+
readonly pulse: number;
|
|
32
|
+
readonly morphProgress: number;
|
|
33
|
+
readonly stars: readonly number[];
|
|
34
|
+
readonly starExplosionPulse: number;
|
|
35
|
+
readonly starExplosionIndex: number;
|
|
36
|
+
}
|
|
37
|
+
export interface BossEncounterSnapshot {
|
|
38
|
+
readonly id: string;
|
|
39
|
+
readonly mechanicId: string;
|
|
40
|
+
readonly rendererId: BossDefinition["rendererId"];
|
|
41
|
+
readonly title: string;
|
|
42
|
+
readonly versusLabel: string;
|
|
43
|
+
readonly phase: BossPhase;
|
|
44
|
+
readonly introProgress: number;
|
|
45
|
+
readonly introMotionProgress: number;
|
|
46
|
+
readonly introPauseActive: boolean;
|
|
47
|
+
readonly introPauseProgress: number;
|
|
48
|
+
readonly introGreetingActive: boolean;
|
|
49
|
+
readonly introGreetingProgress: number;
|
|
50
|
+
readonly combatEntryProgress: number;
|
|
51
|
+
readonly bossPosition: Vector2D;
|
|
52
|
+
readonly headPosition: Vector2D;
|
|
53
|
+
readonly headLaunchPulse: number;
|
|
54
|
+
readonly headLaunchSide: -1 | 1;
|
|
55
|
+
readonly tentacles: readonly BossTentacleSnapshot[];
|
|
56
|
+
readonly exposureProgress: number;
|
|
57
|
+
readonly integrity: number;
|
|
58
|
+
readonly maxIntegrity: number;
|
|
59
|
+
readonly impactPulse: number;
|
|
60
|
+
readonly pigment: BossPigmentSnapshot | null;
|
|
61
|
+
readonly marionette: MarionetteEncounterSnapshot | null;
|
|
62
|
+
}
|
|
63
|
+
export interface MarionetteThreadSnapshot {
|
|
64
|
+
readonly id: string;
|
|
65
|
+
readonly enemyId: string;
|
|
66
|
+
readonly startPosition: Vector2D;
|
|
67
|
+
readonly endPosition: Vector2D;
|
|
68
|
+
readonly waveSeed: number;
|
|
69
|
+
readonly cutPulse: number;
|
|
70
|
+
}
|
|
71
|
+
export interface MarionetteEncounterSnapshot {
|
|
72
|
+
readonly act: number;
|
|
73
|
+
readonly totalActs: number;
|
|
74
|
+
readonly cutsThisAct: number;
|
|
75
|
+
readonly maxCutsThisAct: number;
|
|
76
|
+
readonly replacementWarning: number;
|
|
77
|
+
readonly stunProgress: number;
|
|
78
|
+
readonly stunned: boolean;
|
|
79
|
+
readonly weaving: boolean;
|
|
80
|
+
readonly weaveTargetPosition: Vector2D | null;
|
|
81
|
+
readonly weaveProgress: number;
|
|
82
|
+
readonly weaveFingerIndex: number;
|
|
83
|
+
readonly lookTargetPosition: Vector2D;
|
|
84
|
+
readonly threads: readonly MarionetteThreadSnapshot[];
|
|
85
|
+
}
|
|
86
|
+
export type BossHitResult = "none" | "ignored" | "area-impact" | "tentacle-broken" | "pigment-hit" | "pigment-overloaded" | "boss-damaged" | "defeated";
|
|
87
|
+
export interface MutableTentacle {
|
|
88
|
+
id: string;
|
|
89
|
+
index: number;
|
|
90
|
+
requiredEnemyId: EnemyType;
|
|
91
|
+
tipColor: string;
|
|
92
|
+
protected: boolean;
|
|
93
|
+
launchPulse: number;
|
|
94
|
+
regenerationProgress: number;
|
|
95
|
+
}
|
|
96
|
+
export interface BossEncounterState {
|
|
97
|
+
definition: BossDefinition | null;
|
|
98
|
+
phase: BossPhase;
|
|
99
|
+
tentacles: MutableTentacle[];
|
|
100
|
+
exposureRemaining: number;
|
|
101
|
+
integrity: number;
|
|
102
|
+
maxIntegrity: number;
|
|
103
|
+
impactPulse: number;
|
|
104
|
+
introElapsed: number;
|
|
105
|
+
introDuration: number;
|
|
106
|
+
introTravelElapsed: number;
|
|
107
|
+
introPauseElapsed: number;
|
|
108
|
+
introPauseActive: boolean;
|
|
109
|
+
introPauseCompleted: boolean;
|
|
110
|
+
readonly introPreludeDuration: number;
|
|
111
|
+
readonly introPauseDuration: number;
|
|
112
|
+
launchCooldown: number;
|
|
113
|
+
movementTime: number;
|
|
114
|
+
combatEntryElapsed: number;
|
|
115
|
+
readonly combatEntryDuration: number;
|
|
116
|
+
readonly combatEntryDelay: number;
|
|
117
|
+
arenaWidth: number;
|
|
118
|
+
arenaHeight: number;
|
|
119
|
+
title: string;
|
|
120
|
+
versusLabel: string;
|
|
121
|
+
targetCandidates: BossTentacleTarget[];
|
|
122
|
+
pigmentTargets: BossTentacleTarget[];
|
|
123
|
+
activePigment: BossTentacleTarget | null;
|
|
124
|
+
pigmentCharge: number;
|
|
125
|
+
pigmentMaxCharge: number;
|
|
126
|
+
pigmentPulse: number;
|
|
127
|
+
pigmentMorphProgress: number;
|
|
128
|
+
pigmentLaunchElapsed: number;
|
|
129
|
+
pigmentCycle: number;
|
|
130
|
+
pigmentStars: number[];
|
|
131
|
+
pigmentStarExplosionPulse: number;
|
|
132
|
+
pigmentStarExplosionIndex: number;
|
|
133
|
+
headLaunchPulse: number;
|
|
134
|
+
headLaunchSide: -1 | 1;
|
|
135
|
+
regenerationElapsed: number;
|
|
136
|
+
regenerationActive: boolean;
|
|
137
|
+
marionette: MarionetteEncounterState | null;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=BossEncounterTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BossEncounterTypes.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type BossEncounterState, type BossEncounterSnapshot, type BossLaunchRequest, type BossTentacleTarget, type MutableTentacle } from "./BossEncounter";
|
|
2
2
|
import type { Vector2D } from "../types/game";
|
|
3
3
|
export declare class BossEncounterView {
|
|
4
4
|
private readonly encounter;
|
|
5
5
|
constructor(encounter: BossEncounterState);
|
|
6
6
|
getBossPosition(corePosition: Vector2D): Vector2D;
|
|
7
|
+
private getMarionettePosition;
|
|
7
8
|
private isEntryPosition;
|
|
8
9
|
private getEntryPosition;
|
|
9
10
|
private getMovingPosition;
|
|
@@ -12,11 +13,16 @@ export declare class BossEncounterView {
|
|
|
12
13
|
private getReturnOffset;
|
|
13
14
|
getSnapshot(corePosition: Vector2D): BossEncounterSnapshot | null;
|
|
14
15
|
private createSnapshot;
|
|
16
|
+
private getMarionetteSnapshot;
|
|
17
|
+
private getPigmentSnapshot;
|
|
15
18
|
private getIntroProgress;
|
|
16
19
|
private getIntroMotionProgress;
|
|
20
|
+
private isMarionetteGreetingActive;
|
|
21
|
+
private getMarionetteGreetingProgress;
|
|
17
22
|
private getTentacleSnapshots;
|
|
18
23
|
private getExposureProgress;
|
|
19
24
|
launchFromHead(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
|
|
25
|
+
launchFromBody(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
|
|
20
26
|
getTentacleBasePosition(index: number, corePosition: Vector2D): Vector2D;
|
|
21
27
|
getHeadPosition(corePosition: Vector2D): Vector2D;
|
|
22
28
|
getRepulsionDirection(corePosition: Vector2D, bossPosition?: Vector2D): Vector2D;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BossEncounterView.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"BossEncounterView.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounterView.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,kBAAkB,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACxL,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAI9C,qBAAa,iBAAiB;IACP,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,kBAAkB;IAE1D,eAAe,CAAC,YAAY,EAAE,QAAQ,GAAG,QAAQ;IAMxD,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,eAAe;IAIhB,WAAW,CAAC,YAAY,EAAE,QAAQ,GAAG,qBAAqB,GAAG,IAAI;IAMxE,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,6BAA6B;IAKrC,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,mBAAmB;IAIpB,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,iBAAiB;IAoBvE,cAAc,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,iBAAiB;IAWvE,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,GAAG,QAAQ;IAYxE,eAAe,CAAC,YAAY,EAAE,QAAQ,GAAG,QAAQ;IASjD,qBAAqB,CAAC,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAE,QAA6C,GAAG,QAAQ;IAQpH,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,YAAY,GAAE,QAAyB,GAAG,QAAQ;IAaxF,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI;IAItF,qBAAqB,CAAC,UAAU,EAAE,SAAS,kBAAkB,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,kBAAkB,EAAE;IAIrG,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzC,aAAa,CAAC,YAAY,EAAE,QAAQ,GAAG,OAAO;CAGxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DefaultBossCodex.d.ts","sourceRoot":"","sources":["../../src/codex/DefaultBossCodex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,kBAAkB,EAAE,SAAS,mBAAmB,
|
|
1
|
+
{"version":3,"file":"DefaultBossCodex.d.ts","sourceRoot":"","sources":["../../src/codex/DefaultBossCodex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,eAAO,MAAM,kBAAkB,EAAE,SAAS,mBAAmB,EAmB5D,CAAC"}
|