@gamebob/axon-surge 0.27.0 → 0.29.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 +23 -0
- package/dist/areas/AreaDirector.d.ts.map +1 -0
- package/dist/axon-surge.js +4906 -1610
- package/dist/bosses/BossEncounter.d.ts +89 -0
- package/dist/bosses/BossEncounter.d.ts.map +1 -0
- package/dist/codex/BossCodex.d.ts +42 -0
- package/dist/codex/BossCodex.d.ts.map +1 -0
- package/dist/codex/DefaultBossCodex.d.ts +3 -0
- package/dist/codex/DefaultBossCodex.d.ts.map +1 -0
- package/dist/config/GameConfig.d.ts +5 -0
- package/dist/config/GameConfig.d.ts.map +1 -1
- package/dist/content/ContentRegistry.d.ts +3 -2
- package/dist/content/ContentRegistry.d.ts.map +1 -1
- package/dist/content/ContentTypes.d.ts +24 -3
- package/dist/content/ContentTypes.d.ts.map +1 -1
- package/dist/content/DefaultContentRegistry.d.ts.map +1 -1
- package/dist/core/CoreInteractionController.d.ts +23 -0
- package/dist/core/CoreInteractionController.d.ts.map +1 -0
- package/dist/core/GameEngine.d.ts +39 -0
- package/dist/core/GameEngine.d.ts.map +1 -1
- package/dist/director/InteractiveTutorial.d.ts +27 -11
- package/dist/director/InteractiveTutorial.d.ts.map +1 -1
- package/dist/director/WaveDirector.d.ts +14 -1
- package/dist/director/WaveDirector.d.ts.map +1 -1
- package/dist/entities/BossCatalystOrb.d.ts +17 -0
- package/dist/entities/BossCatalystOrb.d.ts.map +1 -0
- package/dist/entities/CoreEntity.d.ts +23 -0
- package/dist/entities/CoreEntity.d.ts.map +1 -1
- package/dist/entities/EnemyEntity.d.ts +2 -0
- package/dist/entities/EnemyEntity.d.ts.map +1 -1
- package/dist/entities/RepelWaveProjectile.d.ts +25 -0
- package/dist/entities/RepelWaveProjectile.d.ts.map +1 -0
- package/dist/i18n/I18nService.d.ts +1 -0
- package/dist/i18n/I18nService.d.ts.map +1 -1
- package/dist/i18n/locales.d.ts +56 -0
- package/dist/i18n/locales.d.ts.map +1 -1
- package/dist/input/InputManager.d.ts +4 -0
- package/dist/input/InputManager.d.ts.map +1 -1
- package/dist/physics/PhysicsEngine.d.ts +1 -1
- package/dist/physics/PhysicsEngine.d.ts.map +1 -1
- package/dist/physics/handlers/CoreCollisionHandler.d.ts +6 -0
- package/dist/physics/handlers/CoreCollisionHandler.d.ts.map +1 -1
- package/dist/physics/handlers/SmasherCollisionHandler.d.ts +9 -0
- package/dist/physics/handlers/SmasherCollisionHandler.d.ts.map +1 -0
- package/dist/powerups/PowerUpRegistry.d.ts +2 -1
- package/dist/powerups/PowerUpRegistry.d.ts.map +1 -1
- package/dist/powerups/PowerUpTypes.d.ts +3 -0
- package/dist/powerups/PowerUpTypes.d.ts.map +1 -1
- package/dist/progression/CoreProgressionTypes.d.ts +53 -0
- package/dist/progression/CoreProgressionTypes.d.ts.map +1 -0
- package/dist/progression/CoreRoster.d.ts +40 -0
- package/dist/progression/CoreRoster.d.ts.map +1 -0
- package/dist/progression/CoreRosterStorage.d.ts +9 -0
- package/dist/progression/CoreRosterStorage.d.ts.map +1 -0
- package/dist/progression/CoreRosterValidation.d.ts +3 -0
- package/dist/progression/CoreRosterValidation.d.ts.map +1 -0
- package/dist/progression/CoreWisdomPassives.d.ts +4 -0
- package/dist/progression/CoreWisdomPassives.d.ts.map +1 -0
- package/dist/progression/DefaultCoreRoster.d.ts +3 -0
- package/dist/progression/DefaultCoreRoster.d.ts.map +1 -0
- package/dist/progression/DefaultGeneticMemory.d.ts.map +1 -1
- package/dist/progression/GeneticMemory.d.ts +1 -0
- package/dist/progression/GeneticMemory.d.ts.map +1 -1
- package/dist/render/CanvasRenderer.d.ts +24 -1
- package/dist/render/CanvasRenderer.d.ts.map +1 -1
- package/dist/render/SmasherRenderer.d.ts +15 -0
- package/dist/render/SmasherRenderer.d.ts.map +1 -0
- package/dist/render/TutorialArrowRenderer.d.ts +2 -0
- package/dist/render/TutorialArrowRenderer.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/theme/GameColors.d.ts +2 -1
- package/dist/theme/GameColors.d.ts.map +1 -1
- package/dist/ui/BossCodexCanvas.d.ts +19 -0
- package/dist/ui/BossCodexCanvas.d.ts.map +1 -0
- package/dist/ui/CodexOverlay.d.ts +11 -1
- package/dist/ui/CodexOverlay.d.ts.map +1 -1
- package/dist/ui/CoreRosterOverlay.d.ts +35 -0
- package/dist/ui/CoreRosterOverlay.d.ts.map +1 -0
- package/dist/ui/CoreRunSummaryOverlay.d.ts +18 -0
- package/dist/ui/CoreRunSummaryOverlay.d.ts.map +1 -0
- package/dist/ui/StartMenu.d.ts +4 -1
- package/dist/ui/StartMenu.d.ts.map +1 -1
- package/dist/ui/TutorialOverlay.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import type { BossDefinition } from "../content/ContentTypes";
|
|
2
|
+
import type { EnemyType, Vector2D } from "../types/game";
|
|
3
|
+
export type BossPhase = "inactive" | "intro" | "tentacles" | "exposed" | "defeated";
|
|
4
|
+
export interface BossTentacleSnapshot {
|
|
5
|
+
readonly id: string;
|
|
6
|
+
readonly basePosition: Vector2D;
|
|
7
|
+
readonly tipPosition: Vector2D;
|
|
8
|
+
readonly requiredEnemyId: EnemyType;
|
|
9
|
+
readonly tipColor: string;
|
|
10
|
+
readonly protected: boolean;
|
|
11
|
+
readonly launchPulse: number;
|
|
12
|
+
}
|
|
13
|
+
export interface BossTentacleTarget {
|
|
14
|
+
readonly enemyId: EnemyType;
|
|
15
|
+
readonly color: string;
|
|
16
|
+
}
|
|
17
|
+
export interface BossLaunchRequest {
|
|
18
|
+
readonly tentacleId: string;
|
|
19
|
+
readonly origin: Vector2D;
|
|
20
|
+
readonly direction: Vector2D;
|
|
21
|
+
}
|
|
22
|
+
export interface BossEncounterSnapshot {
|
|
23
|
+
readonly id: string;
|
|
24
|
+
readonly title: string;
|
|
25
|
+
readonly versusLabel: string;
|
|
26
|
+
readonly phase: BossPhase;
|
|
27
|
+
readonly introProgress: number;
|
|
28
|
+
readonly introMotionProgress: number;
|
|
29
|
+
readonly introPauseActive: boolean;
|
|
30
|
+
readonly introPauseProgress: number;
|
|
31
|
+
readonly combatEntryProgress: number;
|
|
32
|
+
readonly bossPosition: Vector2D;
|
|
33
|
+
readonly headPosition: Vector2D;
|
|
34
|
+
readonly headLaunchPulse: number;
|
|
35
|
+
readonly headLaunchSide: -1 | 1;
|
|
36
|
+
readonly tentacles: readonly BossTentacleSnapshot[];
|
|
37
|
+
readonly exposureProgress: number;
|
|
38
|
+
readonly integrity: number;
|
|
39
|
+
readonly maxIntegrity: number;
|
|
40
|
+
readonly impactPulse: number;
|
|
41
|
+
}
|
|
42
|
+
export type BossHitResult = "none" | "area-impact" | "tentacle-broken" | "boss-damaged" | "defeated";
|
|
43
|
+
export declare class BossEncounter {
|
|
44
|
+
private definition;
|
|
45
|
+
private phase;
|
|
46
|
+
private tentacles;
|
|
47
|
+
private exposureRemaining;
|
|
48
|
+
private integrity;
|
|
49
|
+
private maxIntegrity;
|
|
50
|
+
private impactPulse;
|
|
51
|
+
private introElapsed;
|
|
52
|
+
private introDuration;
|
|
53
|
+
private introTravelElapsed;
|
|
54
|
+
private introPauseElapsed;
|
|
55
|
+
private introPauseActive;
|
|
56
|
+
private introPauseCompleted;
|
|
57
|
+
private readonly introPreludeDuration;
|
|
58
|
+
private readonly introPauseDuration;
|
|
59
|
+
private launchCooldown;
|
|
60
|
+
private movementTime;
|
|
61
|
+
private combatEntryElapsed;
|
|
62
|
+
private readonly combatEntryDuration;
|
|
63
|
+
private readonly combatEntryDelay;
|
|
64
|
+
private arenaWidth;
|
|
65
|
+
private arenaHeight;
|
|
66
|
+
private title;
|
|
67
|
+
private versusLabel;
|
|
68
|
+
private targetCandidates;
|
|
69
|
+
private headLaunchPulse;
|
|
70
|
+
private headLaunchSide;
|
|
71
|
+
start(definition: BossDefinition, arenaWidth?: number, arenaHeight?: number, title?: string, versusLabel?: string, targetCandidates?: readonly BossTentacleTarget[]): void;
|
|
72
|
+
reset(): void;
|
|
73
|
+
update(dt: number, corePosition?: Vector2D): BossLaunchRequest | null;
|
|
74
|
+
hit(position: Vector2D, type: EnemyType, corePosition: Vector2D): BossHitResult;
|
|
75
|
+
getPhase(): BossPhase;
|
|
76
|
+
isIntroPaused(): boolean;
|
|
77
|
+
getBossPosition(corePosition: Vector2D): Vector2D;
|
|
78
|
+
getSnapshot(corePosition: Vector2D): BossEncounterSnapshot | null;
|
|
79
|
+
launchFromHead(corePosition: Vector2D, side: -1 | 1): BossLaunchRequest;
|
|
80
|
+
private getTentacleBasePosition;
|
|
81
|
+
private getHeadPosition;
|
|
82
|
+
private getRepulsionDirection;
|
|
83
|
+
private getTentacleTipPosition;
|
|
84
|
+
private getNearestTentacle;
|
|
85
|
+
private selectTentacleTargets;
|
|
86
|
+
private rerollTentacleTarget;
|
|
87
|
+
private isBossVisible;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=BossEncounter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BossEncounter.d.ts","sourceRoot":"","sources":["../../src/bosses/BossEncounter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Translations } from "../i18n/locales";
|
|
2
|
+
export interface BossCodexDefinition {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly titleKey: keyof Translations;
|
|
5
|
+
readonly loreKey: keyof Translations;
|
|
6
|
+
readonly phaseCount: number;
|
|
7
|
+
}
|
|
8
|
+
export interface BossCodexSnapshot extends BossCodexDefinition {
|
|
9
|
+
readonly seen: boolean;
|
|
10
|
+
readonly attempts: number;
|
|
11
|
+
readonly victories: number;
|
|
12
|
+
readonly observedPhaseCount: number;
|
|
13
|
+
readonly dropCollected: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface BossCodexStorage {
|
|
16
|
+
getItem(key: string): string | null;
|
|
17
|
+
setItem(key: string, value: string): void;
|
|
18
|
+
}
|
|
19
|
+
export declare class BossCodex {
|
|
20
|
+
private readonly definitions;
|
|
21
|
+
private readonly progress;
|
|
22
|
+
private readonly listeners;
|
|
23
|
+
private readonly storage;
|
|
24
|
+
private hasUnreadChanges;
|
|
25
|
+
constructor(definitions: readonly BossCodexDefinition[], storage?: BossCodexStorage | null);
|
|
26
|
+
getEntries(): BossCodexSnapshot[];
|
|
27
|
+
getEntry(id: string): BossCodexSnapshot | undefined;
|
|
28
|
+
recordEncounter(id: string): void;
|
|
29
|
+
recordPhase(id: string, phase: number): void;
|
|
30
|
+
recordVictory(id: string): void;
|
|
31
|
+
recordDropCollected(id: string): void;
|
|
32
|
+
hasUnread(): boolean;
|
|
33
|
+
markAllRead(): void;
|
|
34
|
+
subscribe(listener: () => void): () => void;
|
|
35
|
+
private commit;
|
|
36
|
+
private notify;
|
|
37
|
+
private load;
|
|
38
|
+
private persist;
|
|
39
|
+
private static readCount;
|
|
40
|
+
private static getBrowserStorage;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=BossCodex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BossCodex.d.ts","sourceRoot":"","sources":["../../src/codex/BossCodex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,YAAY,CAAC;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,YAAY,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC1D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7C;AAYD,qBAAa,SAAS;IAClB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0C;IACtE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IACnE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0B;IAClD,OAAO,CAAC,gBAAgB,CAAS;gBAG7B,WAAW,EAAE,SAAS,mBAAmB,EAAE,EAC3C,OAAO,GAAE,gBAAgB,GAAG,IAAoC;IAmB7D,UAAU,IAAI,iBAAiB,EAAE;IAOjC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAOnD,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IASjC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAO5C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQ/B,mBAAmB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAQrC,SAAS,IAAI,OAAO;IAIpB,WAAW,IAAI,IAAI;IAOnB,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAKlD,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,IAAI;IAwBZ,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,MAAM,CAAC,SAAS;IAMxB,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAOnC"}
|
|
@@ -0,0 +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,EAO5D,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":"AAAA,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,uBAAuB,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB,EAAE,MAAM,CAAC;IAClC,sBAAsB,EAAE,OAAO,CAAC;IAChC,oBAAoB,EAAE,OAAO,CAAC;IAC9B,2BAA2B,EAAE,MAAM,CAAC;IACpC,uBAAuB,EAAE,MAAM,CAAC;IAChC,0BAA0B,EAAE,MAAM,CAAC;
|
|
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
|
|
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,
|
|
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;IAgDhB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;CAG5E"}
|
|
@@ -3,6 +3,7 @@ import type { EnemyType } from "../types/game";
|
|
|
3
3
|
import type { PowerUpDefinition } from "../powerups/PowerUpTypes";
|
|
4
4
|
import type { IdentifiedDefinition } from "./DefinitionRegistry";
|
|
5
5
|
import type { EnemyBehavior } from "./EnemyBehavior";
|
|
6
|
+
import type { Translations } from "../i18n/locales";
|
|
6
7
|
export interface EnemyDefinition extends IdentifiedDefinition {
|
|
7
8
|
readonly id: EnemyType;
|
|
8
9
|
readonly speed: number;
|
|
@@ -27,15 +28,29 @@ export interface SynergyDefinition extends IdentifiedDefinition {
|
|
|
27
28
|
readonly resultIds: readonly string[];
|
|
28
29
|
}
|
|
29
30
|
export interface AreaDefinition extends IdentifiedDefinition {
|
|
31
|
+
readonly nameKey: keyof Translations;
|
|
30
32
|
readonly baseEnemyIds: readonly EnemyType[];
|
|
31
33
|
readonly additionalEnemyIds: readonly EnemyType[];
|
|
32
34
|
readonly ruleIds: readonly string[];
|
|
35
|
+
readonly enemyWeights?: Readonly<Record<EnemyType, number>>;
|
|
36
|
+
readonly patternWeights?: Readonly<Record<string, number>>;
|
|
37
|
+
readonly killThreshold?: number;
|
|
38
|
+
readonly nextAreaId?: string;
|
|
33
39
|
readonly bossId?: string;
|
|
34
40
|
}
|
|
35
41
|
export interface BossDefinition extends IdentifiedDefinition {
|
|
36
42
|
readonly mechanicId: string;
|
|
37
43
|
readonly areaId?: string;
|
|
38
44
|
readonly rewardId?: string;
|
|
45
|
+
readonly titleKey?: keyof Translations;
|
|
46
|
+
readonly loreKey?: keyof Translations;
|
|
47
|
+
readonly sealCount?: number;
|
|
48
|
+
readonly tentacleCount?: number;
|
|
49
|
+
readonly introDuration?: number;
|
|
50
|
+
readonly exposureDuration?: number;
|
|
51
|
+
readonly exposureHits?: number;
|
|
52
|
+
readonly ecosomaDropMin?: number;
|
|
53
|
+
readonly ecosomaDropMax?: number;
|
|
39
54
|
}
|
|
40
55
|
export interface BossRewardDefinition extends IdentifiedDefinition {
|
|
41
56
|
readonly temporaryPowerUpIds: readonly string[];
|
|
@@ -50,8 +65,14 @@ export interface SpawnerPatternDefinition extends IdentifiedDefinition {
|
|
|
50
65
|
readonly weight: number;
|
|
51
66
|
}
|
|
52
67
|
export interface TutorialDefinition {
|
|
53
|
-
readonly
|
|
54
|
-
readonly
|
|
68
|
+
readonly id: string;
|
|
69
|
+
readonly coreId: string;
|
|
70
|
+
readonly mechanic: "launcher" | "repellent" | "smasher";
|
|
71
|
+
readonly primaryEnemyId: EnemyType;
|
|
72
|
+
readonly secondaryEnemyId: EnemyType;
|
|
73
|
+
readonly step1TextKey: keyof Translations;
|
|
74
|
+
readonly step2TextKey: keyof Translations;
|
|
75
|
+
readonly warningTextKey: keyof Translations;
|
|
55
76
|
}
|
|
56
77
|
export interface ContentCatalog {
|
|
57
78
|
readonly enemies?: readonly EnemyDefinition[];
|
|
@@ -63,6 +84,6 @@ export interface ContentCatalog {
|
|
|
63
84
|
readonly bossRewards?: readonly BossRewardDefinition[];
|
|
64
85
|
readonly cores?: readonly CoreDefinition[];
|
|
65
86
|
readonly spawnerPatterns?: readonly SpawnerPatternDefinition[];
|
|
66
|
-
readonly
|
|
87
|
+
readonly tutorials?: readonly TutorialDefinition[];
|
|
67
88
|
}
|
|
68
89
|
//# 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;
|
|
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,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC;IACxD,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC;IACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,YAAY,CAAC;IAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,YAAY,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,MAAM,YAAY,CAAC;CAC/C;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,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACtD"}
|
|
@@ -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,
|
|
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,iBAwGnC,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,25 +36,40 @@ 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;
|
|
44
|
+
private readonly bossCodex;
|
|
45
|
+
private readonly areaDirector;
|
|
46
|
+
private readonly bossEncounter;
|
|
39
47
|
private unsubscribeCodex;
|
|
48
|
+
private unsubscribeBossCodex;
|
|
49
|
+
private unsubscribeCoreRoster;
|
|
40
50
|
private core;
|
|
41
51
|
private enemies;
|
|
42
52
|
private ambientEnemies;
|
|
43
53
|
private pools;
|
|
44
54
|
private vortices;
|
|
45
55
|
private shockwaves;
|
|
56
|
+
private repelProjectiles;
|
|
57
|
+
private pendingSmasherRelease;
|
|
58
|
+
private smasherBossImpactCooldown;
|
|
46
59
|
private particles;
|
|
47
60
|
private floatingTexts;
|
|
48
61
|
private experienceOrbs;
|
|
49
62
|
private ecosomaOrbs;
|
|
63
|
+
private bossCatalyst;
|
|
64
|
+
private bossExposureBurstRemaining;
|
|
65
|
+
private bossExposureBurstAccumulator;
|
|
66
|
+
private bossExposureBurstSide;
|
|
50
67
|
private orbitingOrbs;
|
|
51
68
|
private isLevelUpActive;
|
|
52
69
|
private pendingLevelUps;
|
|
53
70
|
private readonly debugRerollsEnabled;
|
|
54
71
|
private readonly debugPerformanceEnabled;
|
|
72
|
+
private readonly debugBossEnabled;
|
|
55
73
|
private rerollsRemaining;
|
|
56
74
|
private score;
|
|
57
75
|
private combo;
|
|
@@ -59,6 +77,10 @@ export declare class GameEngine {
|
|
|
59
77
|
private isPaused;
|
|
60
78
|
private isDeathSequenceActive;
|
|
61
79
|
private deathSequenceElapsed;
|
|
80
|
+
private pendingCoreRunSummary;
|
|
81
|
+
private areaTransitionElapsed;
|
|
82
|
+
private areaIntroElapsed;
|
|
83
|
+
private readonly areaTransitionDuration;
|
|
62
84
|
private languageBeforeHold;
|
|
63
85
|
private readonly handleLanguageHold;
|
|
64
86
|
private readonly handleLanguageRelease;
|
|
@@ -69,13 +91,30 @@ export declare class GameEngine {
|
|
|
69
91
|
getTheme(): Theme;
|
|
70
92
|
private onLanguageChanged;
|
|
71
93
|
private initAmbientArena;
|
|
94
|
+
private syncSelectedCorePreview;
|
|
72
95
|
private resizeCanvas;
|
|
73
96
|
private setupEvents;
|
|
74
97
|
startGame(): void;
|
|
75
98
|
private clearTransientRunState;
|
|
99
|
+
private updateRepelProjectiles;
|
|
76
100
|
private clearTransientRunEntities;
|
|
77
101
|
private updateDeathSequence;
|
|
78
102
|
private update;
|
|
103
|
+
private handleEnemyKill;
|
|
104
|
+
private startBossIfReady;
|
|
105
|
+
private clearArenaForBoss;
|
|
106
|
+
private processBossImpacts;
|
|
107
|
+
private processSmasherBossImpact;
|
|
108
|
+
private getBossImpactRadius;
|
|
109
|
+
private releaseBossExposureBurst;
|
|
110
|
+
private updateBossExposureBurst;
|
|
111
|
+
private updateBossMinionReentryPaths;
|
|
112
|
+
private resetBossExposureBurst;
|
|
113
|
+
private finishBossIfDefeated;
|
|
114
|
+
private getBossRewardPosition;
|
|
115
|
+
private updateBossReward;
|
|
116
|
+
private tryCollectCatalyst;
|
|
117
|
+
private updateAreaTransition;
|
|
79
118
|
private triggerLevelUp;
|
|
80
119
|
private presentNextLevelUp;
|
|
81
120
|
private spawnExperienceDrops;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GameEngine.d.ts","sourceRoot":"","sources":["../../src/core/GameEngine.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
|
7
|
-
|
|
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
|
|
12
|
-
private
|
|
13
|
-
private
|
|
14
|
-
private
|
|
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
|
-
|
|
18
|
-
|
|
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
|
|
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;
|
|
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;IA2Db,QAAQ,IAAI,IAAI;CAQ1B"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { Vector2D } from "../types/game";
|
|
1
|
+
import type { Vector2D, EnemyType } from "../types/game";
|
|
2
2
|
import type { EnemyEntity } from "../entities/EnemyEntity";
|
|
3
3
|
import type { EntityFactory } from "../factory/EntityFactory";
|
|
4
4
|
import type { ContentRegistry } from "../content/ContentRegistry";
|
|
5
|
+
import type { AreaDefinition } from "../content/ContentTypes";
|
|
5
6
|
import type { UnlockState } from "../progression/ProgressionTypes";
|
|
6
7
|
export declare class WaveDirector {
|
|
7
8
|
private readonly factory;
|
|
@@ -13,11 +14,23 @@ export declare class WaveDirector {
|
|
|
13
14
|
private waveTimer;
|
|
14
15
|
private patternCooldown;
|
|
15
16
|
private initialGracePeriod;
|
|
17
|
+
private area;
|
|
16
18
|
constructor(factory: EntityFactory, content: ContentRegistry, unlockState?: UnlockState | undefined);
|
|
17
19
|
reset(): void;
|
|
20
|
+
setArea(area: AreaDefinition | null): void;
|
|
21
|
+
getAvailableEnemyIds(): ReadonlySet<EnemyType>;
|
|
22
|
+
getBossTentacleTargets(): ReadonlyArray<{
|
|
23
|
+
enemyId: EnemyType;
|
|
24
|
+
color: string;
|
|
25
|
+
}>;
|
|
18
26
|
update(dt: number, activeEnemies: EnemyEntity[], width: number, height: number, corePos: Vector2D): EnemyEntity | null;
|
|
19
27
|
private spawnSingleEnemy;
|
|
28
|
+
spawnBossMinion(origin: Vector2D, corePos: Vector2D, launchDirection?: Vector2D): EnemyEntity | null;
|
|
20
29
|
private spawnPatternFormation;
|
|
30
|
+
private getAvailableEnemyDefinitions;
|
|
31
|
+
private getAvailablePatternEnemyIds;
|
|
32
|
+
private getEnemyWeight;
|
|
33
|
+
private getPatternWeight;
|
|
21
34
|
private applyFlockingBehaviors;
|
|
22
35
|
}
|
|
23
36
|
//# 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,
|
|
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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Vector2D } from "../types/game";
|
|
2
|
+
export declare class BossCatalystOrb {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly radius = 17;
|
|
5
|
+
readonly interactionRadius = 132;
|
|
6
|
+
readonly color: "#ff6bde";
|
|
7
|
+
position: Vector2D;
|
|
8
|
+
velocity: Vector2D;
|
|
9
|
+
active: boolean;
|
|
10
|
+
isAbsorbing: boolean;
|
|
11
|
+
absorbedByCore: boolean;
|
|
12
|
+
private absorptionSpeed;
|
|
13
|
+
constructor(position: Vector2D);
|
|
14
|
+
beginAbsorption(): void;
|
|
15
|
+
update(dt: number, corePosition: Vector2D, coreRadius: number): void;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=BossCatalystOrb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BossCatalystOrb.d.ts","sourceRoot":"","sources":["../../src/entities/BossCatalystOrb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,qBAAa,eAAe;IACxB,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,MAAM,MAAM;IAC5B,SAAgB,iBAAiB,OAAO;IACxC,SAAgB,KAAK,YAA4B;IAC1C,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,UAAQ;IACd,WAAW,UAAS;IACpB,cAAc,UAAS;IAC9B,OAAO,CAAC,eAAe,CAAK;gBAET,QAAQ,EAAE,QAAQ;IAM9B,eAAe,IAAI,IAAI;IAIvB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;CAwB9E"}
|
|
@@ -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;
|
|
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"}
|