User prompt
The health replenishment still isn't working. Fix this: if I pass 20 obstacles without colliding AND my health is below 100%, add health according to the rates I provided. This addition should also be shown with a brief animation on the health bar in the center of the screen! ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
health boost didn't work ! fix it
User prompt
For every 20 obstacles we successfully pass without colliding, if our health is depleted, provide a health boost. Display this briefly in the top-left corner of the screen (e.g., "+10 Health Added"). The health boosts should scale by stage: Stage 1: +10 Health Stage 2: +20 Health Stage 3: +30 Health Stage 4: +40 Health
User prompt
Delete everything related to the canary's color settings. Just keep it as a plain asset.
User prompt
Still a problem. It should only turn red at the exact moment it hits an obstacle, then immediately revert to its original state.
User prompt
That's great, but I think there's an issue with the canary's color. When it hits an obstacle, it should just have a red effect, and then immediately return to its original color. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Each enemy should be defined as an asset, so I can change their appearance. I've defined my main player as a yellow canary. When this canary collides with any enemy, it should turn purple for 2 seconds, then revert to its original color. Random progression is good, but let's make the game a bit slower-paced. It should take longer to pass the rounds. There should be a counter that tracks each obstacle we pass. This counter should be displayed in the top right corner of the screen. Additionally, when we die, we should see the number of obstacles we successfully passed on the game over screen. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (1 edits merged)
Please save this source code
User prompt
Color Lane: Endless Obstacle Rush
Initial prompt
Game Core GAME_TYPE: Endless_Runner PERSPECTIVE: Vertical_Scrolling THEME: Obstacle_Avoidance_Racing PLAYER_GOAL: Survive_as_long_as_possible_by_avoiding_obstacles_and_defeating_final_boss Gameplay Mechanics MOVEMENT: Left/Right_Lane_Switching DIFFICULTY_SCALING: Progressive_Speed_Increase_and_Obstacle_Density_Increase_Over_Time Obstacle System TOTAL_OBSTACLE_TYPES: 18 OBSTACLE_SHAPE: Square OBSTACLE_VISUALS: Each_obstacle_type_has_a_unique_color. OBSTACLE_SPAWN_MECHANISM: Random_Selection_from_Active_Pool Obstacle Unlocking & Progression STAGE_1_ACTIVE_OBSTACLES: 7 (Initial_Set) STAGE_1_PASS_THRESHOLD: 45_Obstacles_Avoided STAGE_2_ACTIVE_OBSTACLES: 10 (Previous_7 + 3_New_Types) STAGE_2_PASS_THRESHOLD: 65_Obstacles_Avoided STAGE_3_ACTIVE_OBSTACLES: 13 (Previous_10 + 3_New_Types) STAGE_3_PASS_THRESHOLD: 85_Obstacles_Avoided STAGE_4_ACTIVE_OBSTACLES: 17 (Previous_13 + 4_New_Types) STAGE_4_PASS_THRESHOLD: 125_Obstacles_Avoided BOSS_STAGE_ACTIVE_OBSTACLES: 18 (All_Obstacles_Active) Boss Encounter BOSS_TYPE: Final_Obstacle_Encounter BOSS_APPEARANCE_CONDITION: Player_Passes_Stage_4 BOSS_DEFEAT_CONDITION: Avoid_Boss_10_Times GAME_WIN_CONDITION: Player_Defeats_Boss Player Health System HEALTH_BAR_DISPLAY: Top_Center_of_Screen, Percentage_Format (e.g., 100%) INITIAL_HEALTH: 100% Health_Loss_Per_Collision STAGE_1_OBSTACLE_DAMAGE: 20%_Health_Loss STAGE_2_OBSTACLE_DAMAGE: 30%_Health_Loss STAGE_3_OBSTACLE_DAMAGE: 40%_Health_Loss STAGE_4_OBSTACLE_DAMAGE: 50%_Health_Loss BOSS_DAMAGE: 100%_Health_Loss (Instant_Game_Over) Game Over Condition GAME_OVER_TRIGGER: Player_Health_Reaches_0% Get ready for a fast-paced, vertical endless runner where quick reflexes are your only hope! In this game, your goal is to dodge obstacles as you race forward, with the difficulty increasing and speeding up the longer you survive. Obstacle Course Ahead! You'll face a total of 18 unique obstacle types, each represented by a simple square with a distinct color. These obstacles are introduced gradually, keeping the challenge fresh. Stage 1: You'll start with 7 random obstacle types. To pass this stage, you need to successfully avoid 45 obstacles. Stage 2: If you clear the first stage, 3 new obstacle types are added to the mix, making a total of 10. You'll need to dodge 65 obstacles to progress. Stage 3: Pass Stage 2, and another 3 new types appear, bringing the total to 13. Your goal here is to avoid 85 obstacles. Stage 4: Conquer Stage 3, and a final 4 new obstacle types are introduced, making it 17 in total. You'll need to skillfully navigate through 125 obstacles. The Final Challenge: If you make it through Stage 4, all 18 obstacle types will be active as you face the ultimate boss. To win the game, you must successfully avoid the boss 10 times. Your Health Bar Keep an eye on your health bar, prominently displayed at the top center of your screen as a percentage. Colliding with obstacles will reduce your health, and the damage increases with each stage: Stage 1 obstacles: Each hit reduces your health by 20%. Stage 2 obstacles: A collision will cost you 30% of your health. Stage 3 obstacles: Brace yourself, as these hits take 40% of your health. Stage 4 obstacles: These are serious! Each impact will cost you 50% of your health. The Boss: A single hit from the final boss will result in a 100% health loss and an instant game over!
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Obstacle class: colored square, moves down, can be lane or boss var Obstacle = Container.expand(function () { var self = Container.call(this); // Default: normal obstacle self.isBoss = false; self.lane = 0; // 0-3 self.speed = 10; // will be set per stage self.color = 0xffffff; // will be set per obstacle self.size = 220; // will be set per obstacle self.passed = false; // for boss logic // Attach asset (box shape) var box = self.attachAsset('obstacle_' + self.color, { width: self.size, height: self.size, color: self.color, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); // For boss, we will override asset in code // Update per tick self.update = function () { self.y += self.speed; }; // For boss, we can flash or animate self.flash = function () { tween(box, { tint: 0xffffff }, { duration: 100, onFinish: function onFinish() { tween(box, { tint: self.color }, { duration: 200 }); } }); }; return self; }); // Player class: colored square, can switch lanes var Player = Container.expand(function () { var self = Container.call(this); self.lane = 1; // 0-3, start in lane 1 (second from left) self.size = 180; self.color = 0x00cfff; var playerBox = self.attachAsset('player', { width: self.size, height: self.size, anchorX: 0.5, anchorY: 0.5 }); // Move to lane (0-3) self.moveToLane = function (lane) { self.lane = lane; self.x = laneToX(lane); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x181818 }); /**** * Game Code ****/ // Define 18 unique obstacle assets, one for each color // --- LANE SYSTEM --- var NUM_LANES = 4; var LANE_WIDTH = 400; // 2048/4 = 512, but leave margin var LANE_MARGIN = (2048 - NUM_LANES * LANE_WIDTH) / 2; // center lanes function laneToX(lane) { // Center of each lane return LANE_MARGIN + LANE_WIDTH * lane + LANE_WIDTH / 2; } // --- PLAYER --- var player = new Player(); player.y = 2732 - 350; // 350px from bottom player.moveToLane(1); // Start in lane 1 game.addChild(player); // --- HEALTH --- var maxHealth = 100; var health = maxHealth; // Health text var healthTxt = new Text2('100%', { size: 110, fill: 0xFFFFFF }); healthTxt.anchor.set(0.5, 0); LK.gui.top.addChild(healthTxt); // --- OBSTACLE PASS COUNTER --- var obstaclesPassed = 0; var passCounterTxt = new Text2('0', { size: 110, fill: 0xFFFFFF }); passCounterTxt.anchor.set(1, 0); // right align LK.gui.topRight.addChild(passCounterTxt); // --- OBSTACLES --- var obstacles = []; var obstacleColors = [0xff3b30, 0xff9500, 0xffcc00, 0x4cd964, 0x5ac8fa, 0x007aff, 0x5856d6, 0xaf52de, 0xff2d55, 0x8e8e93, 0x34c759, 0x30b0c7, 0xfad02e, 0xf28d35, 0xe94f37, 0x393e46, 0x22223b, 0x9d4edd]; // --- STAGES --- var STAGES = [ // [numObstacles, speed, damage, minGap, maxGap] // Slower pace: more obstacles, lower speed { count: 45, speed: 10, damage: 10, minGap: 420, maxGap: 600 }, { count: 65, speed: 13, damage: 15, minGap: 370, maxGap: 540 }, { count: 85, speed: 16, damage: 20, minGap: 320, maxGap: 480 }, { count: 125, speed: 19, damage: 25, minGap: 270, maxGap: 420 }]; var currentStage = 0; var obstaclesSpawned = 0; var stageObstacleTypes = 18; // 18 unique types var stageInProgress = true; var bossMode = false; var bossHits = 0; var bossRequired = 10; // --- SPAWN CONTROL --- var spawnTimer = 0; var spawnInterval = 40; // ticks between spawns, will be randomized per stage function randomInt(a, b) { return a + Math.floor(Math.random() * (b - a + 1)); } // --- BOSS --- var bossObstacle = null; var bossActive = false; var bossCooldown = 0; // --- GAME STATE --- var gameOver = false; var youWin = false; // --- INIT OBSTACLE ASSETS (shapes) --- for (var i = 0; i < obstacleColors.length; i++) {} // --- SPAWN OBSTACLE --- function spawnObstacle(stage) { var o = new Obstacle(); // Pick random lane var lane = randomInt(0, NUM_LANES - 1); o.lane = lane; o.x = laneToX(lane); o.y = -120; // just above screen // Pick color (cycle through 18 types) var colorIdx = obstaclesSpawned % stageObstacleTypes; o.color = obstacleColors[colorIdx]; o.size = 220; o.speed = stage.speed; // Re-attach asset with correct color o.removeChildren(); o.attachAsset('obstacle_' + o.color, { width: o.size, height: o.size, color: o.color, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); obstacles.push(o); game.addChild(o); obstaclesSpawned++; } // --- SPAWN BOSS --- function spawnBoss() { var o = new Obstacle(); o.isBoss = true; o.size = 320; o.color = 0xffffff; o.speed = 32; // Boss lane: random o.lane = randomInt(0, NUM_LANES - 1); o.x = laneToX(o.lane); o.y = -180; o.removeChildren(); o.attachAsset('boss', { width: o.size, height: o.size, color: 0xffffff, shape: 'box', anchorX: 0.5, anchorY: 0.5 }); bossObstacle = o; bossActive = true; game.addChild(o); } // --- HEALTH UPDATE --- function updateHealthText() { var pct = Math.max(0, Math.round(health)); healthTxt.setText(pct + "%"); } // --- GAME OVER --- function triggerGameOver() { if (gameOver) return; gameOver = true; LK.effects.flashScreen(0xff0000, 800); // Show obstacles passed on game over screen LK.showGameOver({ score: obstaclesPassed }); } // --- YOU WIN --- function triggerYouWin() { if (youWin) return; youWin = true; LK.effects.flashScreen(0x00ff00, 800); LK.showYouWin(); } // --- PLAYER INPUT: LANE SWITCHING --- // Touch/click left/right half of screen to move game.down = function (x, y, obj) { if (gameOver || youWin) return; // Convert to game coordinates var lane = player.lane; if (x < 2048 / 2) { // Move left if (lane > 0) lane--; } else { // Move right if (lane < NUM_LANES - 1) lane++; } player.moveToLane(lane); }; // --- GAME UPDATE --- game.update = function () { if (gameOver || youWin) return; // --- SPAWN OBSTACLES --- if (!bossMode) { var stage = STAGES[currentStage]; if (obstaclesSpawned < stage.count) { if (spawnTimer <= 0) { spawnObstacle(stage); // Randomize next spawn interval spawnInterval = randomInt(stage.minGap, stage.maxGap) / stage.speed; spawnTimer = Math.max(18, Math.floor(spawnInterval)); } else { spawnTimer--; } } else if (obstacles.length === 0) { // Stage complete, next stage or boss if (currentStage < STAGES.length - 1) { currentStage++; obstaclesSpawned = 0; } else { // All stages done, boss time! bossMode = true; bossHits = 0; bossCooldown = 30; } } } // --- OBSTACLE MOVEMENT & COLLISION --- for (var i = obstacles.length - 1; i >= 0; i--) { var o = obstacles[i]; o.update(); // Remove if off screen if (o.y > 2732 + 120) { o.destroy(); obstacles.splice(i, 1); obstaclesPassed++; passCounterTxt.setText(obstaclesPassed + ""); // Health boost logic: every 20 obstacles passed, if health is below 100%, restore health and show message+animation if (obstaclesPassed % 20 === 0 && health < maxHealth) { // Only boost if we haven't just boosted at this count if (typeof lastHealthBoostObstaclesPassed === "undefined" || lastHealthBoostObstaclesPassed !== obstaclesPassed) { lastHealthBoostObstaclesPassed = obstaclesPassed; // Determine stage-based health boost var healthBoost = 0; if (currentStage === 0) healthBoost = 10;else if (currentStage === 1) healthBoost = 20;else if (currentStage === 2) healthBoost = 30;else if (currentStage === 3) healthBoost = 40; var prevHealth = health; health += healthBoost; if (health > maxHealth) health = maxHealth; // Animate health text in center (scale up, then back) tween.stop(healthTxt, { scaleX: true, scaleY: true }); healthTxt.scale.set(1, 1); tween(healthTxt, { scaleX: 1.5, scaleY: 1.5 }, { duration: 180, easing: tween.cubicOut, onFinish: function onFinish() { tween(healthTxt, { scaleX: 1, scaleY: 1 }, { duration: 220, easing: tween.cubicIn }); } }); updateHealthText(); // Show health boost message in top-left if (typeof healthBoostMsg !== "undefined" && healthBoostMsg && healthBoostMsg.parent) { LK.gui.topLeft.removeChild(healthBoostMsg); } healthBoostMsg = new Text2("+" + healthBoost + " Health Added", { size: 90, fill: 0x00ff00 }); healthBoostMsg.anchor.set(0, 0); LK.gui.topLeft.addChild(healthBoostMsg); // Remove after 1.2s LK.setTimeout(function () { if (healthBoostMsg && healthBoostMsg.parent) { LK.gui.topLeft.removeChild(healthBoostMsg); } }, 1200); } } continue; } // Collision with player if (!o.isBoss && o.lane === player.lane) { // Check overlap in y var dy = Math.abs(o.y - player.y); if (dy < (o.size + player.size) / 2 - 10) { // Hit! health -= STAGES[currentStage].damage; updateHealthText(); o.destroy(); obstacles.splice(i, 1); if (health <= 0) { triggerGameOver(); return; } } } } // --- BOSS LOGIC --- if (bossMode) { if (!bossActive && bossCooldown <= 0) { spawnBoss(); } else if (bossCooldown > 0) { bossCooldown--; } if (bossActive && bossObstacle) { bossObstacle.update(); // Remove if off screen if (bossObstacle.y > 2732 + 200) { // Player dodged boss bossHits++; bossActive = false; bossObstacle.destroy(); bossObstacle = null; bossCooldown = 32; if (bossHits >= bossRequired) { triggerYouWin(); return; } } else { // Collision with player if (bossObstacle.lane === player.lane) { var dy = Math.abs(bossObstacle.y - player.y); if (dy < (bossObstacle.size + player.size) / 2 - 10) { // Boss hit: instant game over LK.effects.flashObject(player, 0xff0000, 600); triggerGameOver(); return; } } } } } }; // --- INITIAL HEALTH DISPLAY --- updateHealthText();
===================================================================
--- original.js
+++ change.js
@@ -288,18 +288,41 @@
o.destroy();
obstacles.splice(i, 1);
obstaclesPassed++;
passCounterTxt.setText(obstaclesPassed + "");
- // Health boost logic: every 20 obstacles passed, if health just reached 0, restore health and show message
- if (obstaclesPassed % 20 === 0 && health === 0) {
+ // Health boost logic: every 20 obstacles passed, if health is below 100%, restore health and show message+animation
+ if (obstaclesPassed % 20 === 0 && health < maxHealth) {
// Only boost if we haven't just boosted at this count
if (typeof lastHealthBoostObstaclesPassed === "undefined" || lastHealthBoostObstaclesPassed !== obstaclesPassed) {
lastHealthBoostObstaclesPassed = obstaclesPassed;
// Determine stage-based health boost
var healthBoost = 0;
if (currentStage === 0) healthBoost = 10;else if (currentStage === 1) healthBoost = 20;else if (currentStage === 2) healthBoost = 30;else if (currentStage === 3) healthBoost = 40;
+ var prevHealth = health;
health += healthBoost;
if (health > maxHealth) health = maxHealth;
+ // Animate health text in center (scale up, then back)
+ tween.stop(healthTxt, {
+ scaleX: true,
+ scaleY: true
+ });
+ healthTxt.scale.set(1, 1);
+ tween(healthTxt, {
+ scaleX: 1.5,
+ scaleY: 1.5
+ }, {
+ duration: 180,
+ easing: tween.cubicOut,
+ onFinish: function onFinish() {
+ tween(healthTxt, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 220,
+ easing: tween.cubicIn
+ });
+ }
+ });
updateHealthText();
// Show health boost message in top-left
if (typeof healthBoostMsg !== "undefined" && healthBoostMsg && healthBoostMsg.parent) {
LK.gui.topLeft.removeChild(healthBoostMsg);
A very sweet yellow canary bird. In-Game asset. 2d. High contrast. No shadows
Create an image that says The Special One. The words should be written one under the other. It should be in a retro theme. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Create a visual that says 15 Million Euros. All the words should be written under each other. It should be in a retro theme. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Sarı kırmızı çizgili forma oluştur , formanın arkasında "A.KOC " yazsın , numarası da 25 numara olsun . Retro temada olsun . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Create a big skyscraper. Make it yellow, red and navy blue. Write "YAPI" underneath. Make it retro themed. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Bana can barı oluştur . Yatay bir şekilde tüp şeklinde olsun . tüpte can barı full dolu olsun. Yanları oval olsun , klasik oyunlarda ki can barına da benzer bir yapıda olsun . Retro temada olsun . . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Arka planı olmayan bir volume yazısı ses resmi oluştur , retro temada olsun. renkleri sarı lacivert olsun . yatay olsun olabildiğince dikey olmasın In-Game asset. 2d. High contrast. No shadows
Menu yazan yatay bir resim oluştur . Arka Planı olmasın . Sarı Lacivert bir resim olsun. retro temada olsun. In-Game asset. 2d. High contrast. No shadows
siyah renk prada montlu bir adam görseli oluştur , bu montu giyen adam sarı şapkalı , siyah güneş gözlüklü , hafif kirli sakallı bir tip olsun. prada yerine görselde "BRADA" yazsın In-Game asset. 2d. High contrast. No shadows
2025 - 2026 Türkiye Süper Ligi Şampiyonu Kupası oluştur , kupanınn üstünde FENERBAHÇE yazsın. soluk renklerde olsun , retro temada olsun In-Game asset. 2d. High contrast. No shadows
taraftarlarla kavga eden bir fenerbahce başkanı oluştur , başkan takım elbise giyiyor olsun , başkanın tipi ali koca benzesin . taraftarlar da sarı fb forması giyen taraftar olsunlar. In-Game asset. 2d. High contrast. No shadows
Oto yıkama ile alakalı bir görsel oluştur . Bu görselin altında 3.5M Euro yazsın. Retro temada bir görsel olsun .. In-Game asset. 2d. High contrast. No shadows
Beyaz bir megafon görseli oluştur . Retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
Fenerbahçe logosuna benzer bir logo oluştur ama telif haklarından logonun aynısı olmasın Logoda Fenerbahçe değilde Fener yazsın sadece . Bu logonun üstüne de 5 yıldız koy . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
"22 Yıl" bordo renk "20 Yıl" kırmızı renk "15 Yıl" beyaz renk şeklinde bir görsel oluştur , üstü X şeklinde olsun . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows. 2
Bir adet şampiyonluk kupası oluştur , bu kupa full kırmzı renkte olsun . Kupanın boynuzları olsun , şeytanın boynuzları gibi . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
Bir şampiyonluk kupası oluştur , kupanın altında 7 yazsın , kupanın üstü de çarpı şeklinde olsun . 7 yıldır şampiyon olunmuyoru anlatan bir tarzda olsun . retro temada olsun .. In-Game asset. 2d. High contrast. No shadows
Sarı lacivert bir doğum günü pastası oluştur , 2 tane mumlu . Bu pastanın üstünde "25 Bin Kişi" yazsın . retro temada olsun .. In-Game asset. 2d. High contrast. No shadows
Bir uçak bileti oluştur . Yolcunun adı T.T.S olsun . Uçak bileti siyah beyaz olsun . Ucağın rotası Adana -> Kadıköy olsun . Yolcunun fotosu kartal olsun . retro temada olsun .. In-Game asset. 2d. High contrast. No shadows
Fener adlı mavi tikli bir twitter sayfasının adana kebab paylaştığı bir görsel oluştur . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
2011 futbol şampiyonluk kupası resmi oluştur . Bu kupayı alttan birden fazla el kaldırıyor olsun . kupa altın sarısı renkte olsun . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
Beyaz plastik sandalye ve masa da oturan volkan demiren görseli oluştur . bu görsel de volkan demirel Lacivert eşofman takımı giyiyor olsun . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
Beyaz bir t-shirt oluştur . üsütünde beFair yazsın t-shirtün . be beyaz Fair mor renkte olsun . retro temada olsun. In-Game asset. 2d. High contrast. No shadows
Borsa grafiği oluştur grafiğin yönü aşağı yönde olsun .Altında "4.8 SOLD" şeklinde bir yazı yazsın . retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
Galatasaray logosuna benzer bir logo oluştur "Gala" yazsın . Üstünde de 5 yıldız olsun . retro temada olsun .. In-Game asset. 2d. High contrast. No shadows
Kalp şeklinde görsel oluştur , kırmızı şeklinde olsun kalp . retro tasarımda olsun .. In-Game asset. 2d. High contrast. No shadows
Her el kalbe tıklayarak +50 can alabilirsiniz." yazan bir yazı oluştur . Dikey formatta olsun . Retro temada olsun , arka plan soluk renklerde sarı lacivert olsun . Yazı formatı çok büyük olmasın . Yazılar ekranda rahat rahat okunabilsin . Yazılar tüm ekranı kaplamasın . Oluşturacağın görselin alt ve üstünde boşluklar olsun , yazı ortada olsun görselde ! In-Game asset. 2d. High contrast. No shadows
Kara bir yazı tahtası oluştur , bu tahtada "Kadıköy Hatırası " yazsın . retro temada olsun .. In-Game asset. 2d. High contrast. No shadows
Bir iş adamı karakteri oluştur , Acun ılıcalıya benzesin karakter. Karakterin üstünde konuşma balonuna benzer bir balon olsun. Bu balonun içinde "Eğer seçilemezsek başkan hayatına devam e..." yazsın . Görsel Retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
Ali Koça Sinirle konuşan bir başkan karakteri oluştur . Bu karakter Ali Koça benzesin . Bu karakterin tepesinde bir konuşma baloncuğu olsun . Bu baloncukta "Vefasızlar , Aşağılık , Ciğeri beş para etmeyenler " yazsın . Retro temada olsun !. In-Game asset. 2d. High contrast. No shadows
fenerBogasi
Sound effect
isteBuBe
Sound effect
ahmetAbi
Sound effect
buSeneSampFener
Sound effect
dikDurEgilme
Sound effect
elNesiri
Sound effect
gitme
Sound effect
kartal
Sound effect
osimhenOzel
Sound effect
oyleBirTakim
Sound effect
tekBasima
Sound effect
asalik
Sound effect
ikiside
Sound effect