/**** 
* Classes
****/ 
// Asteroid class
var Asteroid = Container.expand(function () {
	var self = Container.call(this);
	var asteroidGraphics = self.attachAsset('asteroid', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.update = function () {
		self.y += self.speed;
	};
});
//<Assets used in the game will automatically appear here>
// Slow Motion Power-Up class
var SlowMotionPowerUp = Container.expand(function () {
	var self = Container.call(this);
	var powerupGraphics = self.attachAsset('slowmo', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 6;
	self.update = function () {
		self.y += self.speed;
	};
	return self;
});
// Spaceship class
var Spaceship = Container.expand(function () {
	var self = Container.call(this);
	var spaceshipGraphics = self.attachAsset('spaceship', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 10;
	self.update = function () {
		// Spaceship update logic if needed
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 //Init game with black background 
});
/**** 
* Game Code
****/ 
// Decorative star (pixelated, small)
// Decorative planet (different from moon, pixelated style)
// Title screen state and UI
var gameState = "title";
var titleContainer = new Container();
var startButton = null;
var titleText = null;
// Decorative asteroid (left)
var decoAsteroidL = LK.getAsset('asteroid', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1.2,
	scaleY: 1.2
});
decoAsteroidL.x = 2048 * 0.25;
decoAsteroidL.y = 650;
titleContainer.addChild(decoAsteroidL);
// Decorative asteroid (right)
var decoAsteroidR = LK.getAsset('asteroid', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1.2,
	scaleY: 1.2
});
decoAsteroidR.x = 2048 * 0.75;
decoAsteroidR.y = 650;
titleContainer.addChild(decoAsteroidR);
// Decorative slowmo powerup (left)
var decoPowerupL = LK.getAsset('slowmo', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1,
	scaleY: 1
});
decoPowerupL.x = 2048 * 0.18;
decoPowerupL.y = 1100;
titleContainer.addChild(decoPowerupL);
// Decorative slowmo powerup (right)
var decoPowerupR = LK.getAsset('slowmo', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1,
	scaleY: 1
});
decoPowerupR.x = 2048 * 0.82;
decoPowerupR.y = 1100;
titleContainer.addChild(decoPowerupR);
// Decorative spaceship (center, above title)
var decoShip = LK.getAsset('spaceship', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1.3,
	scaleY: 1.3
});
decoShip.x = 2048 / 2;
decoShip.y = 600;
titleContainer.addChild(decoShip);
// Decorative pixelated moon at the bottom center
// Use a placeholder moon asset (add to Assets if not present)
var decoMoon = LK.getAsset('moon', {
	anchorX: 0.5,
	anchorY: 1,
	scaleX: 1.5,
	scaleY: 1.5
});
decoMoon.x = 2048 / 2;
decoMoon.y = 2732 - 40;
titleContainer.addChild(decoMoon);
// Title text
titleText = new Text2("ASTEROID DODGE", {
	size: 180,
	fill: 0xffffff
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 2048 / 2;
titleText.y = 900;
titleContainer.addChild(titleText);
// Decorative subtitle
var subtitleText = new Text2("Dodge asteroids, grab power-ups, survive!", {
	size: 80,
	fill: 0xccccff
});
subtitleText.anchor.set(0.5, 0.5);
subtitleText.x = 2048 / 2;
subtitleText.y = 1080;
titleContainer.addChild(subtitleText);
// Start button
startButton = new Container();
var btnBg = LK.getAsset('centerCircle', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 3,
	scaleY: 1.2,
	tint: 0x3399ff
});
btnBg.x = 0;
btnBg.y = 0;
startButton.addChild(btnBg);
var btnText = new Text2("START", {
	size: 120,
	fill: 0xffffff
});
btnText.anchor.set(0.5, 0.5);
btnText.x = 0;
btnText.y = 0;
startButton.addChild(btnText);
startButton.x = 2048 / 2;
startButton.y = 1400;
titleContainer.addChild(startButton);
// Add titleContainer to game
game.addChild(titleContainer);
// Spaceship and asteroids (initialized after pressing start)
var spaceship = null;
var asteroids = [];
// Decorative gameplay background elements
var decorStars = [];
var decorPlanet = null;
// Slow motion power-up variables
var slowMotionActive = false;
var slowMotionTimer = 0;
var SLOW_MOTION_DURATION = 180; // 3 seconds at 60fps
var SLOW_MOTION_FACTOR = 0.3; // Asteroids move at 30% speed
// Score text (initialized after pressing start)
var scoreTxt = null;
// --- Decorative assets for gameplay background ---
// (Removed decorative moon/planet from top right)
// Add several stars (using centerCircle asset, different tints/sizes)
for (var i = 0; i < 8; i++) {
	var star = LK.getAsset('centerCircle', {
		anchorX: 0.5,
		anchorY: 0.5,
		scaleX: 0.18 + Math.random() * 0.12,
		scaleY: 0.18 + Math.random() * 0.12,
		tint: [0xffffff, 0xfffbe0, 0xbbeeff, 0xffeedd][Math.floor(Math.random() * 4)]
	});
	// Randomly position stars, avoid top left 100x100
	var sx = 120 + Math.random() * (2048 - 240);
	var sy = 120 + Math.random() * (2732 - 240);
	star.x = sx;
	star.y = sy;
	game.addChild(star);
	decorStars.push(star);
}
// Start button event
startButton.down = function (x, y, obj) {
	if (gameState !== "title") {
		return;
	}
	// Remove title UI
	titleContainer.visible = false;
	// Start game
	gameState = "playing";
	// Initialize spaceship
	spaceship = game.addChild(new Spaceship());
	spaceship.x = 2048 / 2;
	spaceship.y = 2732 - 200;
	// Initialize asteroids array
	asteroids = [];
	// Reset slow motion
	slowMotionActive = false;
	slowMotionTimer = 0;
	// Initialize score
	LK.setScore(0);
	// Score display
	if (scoreTxt) {
		scoreTxt.setText("0");
		scoreTxt.visible = true;
	} else {
		scoreTxt = new Text2('0', {
			size: 150,
			fill: 0xFFFFFF
		});
		scoreTxt.anchor.set(0.5, 0);
		LK.gui.top.addChild(scoreTxt);
	}
};
// Function to handle spaceship movement
function handleMove(x, y, obj) {
	if (gameState !== "playing" || !spaceship) {
		return;
	}
	spaceship.x = x;
	// spaceship.y = y; // Commented out to restrict vertical movement
}
// Game move event
game.move = function (x, y, obj) {
	if (gameState === "title") {
		return;
	}
	handleMove(x, y, obj);
};
// Game update function
game.update = function () {
	// Title screen logic
	if (gameState === "title") {
		// Show title UI, hide gameplay UI
		if (titleContainer) {
			titleContainer.visible = true;
		}
		if (scoreTxt) {
			scoreTxt.visible = false;
		}
		// Hide gameplay decor
		if (decorPlanet) {
			decorPlanet.visible = false;
		}
		for (var ds = 0; ds < decorStars.length; ds++) {
			decorStars[ds].visible = false;
		}
		return;
	}
	// Show gameplay UI, hide title UI
	if (titleContainer) {
		titleContainer.visible = false;
	}
	if (scoreTxt) {
		scoreTxt.visible = true;
	}
	// Show gameplay decor
	if (decorPlanet) {
		decorPlanet.visible = true;
	}
	for (var ds = 0; ds < decorStars.length; ds++) {
		decorStars[ds].visible = true;
	}
	// Dynamic difficulty variables
	if (typeof asteroidSpawnInterval === "undefined") {
		var asteroidSpawnInterval = 60; // Initial spawn interval (frames)
		var asteroidBaseSpeed = 5; // Initial asteroid speed
		var asteroidMaxSpeed = 30; // Cap asteroid speed
		var asteroidMinInterval = 15; // Minimum interval between spawns
		var asteroidDifficultyStep = 10; // Score step for difficulty increase
		var asteroidLastDifficultyScore = 0;
	}
	// Increase difficulty based on score
	var currentScore = LK.getScore();
	if (currentScore - asteroidLastDifficultyScore >= asteroidDifficultyStep) {
		asteroidLastDifficultyScore = currentScore;
		// Increase speed, decrease interval
		asteroidBaseSpeed = Math.min(asteroidBaseSpeed + 1, asteroidMaxSpeed);
		asteroidSpawnInterval = Math.max(asteroidSpawnInterval - 5, asteroidMinInterval);
	}
	// Create new asteroids
	if (LK.ticks % asteroidSpawnInterval == 0) {
		var newAsteroid = new Asteroid();
		newAsteroid.x = Math.random() * 2048;
		newAsteroid.y = -50;
		newAsteroid.speed = asteroidBaseSpeed;
		asteroids.push(newAsteroid);
		game.addChild(newAsteroid);
		// 1 in 10 chance to spawn a slow motion power-up (but not if one is already active or present)
		if (!slowMotionActive && Math.random() < 0.1 && typeof slowMotionPowerUp === "undefined") {
			slowMotionPowerUp = new SlowMotionPowerUp();
			slowMotionPowerUp.x = Math.random() * 2048;
			slowMotionPowerUp.y = -100;
			game.addChild(slowMotionPowerUp);
		}
	}
	// Update asteroids
	for (var i = asteroids.length - 1; i >= 0; i--) {
		var asteroid = asteroids[i];
		// Apply slow motion if active
		if (slowMotionActive) {
			asteroid.y += asteroid.speed * SLOW_MOTION_FACTOR;
		} else {
			asteroid.update();
		}
		// Check for collision with spaceship
		if (spaceship && spaceship.intersects(asteroid)) {
			LK.effects.flashScreen(0xff0000, 1000);
			// Play collision sound if available
			if (LK.getSound && LK.getSound('crash')) {
				LK.getSound('crash').play();
			}
			// Show game over
			LK.showGameOver();
			// Reset to title screen after game over
			gameState = "title";
			// Remove spaceship and asteroids
			if (spaceship) {
				spaceship.destroy();
				spaceship = null;
			}
			for (var j = 0; j < asteroids.length; j++) {
				if (asteroids[j]) {
					asteroids[j].destroy();
				}
			}
			asteroids = [];
			// Remove powerup if present
			if (typeof slowMotionPowerUp !== "undefined" && slowMotionPowerUp) {
				slowMotionPowerUp.destroy();
				slowMotionPowerUp = undefined;
			}
			// Hide score
			if (scoreTxt) {
				scoreTxt.visible = false;
			}
			// Show title UI
			if (titleContainer) {
				titleContainer.visible = true;
			}
			return;
		}
		// Remove off-screen asteroids and increment score
		if (asteroid.y > 2732 + 50) {
			// Near miss visual/audio effect if asteroid was close to spaceship horizontally
			var dx = spaceship ? Math.abs(asteroid.x - spaceship.x) : 9999;
			if (dx < 200) {
				LK.effects.flashScreen(0xffff00, 200); // Quick yellow flash for near miss
				// Play near miss sound if available
				if (LK.getSound && LK.getSound('nearMiss')) {
					LK.getSound('nearMiss').play();
				}
			}
			asteroid.destroy();
			asteroids.splice(i, 1);
			LK.setScore(LK.getScore() + 1); // Increment score for each asteroid dodged
			if (scoreTxt) {
				scoreTxt.setText(LK.getScore());
			} // Update score display
			// Play score up sound if available
			if (LK.getSound && LK.getSound('scoreUp')) {
				LK.getSound('scoreUp').play();
			}
			// Play asteroid whoosh sound if available
			if (LK.getSound && LK.getSound('whoosh')) {
				LK.getSound('whoosh').play();
			}
		}
	}
	// Handle slow motion power-up logic
	if (typeof slowMotionPowerUp !== "undefined" && slowMotionPowerUp) {
		// Move power-up
		slowMotionPowerUp.y += slowMotionPowerUp.speed;
		// Check for collision with spaceship
		if (spaceship && spaceship.intersects(slowMotionPowerUp)) {
			slowMotionActive = true;
			slowMotionTimer = SLOW_MOTION_DURATION;
			// Visual feedback for slow motion activation
			LK.effects.flashScreen(0x3399ff, 400);
			slowMotionPowerUp.destroy();
			slowMotionPowerUp = undefined;
		} else if (slowMotionPowerUp.y > 2732 + 100) {
			// Remove if off screen
			slowMotionPowerUp.destroy();
			slowMotionPowerUp = undefined;
		}
	}
	// Handle slow motion timer
	if (slowMotionActive) {
		slowMotionTimer--;
		if (slowMotionTimer <= 0) {
			slowMotionActive = false;
		}
	}
}; /**** 
* Classes
****/ 
// Asteroid class
var Asteroid = Container.expand(function () {
	var self = Container.call(this);
	var asteroidGraphics = self.attachAsset('asteroid', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.update = function () {
		self.y += self.speed;
	};
});
//<Assets used in the game will automatically appear here>
// Slow Motion Power-Up class
var SlowMotionPowerUp = Container.expand(function () {
	var self = Container.call(this);
	var powerupGraphics = self.attachAsset('slowmo', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 6;
	self.update = function () {
		self.y += self.speed;
	};
	return self;
});
// Spaceship class
var Spaceship = Container.expand(function () {
	var self = Container.call(this);
	var spaceshipGraphics = self.attachAsset('spaceship', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 10;
	self.update = function () {
		// Spaceship update logic if needed
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 //Init game with black background 
});
/**** 
* Game Code
****/ 
// Decorative star (pixelated, small)
// Decorative planet (different from moon, pixelated style)
// Title screen state and UI
var gameState = "title";
var titleContainer = new Container();
var startButton = null;
var titleText = null;
// Decorative asteroid (left)
var decoAsteroidL = LK.getAsset('asteroid', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1.2,
	scaleY: 1.2
});
decoAsteroidL.x = 2048 * 0.25;
decoAsteroidL.y = 650;
titleContainer.addChild(decoAsteroidL);
// Decorative asteroid (right)
var decoAsteroidR = LK.getAsset('asteroid', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1.2,
	scaleY: 1.2
});
decoAsteroidR.x = 2048 * 0.75;
decoAsteroidR.y = 650;
titleContainer.addChild(decoAsteroidR);
// Decorative slowmo powerup (left)
var decoPowerupL = LK.getAsset('slowmo', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1,
	scaleY: 1
});
decoPowerupL.x = 2048 * 0.18;
decoPowerupL.y = 1100;
titleContainer.addChild(decoPowerupL);
// Decorative slowmo powerup (right)
var decoPowerupR = LK.getAsset('slowmo', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1,
	scaleY: 1
});
decoPowerupR.x = 2048 * 0.82;
decoPowerupR.y = 1100;
titleContainer.addChild(decoPowerupR);
// Decorative spaceship (center, above title)
var decoShip = LK.getAsset('spaceship', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 1.3,
	scaleY: 1.3
});
decoShip.x = 2048 / 2;
decoShip.y = 600;
titleContainer.addChild(decoShip);
// Decorative pixelated moon at the bottom center
// Use a placeholder moon asset (add to Assets if not present)
var decoMoon = LK.getAsset('moon', {
	anchorX: 0.5,
	anchorY: 1,
	scaleX: 1.5,
	scaleY: 1.5
});
decoMoon.x = 2048 / 2;
decoMoon.y = 2732 - 40;
titleContainer.addChild(decoMoon);
// Title text
titleText = new Text2("ASTEROID DODGE", {
	size: 180,
	fill: 0xffffff
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 2048 / 2;
titleText.y = 900;
titleContainer.addChild(titleText);
// Decorative subtitle
var subtitleText = new Text2("Dodge asteroids, grab power-ups, survive!", {
	size: 80,
	fill: 0xccccff
});
subtitleText.anchor.set(0.5, 0.5);
subtitleText.x = 2048 / 2;
subtitleText.y = 1080;
titleContainer.addChild(subtitleText);
// Start button
startButton = new Container();
var btnBg = LK.getAsset('centerCircle', {
	anchorX: 0.5,
	anchorY: 0.5,
	scaleX: 3,
	scaleY: 1.2,
	tint: 0x3399ff
});
btnBg.x = 0;
btnBg.y = 0;
startButton.addChild(btnBg);
var btnText = new Text2("START", {
	size: 120,
	fill: 0xffffff
});
btnText.anchor.set(0.5, 0.5);
btnText.x = 0;
btnText.y = 0;
startButton.addChild(btnText);
startButton.x = 2048 / 2;
startButton.y = 1400;
titleContainer.addChild(startButton);
// Add titleContainer to game
game.addChild(titleContainer);
// Spaceship and asteroids (initialized after pressing start)
var spaceship = null;
var asteroids = [];
// Decorative gameplay background elements
var decorStars = [];
var decorPlanet = null;
// Slow motion power-up variables
var slowMotionActive = false;
var slowMotionTimer = 0;
var SLOW_MOTION_DURATION = 180; // 3 seconds at 60fps
var SLOW_MOTION_FACTOR = 0.3; // Asteroids move at 30% speed
// Score text (initialized after pressing start)
var scoreTxt = null;
// --- Decorative assets for gameplay background ---
// (Removed decorative moon/planet from top right)
// Add several stars (using centerCircle asset, different tints/sizes)
for (var i = 0; i < 8; i++) {
	var star = LK.getAsset('centerCircle', {
		anchorX: 0.5,
		anchorY: 0.5,
		scaleX: 0.18 + Math.random() * 0.12,
		scaleY: 0.18 + Math.random() * 0.12,
		tint: [0xffffff, 0xfffbe0, 0xbbeeff, 0xffeedd][Math.floor(Math.random() * 4)]
	});
	// Randomly position stars, avoid top left 100x100
	var sx = 120 + Math.random() * (2048 - 240);
	var sy = 120 + Math.random() * (2732 - 240);
	star.x = sx;
	star.y = sy;
	game.addChild(star);
	decorStars.push(star);
}
// Start button event
startButton.down = function (x, y, obj) {
	if (gameState !== "title") {
		return;
	}
	// Remove title UI
	titleContainer.visible = false;
	// Start game
	gameState = "playing";
	// Initialize spaceship
	spaceship = game.addChild(new Spaceship());
	spaceship.x = 2048 / 2;
	spaceship.y = 2732 - 200;
	// Initialize asteroids array
	asteroids = [];
	// Reset slow motion
	slowMotionActive = false;
	slowMotionTimer = 0;
	// Initialize score
	LK.setScore(0);
	// Score display
	if (scoreTxt) {
		scoreTxt.setText("0");
		scoreTxt.visible = true;
	} else {
		scoreTxt = new Text2('0', {
			size: 150,
			fill: 0xFFFFFF
		});
		scoreTxt.anchor.set(0.5, 0);
		LK.gui.top.addChild(scoreTxt);
	}
};
// Function to handle spaceship movement
function handleMove(x, y, obj) {
	if (gameState !== "playing" || !spaceship) {
		return;
	}
	spaceship.x = x;
	// spaceship.y = y; // Commented out to restrict vertical movement
}
// Game move event
game.move = function (x, y, obj) {
	if (gameState === "title") {
		return;
	}
	handleMove(x, y, obj);
};
// Game update function
game.update = function () {
	// Title screen logic
	if (gameState === "title") {
		// Show title UI, hide gameplay UI
		if (titleContainer) {
			titleContainer.visible = true;
		}
		if (scoreTxt) {
			scoreTxt.visible = false;
		}
		// Hide gameplay decor
		if (decorPlanet) {
			decorPlanet.visible = false;
		}
		for (var ds = 0; ds < decorStars.length; ds++) {
			decorStars[ds].visible = false;
		}
		return;
	}
	// Show gameplay UI, hide title UI
	if (titleContainer) {
		titleContainer.visible = false;
	}
	if (scoreTxt) {
		scoreTxt.visible = true;
	}
	// Show gameplay decor
	if (decorPlanet) {
		decorPlanet.visible = true;
	}
	for (var ds = 0; ds < decorStars.length; ds++) {
		decorStars[ds].visible = true;
	}
	// Dynamic difficulty variables
	if (typeof asteroidSpawnInterval === "undefined") {
		var asteroidSpawnInterval = 60; // Initial spawn interval (frames)
		var asteroidBaseSpeed = 5; // Initial asteroid speed
		var asteroidMaxSpeed = 30; // Cap asteroid speed
		var asteroidMinInterval = 15; // Minimum interval between spawns
		var asteroidDifficultyStep = 10; // Score step for difficulty increase
		var asteroidLastDifficultyScore = 0;
	}
	// Increase difficulty based on score
	var currentScore = LK.getScore();
	if (currentScore - asteroidLastDifficultyScore >= asteroidDifficultyStep) {
		asteroidLastDifficultyScore = currentScore;
		// Increase speed, decrease interval
		asteroidBaseSpeed = Math.min(asteroidBaseSpeed + 1, asteroidMaxSpeed);
		asteroidSpawnInterval = Math.max(asteroidSpawnInterval - 5, asteroidMinInterval);
	}
	// Create new asteroids
	if (LK.ticks % asteroidSpawnInterval == 0) {
		var newAsteroid = new Asteroid();
		newAsteroid.x = Math.random() * 2048;
		newAsteroid.y = -50;
		newAsteroid.speed = asteroidBaseSpeed;
		asteroids.push(newAsteroid);
		game.addChild(newAsteroid);
		// 1 in 10 chance to spawn a slow motion power-up (but not if one is already active or present)
		if (!slowMotionActive && Math.random() < 0.1 && typeof slowMotionPowerUp === "undefined") {
			slowMotionPowerUp = new SlowMotionPowerUp();
			slowMotionPowerUp.x = Math.random() * 2048;
			slowMotionPowerUp.y = -100;
			game.addChild(slowMotionPowerUp);
		}
	}
	// Update asteroids
	for (var i = asteroids.length - 1; i >= 0; i--) {
		var asteroid = asteroids[i];
		// Apply slow motion if active
		if (slowMotionActive) {
			asteroid.y += asteroid.speed * SLOW_MOTION_FACTOR;
		} else {
			asteroid.update();
		}
		// Check for collision with spaceship
		if (spaceship && spaceship.intersects(asteroid)) {
			LK.effects.flashScreen(0xff0000, 1000);
			// Play collision sound if available
			if (LK.getSound && LK.getSound('crash')) {
				LK.getSound('crash').play();
			}
			// Show game over
			LK.showGameOver();
			// Reset to title screen after game over
			gameState = "title";
			// Remove spaceship and asteroids
			if (spaceship) {
				spaceship.destroy();
				spaceship = null;
			}
			for (var j = 0; j < asteroids.length; j++) {
				if (asteroids[j]) {
					asteroids[j].destroy();
				}
			}
			asteroids = [];
			// Remove powerup if present
			if (typeof slowMotionPowerUp !== "undefined" && slowMotionPowerUp) {
				slowMotionPowerUp.destroy();
				slowMotionPowerUp = undefined;
			}
			// Hide score
			if (scoreTxt) {
				scoreTxt.visible = false;
			}
			// Show title UI
			if (titleContainer) {
				titleContainer.visible = true;
			}
			return;
		}
		// Remove off-screen asteroids and increment score
		if (asteroid.y > 2732 + 50) {
			// Near miss visual/audio effect if asteroid was close to spaceship horizontally
			var dx = spaceship ? Math.abs(asteroid.x - spaceship.x) : 9999;
			if (dx < 200) {
				LK.effects.flashScreen(0xffff00, 200); // Quick yellow flash for near miss
				// Play near miss sound if available
				if (LK.getSound && LK.getSound('nearMiss')) {
					LK.getSound('nearMiss').play();
				}
			}
			asteroid.destroy();
			asteroids.splice(i, 1);
			LK.setScore(LK.getScore() + 1); // Increment score for each asteroid dodged
			if (scoreTxt) {
				scoreTxt.setText(LK.getScore());
			} // Update score display
			// Play score up sound if available
			if (LK.getSound && LK.getSound('scoreUp')) {
				LK.getSound('scoreUp').play();
			}
			// Play asteroid whoosh sound if available
			if (LK.getSound && LK.getSound('whoosh')) {
				LK.getSound('whoosh').play();
			}
		}
	}
	// Handle slow motion power-up logic
	if (typeof slowMotionPowerUp !== "undefined" && slowMotionPowerUp) {
		// Move power-up
		slowMotionPowerUp.y += slowMotionPowerUp.speed;
		// Check for collision with spaceship
		if (spaceship && spaceship.intersects(slowMotionPowerUp)) {
			slowMotionActive = true;
			slowMotionTimer = SLOW_MOTION_DURATION;
			// Visual feedback for slow motion activation
			LK.effects.flashScreen(0x3399ff, 400);
			slowMotionPowerUp.destroy();
			slowMotionPowerUp = undefined;
		} else if (slowMotionPowerUp.y > 2732 + 100) {
			// Remove if off screen
			slowMotionPowerUp.destroy();
			slowMotionPowerUp = undefined;
		}
	}
	// Handle slow motion timer
	if (slowMotionActive) {
		slowMotionTimer--;
		if (slowMotionTimer <= 0) {
			slowMotionActive = false;
		}
	}
};