export type WeaponKind = "laser" | "missile" | "plasma"; export type FpsWeaponType = "pistol" | "rifle" | "shotgun"; export type FpsFiringMode = "single" | "auto" | "burst"; export type FpsEnemyTacticalState = "idle" | "patrol" | "chase" | "attack" | "flee" | "take_cover" | "investigate" | "dead"; export type FpsPickupType = "health" | "ammo"; export type SpaceShooterEnemyType = "fighter" | "bomber" | "turret" | "carrier" | "boss"; export type SpaceShooterFormation = "line" | "v-formation" | "surround" | "random" | "sides"; export type SpaceShooterPowerUpType = "health" | "shield" | "weapon" | "speed" | "life" | "multiplier"; export interface WeaponBurstInput { readonly kind: WeaponKind; readonly level?: number; readonly x?: number; readonly y?: number; readonly angle?: number; readonly secondary?: boolean; readonly ammo?: number; } export interface WeaponProjectile { readonly x: number; readonly y: number; readonly vx: number; readonly vy: number; readonly damage: number; readonly lifetime: number; } export interface WeaponBurst { readonly kind: WeaponKind; readonly level: number; readonly secondary: boolean; readonly projectileCount: number; readonly ammoSpent: number; readonly totalDamage: number; readonly spreadRadians: number; readonly projectiles: readonly WeaponProjectile[]; readonly source: "origin-master-space-shooter-weapons-adapted"; readonly claimBoundary: string; } export interface FpsWeaponCycleInput { readonly weapon: FpsWeaponType; readonly elapsedSeconds?: number; readonly triggerHeld?: boolean; readonly reloadRequested?: boolean; readonly currentAmmo?: number; readonly reserveAmmo?: number; readonly fireTimer?: number; readonly seed?: number; } export interface FpsWeaponCycleSample { readonly weapon: FpsWeaponType; readonly name: string; readonly firingMode: FpsFiringMode; readonly fired: boolean; readonly emptyClick: boolean; readonly reloading: boolean; readonly reloadComplete: boolean; readonly currentAmmo: number; readonly reserveAmmo: number; readonly ammoSpent: number; readonly bulletsPerShot: number; readonly totalDamage: number; readonly range: number; readonly spreadDegrees: number; readonly recoilX: number; readonly recoilY: number; readonly fireCooldown: number; readonly muzzleFlashSeconds: number; readonly shellEjectionSeconds: number; readonly source: "origin-master-fps-weapon-adapted"; readonly claimBoundary: string; } export interface FpsEnemyTacticsInput { readonly currentState?: FpsEnemyTacticalState; readonly playerAlive?: boolean; readonly distanceToPlayer: number; readonly angleToPlayerDegrees?: number; readonly health?: number; readonly maxHealth?: number; readonly attackTimer?: number; readonly stateTimer?: number; readonly hasCover?: boolean; readonly distanceToCover?: number; readonly hasLastKnownPlayerPosition?: boolean; readonly distanceToLastKnownPlayerPosition?: number; } export interface FpsEnemyTacticsSample { readonly state: FpsEnemyTacticalState; readonly canSeePlayer: boolean; readonly canHearPlayer: boolean; readonly targetAcquired: boolean; readonly movementSpeed: number; readonly attackReady: boolean; readonly pathRefreshRequested: boolean; readonly coverRequested: boolean; readonly inCover: boolean; readonly nextAction: "wait" | "patrol" | "chase" | "attack" | "flee" | "move_to_cover" | "investigate" | "die"; readonly source: "origin-master-fps-enemy-ai-adapted"; readonly claimBoundary: string; } export interface FpsLevelLayoutInput { readonly seed?: number; readonly roomCount?: number; readonly gridSize?: number; } export interface FpsLevelRoom { readonly id: string; readonly x: number; readonly z: number; readonly width: number; readonly depth: number; } export interface FpsLevelCorridor { readonly from: string; readonly to: string; readonly length: number; readonly width: number; } export interface FpsLevelPoint { readonly id: string; readonly x: number; readonly z: number; } export interface FpsLevelPickup extends FpsLevelPoint { readonly type: FpsPickupType; } export interface FpsLevelLayoutSample { readonly rooms: readonly FpsLevelRoom[]; readonly corridors: readonly FpsLevelCorridor[]; readonly coverPoints: readonly FpsLevelPoint[]; readonly patrolPoints: readonly FpsLevelPoint[]; readonly enemySpawnPoints: readonly FpsLevelPoint[]; readonly pickupSpawnPoints: readonly FpsLevelPickup[]; readonly playerSpawnPoint: FpsLevelPoint; readonly navMeshPointCount: number; readonly averageRoomArea: number; readonly totalCorridorLength: number; readonly source: "origin-master-fps-level-adapted"; readonly claimBoundary: string; } export interface FpsHudOverlayInput { readonly health: number; readonly maxHealth?: number; readonly ammo: number; readonly reserveAmmo: number; readonly score?: number; readonly wave?: number; readonly enemiesRemaining?: number; readonly recentDamage?: number; readonly hitMarker?: boolean; readonly damageAngleDegrees?: number; readonly minimapFriendlyCount?: number; readonly minimapEnemyCount?: number; readonly killFeedCount?: number; } export interface FpsHudOverlaySample { readonly healthPercent: number; readonly healthBarPixels: number; readonly lowHealth: boolean; readonly damageFlashAlpha: number; readonly ammoText: string; readonly ammoWarning: boolean; readonly crosshairSpreadPixels: number; readonly hitMarkerVisible: boolean; readonly damageIndicatorAngleDegrees: number; readonly minimapBlips: number; readonly killFeedVisible: boolean; readonly waveText: string; readonly source: "origin-master-fps-hud-adapted"; readonly claimBoundary: string; } export interface SpaceShooterWaveInput { readonly wave: number; readonly width?: number; readonly height?: number; readonly seed?: number; } export interface SpaceShooterSpawn { readonly enemyType: SpaceShooterEnemyType; readonly x: number; readonly y: number; readonly health: number; readonly radius: number; readonly scoreValue: number; } export interface SpaceShooterWaveSample { readonly wave: number; readonly enemyType: SpaceShooterEnemyType; readonly formation: SpaceShooterFormation; readonly count: number; readonly delay: number; readonly bossWave: boolean; readonly difficultyScale: number; readonly totalScoreValue: number; readonly spawns: readonly SpaceShooterSpawn[]; readonly powerUpType: SpaceShooterPowerUpType; readonly powerUpWeight: number; readonly source: "origin-master-space-shooter-wave-powerup-adapted"; readonly claimBoundary: string; } export interface PowerUpEffectInput { readonly type: SpaceShooterPowerUpType; readonly health?: number; readonly maxHealth?: number; readonly shield?: number; readonly maxShield?: number; readonly weaponLevel?: number; readonly speed?: number; readonly lives?: number; readonly multiplier?: number; } export interface PowerUpEffectSample { readonly type: SpaceShooterPowerUpType; readonly health: number; readonly shield: number; readonly weaponLevel: number; readonly speed: number; readonly lives: number; readonly multiplier: number; readonly changedFields: readonly string[]; readonly source: "origin-master-space-shooter-powerup-effects-adapted"; } export declare function sampleWeaponBurst(input: WeaponBurstInput): WeaponBurst; export declare function sampleFpsWeaponCycle(input: FpsWeaponCycleInput): FpsWeaponCycleSample; export declare function sampleFpsEnemyTactics(input: FpsEnemyTacticsInput): FpsEnemyTacticsSample; export declare function sampleFpsLevelLayout(input?: FpsLevelLayoutInput): FpsLevelLayoutSample; export declare function sampleFpsHudOverlay(input: FpsHudOverlayInput): FpsHudOverlaySample; export declare function sampleSpaceShooterWave(input: SpaceShooterWaveInput): SpaceShooterWaveSample; export declare function samplePowerUpEffect(input: PowerUpEffectInput): PowerUpEffectSample; //# sourceMappingURL=WeaponSystem.d.ts.map