/**** 
* Classes
****/ 
var Coin = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('coin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 10;
	self.update = function () {
		self.x -= self.speed;
		if (self.x < -50) {
			self.destroy();
		}
	};
	return self;
});
var Enemy = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('enemy', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.update = function () {
		self.x -= self.speed;
		if (self.x < -50) {
			self.destroy();
		}
	};
	return self;
});
var Platform = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('platform', {
		anchorX: 0.5,
		anchorY: 0.5
	}).alpha = 0.5;
	return self;
});
var Player = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('player', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.jumpHeight = 40;
	self.isJumping = false;
	self.velocityY = 0;
	self.coinCount = 0;
	self.hasJokerImmunity = false;
	self.useJoker = function () {
		if (self.hasJokerImmunity) {
			self.hasJokerImmunity = false;
			jokerIcon.visible = false;
		}
	};
	self.update = function () {
		if (self.isJumping) {
			self.y += self.velocityY;
			self.velocityY += 0.7;
			if (self.y >= 2732 / 2) {
				self.y = 2732 / 2;
				self.isJumping = false;
				self.velocityY = 0;
			}
		}
	};
	self.jump = function () {
		if (!self.isJumping) {
			self.isJumping = true;
			self.velocityY = -self.jumpHeight;
		}
	};
	return self;
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0xADD8E6
});
/**** 
* Game Code
****/ 
function _toConsumableArray(r) {
	return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
}
function _nonIterableSpread() {
	throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _unsupportedIterableToArray(r, a) {
	if (r) {
		if ("string" == typeof r) {
			return _arrayLikeToArray(r, a);
		}
		var t = {}.toString.call(r).slice(8, -1);
		return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
	}
}
function _iterableToArray(r) {
	if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) {
		return Array.from(r);
	}
}
function _arrayWithoutHoles(r) {
	if (Array.isArray(r)) {
		return _arrayLikeToArray(r);
	}
}
function _arrayLikeToArray(r, a) {
	(null == a || a > r.length) && (a = r.length);
	for (var e = 0, n = Array(a); e < a; e++) {
		n[e] = r[e];
	}
	return n;
}
var background = game.addChild(LK.getAsset('background', {
	anchorX: 0,
	anchorY: 0
}));
background.x = 0;
background.y = 0;
var platforms = [];
for (var i = 1; i < 7; i++) {
	var platform = new Platform();
	platform.x = 2048 / 2;
	platform.y = 2732 / 7 * i;
	platforms.push(platform);
	game.addChild(platform);
}
var player = game.addChild(new Player());
player.currentPlatform = platforms[5];
player.y = player.currentPlatform.y - player.height + 100;
player.x = 250;
var enemies = [];
var coins = [];
var jokers = [];
var coinCount = 0;
var enemySpawnCounter = 0;
var enemySpawnInterval = 100;
var scoreText = new Text2('0', {
	size: 100,
	fill: 0xFFFFFF
});
LK.gui.top.addChild(scoreText);
scoreText.x = 2048 / 2;
scoreText.y = 0;
var coinText = new Text2('Coins: 0', {
	size: 80,
	fill: 0xFFFF00
});
LK.gui.bottom.addChild(coinText);
coinText.x = 2048 / 2;
coinText.y = 2732 - coinText.height;
LK.playMusic('music');
LK.playMusic('music2');
function spawnCoinOnPlatform(platform) {
	var coin = new Coin();
	coin.x = 2048;
	coin.y = platform.y - 150;
	game.addChild(coin);
	coins.push(coin);
}
function updatePlayer() {
	player.speed += 2;
	player.jumpHeight += 10;
}
game.update = function () {
	player.update();
	if (LK.ticks % 3600 === 0 && LK.ticks <= 18000) {
		// Increase speed every minute until the 5th minute
		coins.forEach(function (c) {
			c.speed += 0.6;
		});
		enemies.forEach(function (e) {
			e.speed += 0.6;
		});
	}
	enemySpawnCounter++;
	if (enemySpawnCounter >= enemySpawnInterval && enemies.length === 0) {
		var usedPlatforms = [];
		var platformCount = LK.ticks < 900 ? 3 : LK.ticks < 2700 ? 4 : 5;
		for (var i = 0; i < platformCount; i++) {
			var enemy = new Enemy();
			enemy.x = 2048;
			var idx;
			do {
				idx = Math.floor(Math.random() * platforms.length);
			} while (usedPlatforms.includes(idx));
			usedPlatforms.push(idx);
			enemy.y = platforms[idx].y - enemy.height + 50;
			enemies.push(enemy);
			game.addChild(enemy);
		}
		enemySpawnInterval = Math.floor(Math.random() * 200) + 50;
		enemySpawnCounter = 0;
		var coinPlatforms = Array.from(Array(6).keys()).filter(function (i) {
			return !usedPlatforms.includes(i);
		});
		if (coinPlatforms.length > 0) {
			var coinIndex = coinPlatforms[Math.floor(Math.random() * coinPlatforms.length)];
			spawnCoinOnPlatform(platforms[coinIndex]);
		}
	}
	enemies = enemies.filter(function (e) {
		e.update();
		if (player.intersects(e)) {
			if (player.hasJokerImmunity) {
				player.useJoker();
			} else if (player.lives > 1) {
				player.lives -= 1; // Decrease player's life
			} else {
				LK.getSound('enemySound').play();
				LK.setTimeout(function () {
					LK.effects.flashScreen(0xff0000, 1000);
					LK.showGameOver();
				}, 500);
			}
		} else if (player.x > e.x && !e.passed) {
			e.passed = true;
			LK.setScore(LK.getScore() + 1);
			scoreText.setText(LK.getScore());
		}
		if (e.x < -50) {
			game.removeChild(e);
			return false;
		}
		return true;
	});
	coins = coins.filter(function (c) {
		if (player.intersects(c)) {
			game.removeChild(c);
			coinCount += 5;
			coinText.setText('Coins: ' + coinCount);
			LK.setScore(LK.getScore() + 5);
			scoreText.setText('Best Score: ' + LK.getScore());
			LK.getSound('coinSound').play();
			if (coinCount >= 10) {
				updatePlayer();
			}
			return false;
		}
		return true;
	});
};
game.down = function (x, y, obj) {
	var idx = platforms.indexOf(player.currentPlatform);
	player.currentPlatform = idx === 5 ? platforms[0] : platforms[idx + 1];
	player.y = player.currentPlatform.y - player.height + 100;
}; /**** 
* Classes
****/ 
var Coin = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('coin', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 10;
	self.update = function () {
		self.x -= self.speed;
		if (self.x < -50) {
			self.destroy();
		}
	};
	return self;
});
var Enemy = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('enemy', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.update = function () {
		self.x -= self.speed;
		if (self.x < -50) {
			self.destroy();
		}
	};
	return self;
});
var Platform = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('platform', {
		anchorX: 0.5,
		anchorY: 0.5
	}).alpha = 0.5;
	return self;
});
var Player = Container.expand(function () {
	var self = Container.call(this);
	self.attachAsset('player', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5;
	self.jumpHeight = 40;
	self.isJumping = false;
	self.velocityY = 0;
	self.coinCount = 0;
	self.hasJokerImmunity = false;
	self.useJoker = function () {
		if (self.hasJokerImmunity) {
			self.hasJokerImmunity = false;
			jokerIcon.visible = false;
		}
	};
	self.update = function () {
		if (self.isJumping) {
			self.y += self.velocityY;
			self.velocityY += 0.7;
			if (self.y >= 2732 / 2) {
				self.y = 2732 / 2;
				self.isJumping = false;
				self.velocityY = 0;
			}
		}
	};
	self.jump = function () {
		if (!self.isJumping) {
			self.isJumping = true;
			self.velocityY = -self.jumpHeight;
		}
	};
	return self;
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0xADD8E6
});
/**** 
* Game Code
****/ 
function _toConsumableArray(r) {
	return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();
}
function _nonIterableSpread() {
	throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _unsupportedIterableToArray(r, a) {
	if (r) {
		if ("string" == typeof r) {
			return _arrayLikeToArray(r, a);
		}
		var t = {}.toString.call(r).slice(8, -1);
		return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
	}
}
function _iterableToArray(r) {
	if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) {
		return Array.from(r);
	}
}
function _arrayWithoutHoles(r) {
	if (Array.isArray(r)) {
		return _arrayLikeToArray(r);
	}
}
function _arrayLikeToArray(r, a) {
	(null == a || a > r.length) && (a = r.length);
	for (var e = 0, n = Array(a); e < a; e++) {
		n[e] = r[e];
	}
	return n;
}
var background = game.addChild(LK.getAsset('background', {
	anchorX: 0,
	anchorY: 0
}));
background.x = 0;
background.y = 0;
var platforms = [];
for (var i = 1; i < 7; i++) {
	var platform = new Platform();
	platform.x = 2048 / 2;
	platform.y = 2732 / 7 * i;
	platforms.push(platform);
	game.addChild(platform);
}
var player = game.addChild(new Player());
player.currentPlatform = platforms[5];
player.y = player.currentPlatform.y - player.height + 100;
player.x = 250;
var enemies = [];
var coins = [];
var jokers = [];
var coinCount = 0;
var enemySpawnCounter = 0;
var enemySpawnInterval = 100;
var scoreText = new Text2('0', {
	size: 100,
	fill: 0xFFFFFF
});
LK.gui.top.addChild(scoreText);
scoreText.x = 2048 / 2;
scoreText.y = 0;
var coinText = new Text2('Coins: 0', {
	size: 80,
	fill: 0xFFFF00
});
LK.gui.bottom.addChild(coinText);
coinText.x = 2048 / 2;
coinText.y = 2732 - coinText.height;
LK.playMusic('music');
LK.playMusic('music2');
function spawnCoinOnPlatform(platform) {
	var coin = new Coin();
	coin.x = 2048;
	coin.y = platform.y - 150;
	game.addChild(coin);
	coins.push(coin);
}
function updatePlayer() {
	player.speed += 2;
	player.jumpHeight += 10;
}
game.update = function () {
	player.update();
	if (LK.ticks % 3600 === 0 && LK.ticks <= 18000) {
		// Increase speed every minute until the 5th minute
		coins.forEach(function (c) {
			c.speed += 0.6;
		});
		enemies.forEach(function (e) {
			e.speed += 0.6;
		});
	}
	enemySpawnCounter++;
	if (enemySpawnCounter >= enemySpawnInterval && enemies.length === 0) {
		var usedPlatforms = [];
		var platformCount = LK.ticks < 900 ? 3 : LK.ticks < 2700 ? 4 : 5;
		for (var i = 0; i < platformCount; i++) {
			var enemy = new Enemy();
			enemy.x = 2048;
			var idx;
			do {
				idx = Math.floor(Math.random() * platforms.length);
			} while (usedPlatforms.includes(idx));
			usedPlatforms.push(idx);
			enemy.y = platforms[idx].y - enemy.height + 50;
			enemies.push(enemy);
			game.addChild(enemy);
		}
		enemySpawnInterval = Math.floor(Math.random() * 200) + 50;
		enemySpawnCounter = 0;
		var coinPlatforms = Array.from(Array(6).keys()).filter(function (i) {
			return !usedPlatforms.includes(i);
		});
		if (coinPlatforms.length > 0) {
			var coinIndex = coinPlatforms[Math.floor(Math.random() * coinPlatforms.length)];
			spawnCoinOnPlatform(platforms[coinIndex]);
		}
	}
	enemies = enemies.filter(function (e) {
		e.update();
		if (player.intersects(e)) {
			if (player.hasJokerImmunity) {
				player.useJoker();
			} else if (player.lives > 1) {
				player.lives -= 1; // Decrease player's life
			} else {
				LK.getSound('enemySound').play();
				LK.setTimeout(function () {
					LK.effects.flashScreen(0xff0000, 1000);
					LK.showGameOver();
				}, 500);
			}
		} else if (player.x > e.x && !e.passed) {
			e.passed = true;
			LK.setScore(LK.getScore() + 1);
			scoreText.setText(LK.getScore());
		}
		if (e.x < -50) {
			game.removeChild(e);
			return false;
		}
		return true;
	});
	coins = coins.filter(function (c) {
		if (player.intersects(c)) {
			game.removeChild(c);
			coinCount += 5;
			coinText.setText('Coins: ' + coinCount);
			LK.setScore(LK.getScore() + 5);
			scoreText.setText('Best Score: ' + LK.getScore());
			LK.getSound('coinSound').play();
			if (coinCount >= 10) {
				updatePlayer();
			}
			return false;
		}
		return true;
	});
};
game.down = function (x, y, obj) {
	var idx = platforms.indexOf(player.currentPlatform);
	player.currentPlatform = idx === 5 ? platforms[0] : platforms[idx + 1];
	player.y = player.currentPlatform.y - player.height + 100;
};
:quality(85)/https://cdn.frvr.ai/67f916875706d743c23520b3.png%3F3) 
 korkunç kuş canavarı. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
:quality(85)/https://cdn.frvr.ai/67fa3d477811e0e314fb3bd8.png%3F3) 
 coin. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
:quality(85)/https://cdn.frvr.ai/67fa41140bd72c1f2dad6fed.png%3F3) 
 gökyüzü kahramanı. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows
:quality(85)/https://cdn.frvr.ai/67fa462d0bd72c1f2dad6fff.png%3F3) 
 sade gökyüzü
:quality(85)/https://cdn.frvr.ai/67faa5021463d815c0f6404c.png%3F3) 
 düz kırmızı kalp. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows