/** * CometSystem - The "Wow Moment" * * Creates spectacular comet appearances with: * - Bright nucleus with fuzzy coma (multi-layer radial glow) * - Dual tail system: * - Ion tail: straight, blue, pushed away from sun * - Dust tail: curved, white/yellow, following orbital path * - Particle debris field trailing behind * - Arc trajectory across the sky * - Size/brightness changes as comet approaches and recedes * * Visual approach inspired by Deep Ocean's jellyfish: * - Multi-segment tails like tentacles * - Traveling glow effects like bioluminescence * - Multiple independent animation phases */ import type { AccessibilitySettings } from "../../../core/domain/types.js"; import type { Dimensions, QualityLevel } from "../../../core/domain/types.js"; import type { StarConfig } from "../domain/models/cosmic-models.js"; import type { ICosmicCalculationService } from "./contracts/ICosmicCalculationService.js"; export interface CometConfig { size: number; speed: number; color: string; tailLength: number; interval: number; enabledOnQuality: QualityLevel[]; } export declare class CometSystem { private comet; private timer; private config; private starConfig; private calculationService; private quality; constructor(config: CometConfig, starConfig: StarConfig, calculationService: ICosmicCalculationService); update(dim: Dimensions, a11y: AccessibilitySettings, quality: QualityLevel): void; private spawnComet; private updateComet; private spawnDebris; private updateDebris; draw(ctx: CanvasRenderingContext2D, a11y: AccessibilitySettings): void; /** * Draw debris particles trailing the comet */ private drawDebris; /** * Draw the curved dust tail trailing behind the comet * Uses a teardrop shape that wraps around the back of the nucleus */ private drawDustTail; /** * Draw the straight ion tail (trails behind comet) */ private drawIonTail; /** * Draw the coma (fuzzy glow around nucleus) */ private drawComa; /** * Draw the bright nucleus */ private drawNucleus; cleanup(): void; /** * Manually trigger a comet to appear */ trigger(dim: Dimensions): void; /** * Check if a comet is currently visible */ isActive(): boolean; /** * Get comet position for external tracking (e.g., UFO beam targeting) */ getPosition(): { x: number; y: number; } | null; } //# sourceMappingURL=CometSystem.d.ts.map