/**** 
* Plugins
****/ 
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/**** 
* Classes
****/ 
var Car = Container.expand(function (direction, speed, lane) {
	var self = Container.call(this);
	var carGraphics = self.attachAsset('car', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.direction = direction; // 1 for right, -1 for left
	self.speed = speed;
	self.lane = lane;
	// Position car based on direction
	if (self.direction === 1) {
		self.x = -60; // Start from left
	} else {
		self.x = 2048 + 60; // Start from right
	}
	self.y = 2732 - 250 - lane * 180; // Position in center of road with original spacing
	self.update = function () {
		self.x += self.speed * self.direction;
		// Remove car when it goes off screen
		if (self.direction === 1 && self.x > 2048 + 100) {
			self.removeFromParent = true;
		} else if (self.direction === -1 && self.x < -100) {
			self.removeFromParent = true;
		}
	};
	return self;
});
var Chicken = Container.expand(function () {
	var self = Container.call(this);
	var chickenGraphics = self.attachAsset('chicken', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.moveStep = 100;
	self.isMoving = false;
	self.targetY = 2732 - 100; // Start near bottom
	self.moveForward = function () {
		if (self.isMoving) return;
		self.isMoving = true;
		// Calculate next valid road position
		var currentY = self.y;
		var nextRoadY = null;
		var roadSpacing = 180;
		var startY = 2732 - 250;
		// Find the next road position above current position
		for (var i = 0; i < 12; i++) {
			var roadY = startY - i * roadSpacing;
			if (roadY < currentY && roadY >= 0) {
				nextRoadY = roadY;
				break;
			}
		}
		// If no road found above, move to finish line
		if (nextRoadY === null) {
			nextRoadY = 50;
		}
		// Animate movement directly to next road
		tween(self, {
			y: nextRoadY
		}, {
			duration: 200,
			easing: tween.easeOut,
			onFinish: function onFinish() {
				self.isMoving = false;
				// Check if crossed a road
				if (self.y < 150) {
					// Crossed all roads, reset and increase score
					crossedRoad();
				}
			}
		});
		LK.getSound('move').play();
	};
	return self;
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x4CAF50
});
/**** 
* Game Code
****/ 
var chicken;
var cars = [];
var roads = [];
var gameSpeed = 1;
var carSpawnTimer = 0;
var carSpawnRate = 40; // frames between car spawns - fewer cars
var crossedRoads = 0;
var bonusMode = false;
var questionAsked = false;
var waitingForAnswer = false;
var playerHealth = 2; // Player can take 2 hits before dying
var invincibilityMode = false; // Cheat mode for invincibility - deactivated
var chatInput = ''; // Store chat input
var carsPerLane = []; // Track number of cars in each lane
// Question system variables
var currentLevel = storage.currentLevel || 1;
var correctAnswers = 0;
var wrongAnswers = 0;
var currentQuestion = '';
var questionOptions = [];
var correctAnswer = '';
var questionIndex = 0;
// Question sets by difficulty level
var questionSets = {
	1: [{
		q: "2 + 2 = ?",
		options: ["3", "4", "5", "6"],
		correct: "4"
	}, {
		q: "5 - 3 = ?",
		options: ["1", "2", "3", "4"],
		correct: "2"
	}, {
		q: "3 × 2 = ?",
		options: ["5", "6", "7", "8"],
		correct: "6"
	}, {
		q: "8 ÷ 2 = ?",
		options: ["3", "4", "5", "6"],
		correct: "4"
	}, {
		q: "1 + 1 = ?",
		options: ["1", "2", "3", "4"],
		correct: "2"
	}, {
		q: "6 - 4 = ?",
		options: ["1", "2", "3", "4"],
		correct: "2"
	}, {
		q: "4 × 3 = ?",
		options: ["10", "11", "12", "13"],
		correct: "12"
	}, {
		q: "9 ÷ 3 = ?",
		options: ["2", "3", "4", "5"],
		correct: "3"
	}, {
		q: "7 + 3 = ?",
		options: ["9", "10", "11", "12"],
		correct: "10"
	}, {
		q: "10 - 5 = ?",
		options: ["4", "5", "6", "7"],
		correct: "5"
	}],
	2: [{
		q: "15 + 27 = ?",
		options: ["40", "41", "42", "43"],
		correct: "42"
	}, {
		q: "84 - 36 = ?",
		options: ["46", "47", "48", "49"],
		correct: "48"
	}, {
		q: "12 × 7 = ?",
		options: ["82", "83", "84", "85"],
		correct: "84"
	}, {
		q: "96 ÷ 8 = ?",
		options: ["11", "12", "13", "14"],
		correct: "12"
	}, {
		q: "25 + 39 = ?",
		options: ["62", "63", "64", "65"],
		correct: "64"
	}, {
		q: "73 - 28 = ?",
		options: ["43", "44", "45", "46"],
		correct: "45"
	}, {
		q: "9 × 6 = ?",
		options: ["52", "53", "54", "55"],
		correct: "54"
	}, {
		q: "72 ÷ 9 = ?",
		options: ["7", "8", "9", "10"],
		correct: "8"
	}, {
		q: "46 + 17 = ?",
		options: ["61", "62", "63", "64"],
		correct: "63"
	}, {
		q: "81 - 35 = ?",
		options: ["44", "45", "46", "47"],
		correct: "46"
	}],
	3: [{
		q: "127 + 248 = ?",
		options: ["373", "374", "375", "376"],
		correct: "375"
	}, {
		q: "543 - 187 = ?",
		options: ["354", "355", "356", "357"],
		correct: "356"
	}, {
		q: "23 × 15 = ?",
		options: ["343", "344", "345", "346"],
		correct: "345"
	}, {
		q: "384 ÷ 12 = ?",
		options: ["30", "31", "32", "33"],
		correct: "32"
	}, {
		q: "289 + 156 = ?",
		options: ["443", "444", "445", "446"],
		correct: "445"
	}, {
		q: "672 - 298 = ?",
		options: ["372", "373", "374", "375"],
		correct: "374"
	}, {
		q: "17 × 24 = ?",
		options: ["406", "407", "408", "409"],
		correct: "408"
	}, {
		q: "456 ÷ 24 = ?",
		options: ["17", "18", "19", "20"],
		correct: "19"
	}, {
		q: "365 + 278 = ?",
		options: ["641", "642", "643", "644"],
		correct: "643"
	}, {
		q: "834 - 467 = ?",
		options: ["365", "366", "367", "368"],
		correct: "367"
	}]
};
var answerButtons = [];
var currentQuestionShown = false;
// Create score display
var scoreTxt = new Text2('0', {
	size: 100,
	fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0.5);
scoreTxt.x = 1024; // Center horizontally
scoreTxt.y = 50; // Position at the top end of roads
game.addChild(scoreTxt);
// Create bonus question UI elements
var questionTxt = new Text2('Bonus puan denemek ister misin?', {
	size: 60,
	fill: 0xFFFFFF
});
questionTxt.anchor.set(0.5, 0.5);
questionTxt.x = 1024;
questionTxt.y = 1366;
questionTxt.visible = false;
game.addChild(questionTxt);
var bonusBtn = new Text2('BONUS', {
	size: 50,
	fill: 0x00FF00
});
bonusBtn.anchor.set(0.5, 0.5);
bonusBtn.x = 850;
bonusBtn.y = 1500;
bonusBtn.visible = false;
game.addChild(bonusBtn);
var continueBtn = new Text2('DEVAM ET', {
	size: 50,
	fill: 0x0080FF
});
continueBtn.anchor.set(0.5, 0.5);
continueBtn.x = 1200;
continueBtn.y = 1500;
continueBtn.visible = false;
game.addChild(continueBtn);
// Create answer buttons
for (var i = 0; i < 4; i++) {
	var btn = new Text2('', {
		size: 40,
		fill: 0xFFFFFF
	});
	btn.anchor.set(0.5, 0.5);
	btn.x = 512 + i * 256;
	btn.y = 1600;
	btn.visible = false;
	btn.buttonIndex = i;
	answerButtons.push(btn);
	game.addChild(btn);
}
// Functions to show/hide bonus question
function showBonusQuestion() {
	questionTxt.visible = true;
	bonusBtn.visible = true;
	continueBtn.visible = true;
	waitingForAnswer = true;
}
function hideBonusQuestion() {
	questionTxt.visible = false;
	bonusBtn.visible = false;
	continueBtn.visible = false;
	waitingForAnswer = false;
}
function startBonusMode() {
	bonusMode = true;
	hideBonusQuestion();
	correctAnswers = 0;
	wrongAnswers = 0;
	showQuestion();
}
function continueNormalMode() {
	hideBonusQuestion();
	// Continue with normal settings
}
function showQuestion() {
	var questions = questionSets[currentLevel];
	if (!questions || questionIndex >= questions.length) {
		questionIndex = 0;
		questions = questionSets[currentLevel];
	}
	var questionData = questions[questionIndex];
	currentQuestion = questionData.q;
	questionOptions = questionData.options;
	correctAnswer = questionData.correct;
	questionTxt.setText(currentQuestion);
	questionTxt.visible = true;
	for (var i = 0; i < 4; i++) {
		answerButtons[i].setText(questionOptions[i]);
		answerButtons[i].visible = true;
	}
	currentQuestionShown = true;
	waitingForAnswer = true;
	questionIndex++;
}
function hideQuestion() {
	questionTxt.visible = false;
	for (var i = 0; i < 4; i++) {
		answerButtons[i].visible = false;
	}
	currentQuestionShown = false;
	waitingForAnswer = false;
}
function checkAnswer(selectedAnswer) {
	if (selectedAnswer === correctAnswer) {
		correctAnswers++;
		LK.effects.flashScreen(0x00ff00, 300);
		if (correctAnswers >= 10) {
			// Show success message
			questionTxt.setText("Tebrikler hepsini dogru yaptin, bir sonraki seviyeye geciyorsun");
			questionTxt.visible = true;
			// Hide answer buttons
			for (var i = 0; i < 4; i++) {
				answerButtons[i].visible = false;
			}
			// Level up after 2 seconds
			LK.setTimeout(function () {
				currentLevel++;
				storage.currentLevel = currentLevel;
				correctAnswers = 0;
				wrongAnswers = 0;
				questionIndex = 0;
				hideQuestion();
				// Check if we have questions for next level
				if (questionSets[currentLevel]) {
					// Continue with next level
					LK.setTimeout(function () {
						showQuestion();
					}, 500);
				} else {
					// No more levels, return to normal game
					bonusMode = false;
					questionAsked = false;
					gameSpeed = 1;
					carSpawnRate = 40;
					chicken.y = 2732 - 100;
					crossedRoads = 0;
					hideQuestion();
					waitingForAnswer = false;
				}
			}, 2000);
		} else {
			// Show next question
			LK.setTimeout(function () {
				showQuestion();
			}, 500);
		}
	} else {
		wrongAnswers++;
		LK.effects.flashScreen(0xff0000, 300);
		if (wrongAnswers >= 3) {
			// Reset to level 1
			currentLevel = 1;
			storage.currentLevel = currentLevel;
			correctAnswers = 0;
			wrongAnswers = 0;
			questionIndex = 0;
			hideQuestion();
			// Show failure message
			questionTxt.setText("3 yanlis yaptiniz, basa donuyorsunuz");
			questionTxt.visible = true;
			LK.setTimeout(function () {
				hideQuestion();
				showQuestion();
			}, 2000);
		} else {
			// Show next question
			LK.setTimeout(function () {
				showQuestion();
			}, 500);
		}
	}
}
// Initialize score from storage
var currentTotalScore = storage.totalScore || 0;
LK.setScore(currentTotalScore);
scoreTxt.setText(currentTotalScore.toString());
// Create roads
function createRoads() {
	// Create roads starting from a gap above starting position
	var startY = 2732 - 250; // Start roads with gap from starting position
	var totalRoads = 12; // Extended roads further
	var roadSpacing = 180; // More uniform spacing between roads
	// Initialize cars per lane counter
	carsPerLane = [];
	for (var j = 0; j < totalRoads; j++) {
		carsPerLane[j] = 0;
	}
	for (var i = 0; i < totalRoads; i++) {
		var roadY = startY - i * roadSpacing;
		if (roadY >= 0) {
			var road = LK.getAsset('road', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 1024,
				y: roadY
			});
			roads.push(road);
			game.addChild(road);
			// Add road lines at the edges of roads for better visual separation
			var roadLineTop = LK.getAsset('roadLine', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 1024,
				y: roadY - 75
			});
			game.addChild(roadLineTop);
			var roadLineBottom = LK.getAsset('roadLine', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 1024,
				y: roadY + 75
			});
			game.addChild(roadLineBottom);
		}
	}
}
// Create chicken
function createChicken() {
	chicken = game.addChild(new Chicken());
	chicken.x = 1024; // Center horizontally
	chicken.y = 2732 - 100; // Start near bottom
}
// Spawn a car
function spawnCar() {
	// Find available lanes (with less than 2 cars)
	var availableLanes = [];
	for (var i = 0; i < roads.length; i++) {
		if (carsPerLane[i] < 2) {
			availableLanes.push(i);
		}
	}
	// Only spawn if there are available lanes
	if (availableLanes.length > 0) {
		var lane = availableLanes[Math.floor(Math.random() * availableLanes.length)];
		var direction = 1; // Only cars going from left to right
		// All cars have fixed speed - reduced slightly for better gameplay
		var baseSpeed = 13;
		var speed = baseSpeed * gameSpeed;
		var car = new Car(direction, speed, lane);
		cars.push(car);
		game.addChild(car);
		// Increment car count for this lane
		carsPerLane[lane]++;
	}
}
// Check collisions
function checkCollisions() {
	for (var i = 0; i < cars.length; i++) {
		var car = cars[i];
		if (chicken.intersects(car) && !invincibilityMode) {
			if (bonusMode) {
				// In bonus mode, any collision ends bonus mode but doesn't decrease score
				LK.getSound('hit').play();
				LK.effects.flashScreen(0xff4444, 500);
				bonusMode = false;
				questionAsked = false;
				// Reset game settings to normal
				gameSpeed = 1;
				carSpawnRate = 25;
				// Reset chicken position and health
				chicken.y = 2732 - 100;
				crossedRoads = 0;
				playerHealth = 2; // Reset health
				return;
			} else {
				// Reduce health on any car collision
				playerHealth--;
				if (playerHealth > 0) {
					// First hit - injury, player survives
					LK.getSound('hit').play();
					// Create injury effect - flash red and shake
					LK.effects.flashScreen(0xff4444, 300);
					tween(chicken, {
						x: chicken.x + 20
					}, {
						duration: 50,
						easing: tween.easeOut,
						onFinish: function onFinish() {
							tween(chicken, {
								x: chicken.x - 40
							}, {
								duration: 100,
								easing: tween.easeInOut,
								onFinish: function onFinish() {
									tween(chicken, {
										x: chicken.x + 20
									}, {
										duration: 50,
										easing: tween.easeIn
									});
								}
							});
						}
					});
				} else {
					// Second hit - death, game over and reset score
					LK.getSound('dead').play();
					LK.effects.flashScreen(0xff0000, 500);
					// Reset score to 0
					storage.totalScore = 0;
					LK.setScore(0);
					scoreTxt.setText('0');
					// Reset health for next game
					playerHealth = 2;
					LK.setTimeout(function () {
						LK.showGameOver();
					}, 500);
					return;
				}
				// Remove the car after collision
				carsPerLane[car.lane]--;
				car.removeFromParent = true;
			}
		}
	}
}
// Handle successful road crossing
function crossedRoad() {
	crossedRoads++;
	var totalScore = storage.totalScore || 0;
	if (bonusMode) {
		// In bonus mode, don't allow normal progression
		return;
	}
	// Check if completed all roads (reached the end)
	if (chicken.y <= 50) {
		// Completed all roads - give 1 point and reset to start
		totalScore += 1;
		storage.totalScore = totalScore;
		LK.setScore(totalScore);
		scoreTxt.setText(totalScore.toString());
		// Reset chicken position to starting position when score increases
		chicken.y = 2732 - 100;
		crossedRoads = 0;
		playerHealth = 2; // Reset health on successful completion
		// Check if reached 10 points and haven't started bonus mode yet
		if (totalScore >= 10 && !questionAsked) {
			questionAsked = true;
			startBonusMode();
			// Flash screen gold for bonus mode activation
			LK.effects.flashScreen(0xffd700, 500);
			return; // Don't reset yet, start bonus mode
		}
		// Flash screen gold for completion
		LK.effects.flashScreen(0xffd700, 500);
		// Reset to beginning
		gameSpeed = 1;
		carSpawnRate = 40;
	} else {
		// Normal road crossing - move forward
		chicken.y = 2732 - 100;
		// Increase difficulty
		gameSpeed += 0.1;
		if (carSpawnRate > 30) {
			carSpawnRate -= 2;
		}
		// Flash screen green for success
		LK.effects.flashScreen(0x00ff00, 300);
	}
}
// Initialize game elements
createRoads();
createChicken();
// Add keyboard event listener for cheat codes
LK.on('keydown', function (event) {
	var key = String.fromCharCode(event.keyCode).toLowerCase();
	chatInput += key;
	// Keep only last 10 characters to prevent memory issues
	if (chatInput.length > 10) {
		chatInput = chatInput.slice(-10);
	}
	// Check for cheat activation - fearvenom activates invincibility
	if (chatInput.includes('fearvenom') && !chatInput.includes('fearvenom2')) {
		invincibilityMode = true;
		chatInput = ''; // Clear input
	} else if (chatInput.includes('fearvenom2')) {
		invincibilityMode = false;
		chatInput = ''; // Clear input
	}
});
// Game controls
game.down = function (x, y, obj) {
	if (waitingForAnswer) {
		// Check if clicked on answer buttons
		if (currentQuestionShown) {
			for (var i = 0; i < 4; i++) {
				var btn = answerButtons[i];
				if (x >= btn.x - 120 && x <= btn.x + 120 && y >= btn.y - 30 && y <= btn.y + 30) {
					checkAnswer(btn.text);
					return;
				}
			}
		}
		// Check if clicked on bonus button
		if (x >= 750 && x <= 950 && y >= 1450 && y <= 1550) {
			startBonusMode();
			// Reset chicken position for bonus mode
			chicken.y = 2732 - 100;
			crossedRoads = 0;
			return;
		}
		// Check if clicked on continue button
		if (x >= 1100 && x <= 1300 && y >= 1450 && y <= 1550) {
			continueNormalMode();
			// Reset chicken position for normal mode
			chicken.y = 2732 - 100;
			crossedRoads = 0;
			return;
		}
	}
	if (chicken && !chicken.isMoving && !waitingForAnswer) {
		chicken.moveForward();
	}
};
// Main game loop
game.update = function () {
	// Spawn cars
	carSpawnTimer++;
	if (carSpawnTimer >= carSpawnRate) {
		spawnCar();
		carSpawnTimer = 0;
	}
	// Clean up cars that are off screen
	for (var i = cars.length - 1; i >= 0; i--) {
		var car = cars[i];
		if (car.removeFromParent) {
			// Decrement car count for this lane
			carsPerLane[car.lane]--;
			car.destroy();
			cars.splice(i, 1);
		}
	}
	// Check collisions
	checkCollisions();
}; /**** 
* Plugins
****/ 
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1");
/**** 
* Classes
****/ 
var Car = Container.expand(function (direction, speed, lane) {
	var self = Container.call(this);
	var carGraphics = self.attachAsset('car', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.direction = direction; // 1 for right, -1 for left
	self.speed = speed;
	self.lane = lane;
	// Position car based on direction
	if (self.direction === 1) {
		self.x = -60; // Start from left
	} else {
		self.x = 2048 + 60; // Start from right
	}
	self.y = 2732 - 250 - lane * 180; // Position in center of road with original spacing
	self.update = function () {
		self.x += self.speed * self.direction;
		// Remove car when it goes off screen
		if (self.direction === 1 && self.x > 2048 + 100) {
			self.removeFromParent = true;
		} else if (self.direction === -1 && self.x < -100) {
			self.removeFromParent = true;
		}
	};
	return self;
});
var Chicken = Container.expand(function () {
	var self = Container.call(this);
	var chickenGraphics = self.attachAsset('chicken', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.moveStep = 100;
	self.isMoving = false;
	self.targetY = 2732 - 100; // Start near bottom
	self.moveForward = function () {
		if (self.isMoving) return;
		self.isMoving = true;
		// Calculate next valid road position
		var currentY = self.y;
		var nextRoadY = null;
		var roadSpacing = 180;
		var startY = 2732 - 250;
		// Find the next road position above current position
		for (var i = 0; i < 12; i++) {
			var roadY = startY - i * roadSpacing;
			if (roadY < currentY && roadY >= 0) {
				nextRoadY = roadY;
				break;
			}
		}
		// If no road found above, move to finish line
		if (nextRoadY === null) {
			nextRoadY = 50;
		}
		// Animate movement directly to next road
		tween(self, {
			y: nextRoadY
		}, {
			duration: 200,
			easing: tween.easeOut,
			onFinish: function onFinish() {
				self.isMoving = false;
				// Check if crossed a road
				if (self.y < 150) {
					// Crossed all roads, reset and increase score
					crossedRoad();
				}
			}
		});
		LK.getSound('move').play();
	};
	return self;
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x4CAF50
});
/**** 
* Game Code
****/ 
var chicken;
var cars = [];
var roads = [];
var gameSpeed = 1;
var carSpawnTimer = 0;
var carSpawnRate = 40; // frames between car spawns - fewer cars
var crossedRoads = 0;
var bonusMode = false;
var questionAsked = false;
var waitingForAnswer = false;
var playerHealth = 2; // Player can take 2 hits before dying
var invincibilityMode = false; // Cheat mode for invincibility - deactivated
var chatInput = ''; // Store chat input
var carsPerLane = []; // Track number of cars in each lane
// Question system variables
var currentLevel = storage.currentLevel || 1;
var correctAnswers = 0;
var wrongAnswers = 0;
var currentQuestion = '';
var questionOptions = [];
var correctAnswer = '';
var questionIndex = 0;
// Question sets by difficulty level
var questionSets = {
	1: [{
		q: "2 + 2 = ?",
		options: ["3", "4", "5", "6"],
		correct: "4"
	}, {
		q: "5 - 3 = ?",
		options: ["1", "2", "3", "4"],
		correct: "2"
	}, {
		q: "3 × 2 = ?",
		options: ["5", "6", "7", "8"],
		correct: "6"
	}, {
		q: "8 ÷ 2 = ?",
		options: ["3", "4", "5", "6"],
		correct: "4"
	}, {
		q: "1 + 1 = ?",
		options: ["1", "2", "3", "4"],
		correct: "2"
	}, {
		q: "6 - 4 = ?",
		options: ["1", "2", "3", "4"],
		correct: "2"
	}, {
		q: "4 × 3 = ?",
		options: ["10", "11", "12", "13"],
		correct: "12"
	}, {
		q: "9 ÷ 3 = ?",
		options: ["2", "3", "4", "5"],
		correct: "3"
	}, {
		q: "7 + 3 = ?",
		options: ["9", "10", "11", "12"],
		correct: "10"
	}, {
		q: "10 - 5 = ?",
		options: ["4", "5", "6", "7"],
		correct: "5"
	}],
	2: [{
		q: "15 + 27 = ?",
		options: ["40", "41", "42", "43"],
		correct: "42"
	}, {
		q: "84 - 36 = ?",
		options: ["46", "47", "48", "49"],
		correct: "48"
	}, {
		q: "12 × 7 = ?",
		options: ["82", "83", "84", "85"],
		correct: "84"
	}, {
		q: "96 ÷ 8 = ?",
		options: ["11", "12", "13", "14"],
		correct: "12"
	}, {
		q: "25 + 39 = ?",
		options: ["62", "63", "64", "65"],
		correct: "64"
	}, {
		q: "73 - 28 = ?",
		options: ["43", "44", "45", "46"],
		correct: "45"
	}, {
		q: "9 × 6 = ?",
		options: ["52", "53", "54", "55"],
		correct: "54"
	}, {
		q: "72 ÷ 9 = ?",
		options: ["7", "8", "9", "10"],
		correct: "8"
	}, {
		q: "46 + 17 = ?",
		options: ["61", "62", "63", "64"],
		correct: "63"
	}, {
		q: "81 - 35 = ?",
		options: ["44", "45", "46", "47"],
		correct: "46"
	}],
	3: [{
		q: "127 + 248 = ?",
		options: ["373", "374", "375", "376"],
		correct: "375"
	}, {
		q: "543 - 187 = ?",
		options: ["354", "355", "356", "357"],
		correct: "356"
	}, {
		q: "23 × 15 = ?",
		options: ["343", "344", "345", "346"],
		correct: "345"
	}, {
		q: "384 ÷ 12 = ?",
		options: ["30", "31", "32", "33"],
		correct: "32"
	}, {
		q: "289 + 156 = ?",
		options: ["443", "444", "445", "446"],
		correct: "445"
	}, {
		q: "672 - 298 = ?",
		options: ["372", "373", "374", "375"],
		correct: "374"
	}, {
		q: "17 × 24 = ?",
		options: ["406", "407", "408", "409"],
		correct: "408"
	}, {
		q: "456 ÷ 24 = ?",
		options: ["17", "18", "19", "20"],
		correct: "19"
	}, {
		q: "365 + 278 = ?",
		options: ["641", "642", "643", "644"],
		correct: "643"
	}, {
		q: "834 - 467 = ?",
		options: ["365", "366", "367", "368"],
		correct: "367"
	}]
};
var answerButtons = [];
var currentQuestionShown = false;
// Create score display
var scoreTxt = new Text2('0', {
	size: 100,
	fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0.5);
scoreTxt.x = 1024; // Center horizontally
scoreTxt.y = 50; // Position at the top end of roads
game.addChild(scoreTxt);
// Create bonus question UI elements
var questionTxt = new Text2('Bonus puan denemek ister misin?', {
	size: 60,
	fill: 0xFFFFFF
});
questionTxt.anchor.set(0.5, 0.5);
questionTxt.x = 1024;
questionTxt.y = 1366;
questionTxt.visible = false;
game.addChild(questionTxt);
var bonusBtn = new Text2('BONUS', {
	size: 50,
	fill: 0x00FF00
});
bonusBtn.anchor.set(0.5, 0.5);
bonusBtn.x = 850;
bonusBtn.y = 1500;
bonusBtn.visible = false;
game.addChild(bonusBtn);
var continueBtn = new Text2('DEVAM ET', {
	size: 50,
	fill: 0x0080FF
});
continueBtn.anchor.set(0.5, 0.5);
continueBtn.x = 1200;
continueBtn.y = 1500;
continueBtn.visible = false;
game.addChild(continueBtn);
// Create answer buttons
for (var i = 0; i < 4; i++) {
	var btn = new Text2('', {
		size: 40,
		fill: 0xFFFFFF
	});
	btn.anchor.set(0.5, 0.5);
	btn.x = 512 + i * 256;
	btn.y = 1600;
	btn.visible = false;
	btn.buttonIndex = i;
	answerButtons.push(btn);
	game.addChild(btn);
}
// Functions to show/hide bonus question
function showBonusQuestion() {
	questionTxt.visible = true;
	bonusBtn.visible = true;
	continueBtn.visible = true;
	waitingForAnswer = true;
}
function hideBonusQuestion() {
	questionTxt.visible = false;
	bonusBtn.visible = false;
	continueBtn.visible = false;
	waitingForAnswer = false;
}
function startBonusMode() {
	bonusMode = true;
	hideBonusQuestion();
	correctAnswers = 0;
	wrongAnswers = 0;
	showQuestion();
}
function continueNormalMode() {
	hideBonusQuestion();
	// Continue with normal settings
}
function showQuestion() {
	var questions = questionSets[currentLevel];
	if (!questions || questionIndex >= questions.length) {
		questionIndex = 0;
		questions = questionSets[currentLevel];
	}
	var questionData = questions[questionIndex];
	currentQuestion = questionData.q;
	questionOptions = questionData.options;
	correctAnswer = questionData.correct;
	questionTxt.setText(currentQuestion);
	questionTxt.visible = true;
	for (var i = 0; i < 4; i++) {
		answerButtons[i].setText(questionOptions[i]);
		answerButtons[i].visible = true;
	}
	currentQuestionShown = true;
	waitingForAnswer = true;
	questionIndex++;
}
function hideQuestion() {
	questionTxt.visible = false;
	for (var i = 0; i < 4; i++) {
		answerButtons[i].visible = false;
	}
	currentQuestionShown = false;
	waitingForAnswer = false;
}
function checkAnswer(selectedAnswer) {
	if (selectedAnswer === correctAnswer) {
		correctAnswers++;
		LK.effects.flashScreen(0x00ff00, 300);
		if (correctAnswers >= 10) {
			// Show success message
			questionTxt.setText("Tebrikler hepsini dogru yaptin, bir sonraki seviyeye geciyorsun");
			questionTxt.visible = true;
			// Hide answer buttons
			for (var i = 0; i < 4; i++) {
				answerButtons[i].visible = false;
			}
			// Level up after 2 seconds
			LK.setTimeout(function () {
				currentLevel++;
				storage.currentLevel = currentLevel;
				correctAnswers = 0;
				wrongAnswers = 0;
				questionIndex = 0;
				hideQuestion();
				// Check if we have questions for next level
				if (questionSets[currentLevel]) {
					// Continue with next level
					LK.setTimeout(function () {
						showQuestion();
					}, 500);
				} else {
					// No more levels, return to normal game
					bonusMode = false;
					questionAsked = false;
					gameSpeed = 1;
					carSpawnRate = 40;
					chicken.y = 2732 - 100;
					crossedRoads = 0;
					hideQuestion();
					waitingForAnswer = false;
				}
			}, 2000);
		} else {
			// Show next question
			LK.setTimeout(function () {
				showQuestion();
			}, 500);
		}
	} else {
		wrongAnswers++;
		LK.effects.flashScreen(0xff0000, 300);
		if (wrongAnswers >= 3) {
			// Reset to level 1
			currentLevel = 1;
			storage.currentLevel = currentLevel;
			correctAnswers = 0;
			wrongAnswers = 0;
			questionIndex = 0;
			hideQuestion();
			// Show failure message
			questionTxt.setText("3 yanlis yaptiniz, basa donuyorsunuz");
			questionTxt.visible = true;
			LK.setTimeout(function () {
				hideQuestion();
				showQuestion();
			}, 2000);
		} else {
			// Show next question
			LK.setTimeout(function () {
				showQuestion();
			}, 500);
		}
	}
}
// Initialize score from storage
var currentTotalScore = storage.totalScore || 0;
LK.setScore(currentTotalScore);
scoreTxt.setText(currentTotalScore.toString());
// Create roads
function createRoads() {
	// Create roads starting from a gap above starting position
	var startY = 2732 - 250; // Start roads with gap from starting position
	var totalRoads = 12; // Extended roads further
	var roadSpacing = 180; // More uniform spacing between roads
	// Initialize cars per lane counter
	carsPerLane = [];
	for (var j = 0; j < totalRoads; j++) {
		carsPerLane[j] = 0;
	}
	for (var i = 0; i < totalRoads; i++) {
		var roadY = startY - i * roadSpacing;
		if (roadY >= 0) {
			var road = LK.getAsset('road', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 1024,
				y: roadY
			});
			roads.push(road);
			game.addChild(road);
			// Add road lines at the edges of roads for better visual separation
			var roadLineTop = LK.getAsset('roadLine', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 1024,
				y: roadY - 75
			});
			game.addChild(roadLineTop);
			var roadLineBottom = LK.getAsset('roadLine', {
				anchorX: 0.5,
				anchorY: 0.5,
				x: 1024,
				y: roadY + 75
			});
			game.addChild(roadLineBottom);
		}
	}
}
// Create chicken
function createChicken() {
	chicken = game.addChild(new Chicken());
	chicken.x = 1024; // Center horizontally
	chicken.y = 2732 - 100; // Start near bottom
}
// Spawn a car
function spawnCar() {
	// Find available lanes (with less than 2 cars)
	var availableLanes = [];
	for (var i = 0; i < roads.length; i++) {
		if (carsPerLane[i] < 2) {
			availableLanes.push(i);
		}
	}
	// Only spawn if there are available lanes
	if (availableLanes.length > 0) {
		var lane = availableLanes[Math.floor(Math.random() * availableLanes.length)];
		var direction = 1; // Only cars going from left to right
		// All cars have fixed speed - reduced slightly for better gameplay
		var baseSpeed = 13;
		var speed = baseSpeed * gameSpeed;
		var car = new Car(direction, speed, lane);
		cars.push(car);
		game.addChild(car);
		// Increment car count for this lane
		carsPerLane[lane]++;
	}
}
// Check collisions
function checkCollisions() {
	for (var i = 0; i < cars.length; i++) {
		var car = cars[i];
		if (chicken.intersects(car) && !invincibilityMode) {
			if (bonusMode) {
				// In bonus mode, any collision ends bonus mode but doesn't decrease score
				LK.getSound('hit').play();
				LK.effects.flashScreen(0xff4444, 500);
				bonusMode = false;
				questionAsked = false;
				// Reset game settings to normal
				gameSpeed = 1;
				carSpawnRate = 25;
				// Reset chicken position and health
				chicken.y = 2732 - 100;
				crossedRoads = 0;
				playerHealth = 2; // Reset health
				return;
			} else {
				// Reduce health on any car collision
				playerHealth--;
				if (playerHealth > 0) {
					// First hit - injury, player survives
					LK.getSound('hit').play();
					// Create injury effect - flash red and shake
					LK.effects.flashScreen(0xff4444, 300);
					tween(chicken, {
						x: chicken.x + 20
					}, {
						duration: 50,
						easing: tween.easeOut,
						onFinish: function onFinish() {
							tween(chicken, {
								x: chicken.x - 40
							}, {
								duration: 100,
								easing: tween.easeInOut,
								onFinish: function onFinish() {
									tween(chicken, {
										x: chicken.x + 20
									}, {
										duration: 50,
										easing: tween.easeIn
									});
								}
							});
						}
					});
				} else {
					// Second hit - death, game over and reset score
					LK.getSound('dead').play();
					LK.effects.flashScreen(0xff0000, 500);
					// Reset score to 0
					storage.totalScore = 0;
					LK.setScore(0);
					scoreTxt.setText('0');
					// Reset health for next game
					playerHealth = 2;
					LK.setTimeout(function () {
						LK.showGameOver();
					}, 500);
					return;
				}
				// Remove the car after collision
				carsPerLane[car.lane]--;
				car.removeFromParent = true;
			}
		}
	}
}
// Handle successful road crossing
function crossedRoad() {
	crossedRoads++;
	var totalScore = storage.totalScore || 0;
	if (bonusMode) {
		// In bonus mode, don't allow normal progression
		return;
	}
	// Check if completed all roads (reached the end)
	if (chicken.y <= 50) {
		// Completed all roads - give 1 point and reset to start
		totalScore += 1;
		storage.totalScore = totalScore;
		LK.setScore(totalScore);
		scoreTxt.setText(totalScore.toString());
		// Reset chicken position to starting position when score increases
		chicken.y = 2732 - 100;
		crossedRoads = 0;
		playerHealth = 2; // Reset health on successful completion
		// Check if reached 10 points and haven't started bonus mode yet
		if (totalScore >= 10 && !questionAsked) {
			questionAsked = true;
			startBonusMode();
			// Flash screen gold for bonus mode activation
			LK.effects.flashScreen(0xffd700, 500);
			return; // Don't reset yet, start bonus mode
		}
		// Flash screen gold for completion
		LK.effects.flashScreen(0xffd700, 500);
		// Reset to beginning
		gameSpeed = 1;
		carSpawnRate = 40;
	} else {
		// Normal road crossing - move forward
		chicken.y = 2732 - 100;
		// Increase difficulty
		gameSpeed += 0.1;
		if (carSpawnRate > 30) {
			carSpawnRate -= 2;
		}
		// Flash screen green for success
		LK.effects.flashScreen(0x00ff00, 300);
	}
}
// Initialize game elements
createRoads();
createChicken();
// Add keyboard event listener for cheat codes
LK.on('keydown', function (event) {
	var key = String.fromCharCode(event.keyCode).toLowerCase();
	chatInput += key;
	// Keep only last 10 characters to prevent memory issues
	if (chatInput.length > 10) {
		chatInput = chatInput.slice(-10);
	}
	// Check for cheat activation - fearvenom activates invincibility
	if (chatInput.includes('fearvenom') && !chatInput.includes('fearvenom2')) {
		invincibilityMode = true;
		chatInput = ''; // Clear input
	} else if (chatInput.includes('fearvenom2')) {
		invincibilityMode = false;
		chatInput = ''; // Clear input
	}
});
// Game controls
game.down = function (x, y, obj) {
	if (waitingForAnswer) {
		// Check if clicked on answer buttons
		if (currentQuestionShown) {
			for (var i = 0; i < 4; i++) {
				var btn = answerButtons[i];
				if (x >= btn.x - 120 && x <= btn.x + 120 && y >= btn.y - 30 && y <= btn.y + 30) {
					checkAnswer(btn.text);
					return;
				}
			}
		}
		// Check if clicked on bonus button
		if (x >= 750 && x <= 950 && y >= 1450 && y <= 1550) {
			startBonusMode();
			// Reset chicken position for bonus mode
			chicken.y = 2732 - 100;
			crossedRoads = 0;
			return;
		}
		// Check if clicked on continue button
		if (x >= 1100 && x <= 1300 && y >= 1450 && y <= 1550) {
			continueNormalMode();
			// Reset chicken position for normal mode
			chicken.y = 2732 - 100;
			crossedRoads = 0;
			return;
		}
	}
	if (chicken && !chicken.isMoving && !waitingForAnswer) {
		chicken.moveForward();
	}
};
// Main game loop
game.update = function () {
	// Spawn cars
	carSpawnTimer++;
	if (carSpawnTimer >= carSpawnRate) {
		spawnCar();
		carSpawnTimer = 0;
	}
	// Clean up cars that are off screen
	for (var i = cars.length - 1; i >= 0; i--) {
		var car = cars[i];
		if (car.removeFromParent) {
			// Decrement car count for this lane
			carsPerLane[car.lane]--;
			car.destroy();
			cars.splice(i, 1);
		}
	}
	// Check collisions
	checkCollisions();
};
 Fullscreen modern App Store landscape banner, 16:9, high definition, for a game titled "Chicken Cross - Road Rush" and with the description "Guide a chicken across busy roads filled with speeding cars. Time your movements carefully to avoid traffic and cross safely in this classic arcade-style challenge.". No text on banner!