User prompt
Çözümü uygula
User prompt
Mermiler koloninin canını sadece 1 götürsün. Mermi saldırı gücü 1 can sayısı olsun.
User prompt
Her mermi 1 can götürsün.
User prompt
Düşman 1 mermide oyun bitiyor. Bunu engelle canı bitmeden oyun bitmesin
User prompt
Koloni 50 normal mermilik canı olsun ve can barı görünsün
User prompt
Düşman gemisi haritaya girince gemimiz onu takip etsin ve yaklaşsın saldırmaya başlasın. koloniyi korusun çok uzaklaşmasın. düşman ve dost gemi hızlarını %100 yavaşlat.
User prompt
Düşman gemisi istasyona yaklaşmadan mermi sıkmasın ve bizim gemimiz düşmana yaklaşmadan mermi sıkmasın. mermiler çok az can götürsün. Savaş uzun sürsün
User prompt
gemimiz düşman gemisi haritaya girince mermiyi onu kovalasın ve mermiyi ona doğru sıksın
User prompt
Gemimiz etrafında dolaşsın düşman gemisi yaklaşınca düşman ile savaşsın. Düşman gemisi yaklaşınca ateş etsin
User prompt
Bizim gemimiz rastgele dolaşsın etrafta düşman olunca saldırsın
Code edit (1 edits merged)
Please save this source code
User prompt
Galactic Colony Command
Initial prompt
Oyuncular, uzak bir gezegende kendi uzay kolonilerini kurar ve yönetir. Hammadde toplama, otomasyon sistemleri kurma ve koloninin büyümesini sağlama ana hedeflerdir. Kaynakları optimize ederek yeni teknolojiler geliştirir, savunma ve saldırı gemileri üretirler. Diğer kolonilerle stratejik savaşlar yaparak kaynak üstünlüğü ve galaktik hakimiyet için mücadele ederler. Oyun, kaynak yönetimi, otomasyon ve uzay savaşlarını birleştirerek derin ve stratejik bir deneyim sunar.
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ // Mermi var Bullet = Container.expand(function () { var self = Container.call(this); var b = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 40; self.dirX = 0; self.dirY = -1; self.from = 'player'; // veya 'enemy' self.targetEnemy = null; // Eğer hedef varsa self.attackPower = 1; // Her merminin saldırı gücü 1 olsun self.update = function () { // Eğer bu oyuncu mermisi ve hedefi varsa, hedefe yönel if (self.from === 'player' && self.targetEnemy && typeof self.targetEnemy.x === "number" && typeof self.targetEnemy.y === "number") { var dx = self.targetEnemy.x - self.x; var dy = self.targetEnemy.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 0) { self.dirX = dx / dist; self.dirY = dy / dist; } } self.x += self.dirX * self.speed; self.y += self.dirY * self.speed; }; return self; }); // Otomatik toplayıcı (Collector) var Collector = Container.expand(function () { var self = Container.call(this); var col = self.attachAsset('collector', { anchorX: 0.5, anchorY: 0.5 }); self.target = null; self.speed = 8; self.carrying = 0; self.maxCarry = 10; self.state = 'idle'; // idle, moving, returning self.update = function () { if (self.state === 'moving' && self.target) { var dx = self.target.x - self.x; var dy = self.target.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 10) { // Kaynağa ulaştı if (!self.target.collected && self.carrying < self.maxCarry) { var take = Math.min(self.maxCarry - self.carrying, self.target.amount); self.carrying += take; self.target.amount -= take; if (self.target.amount <= 0) { self.target.collected = true; self.target.visible = false; } } self.state = 'returning'; } else { self.x += self.speed * dx / dist; self.y += self.speed * dy / dist; } } else if (self.state === 'returning') { var dx = colony.x - self.x; var dy = colony.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 10) { // Koloniye ulaştı resources += self.carrying; self.carrying = 0; self.state = 'idle'; self.target = null; } else { self.x += self.speed * dx / dist; self.y += self.speed * dy / dist; } } }; return self; }); // Koloni ana üssü var Colony = Container.expand(function () { var self = Container.call(this); var c = self.attachAsset('colony', { anchorX: 0.5, anchorY: 0.5 }); // Koloni canı self.maxHp = 50; self.hp = 50; return self; }); // Düşman gemisi var Enemy = Container.expand(function () { var self = Container.call(this); var e = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); // Hız %100 yavaşlatıldı self.speed = (7 + Math.random() * 4) * 0.5; self.target = null; self.hp = 2; self.update = function () { if (self.target) { var dx = self.target.x - self.x; var dy = self.target.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > self.speed) { self.x += self.speed * dx / dist; self.y += self.speed * dy / dist; } } }; return self; }); // Kaynak noktası var ResourceNode = Container.expand(function () { var self = Container.call(this); var res = self.attachAsset('resource', { anchorX: 0.5, anchorY: 0.5 }); self.amount = 10 + Math.floor(Math.random() * 10); // 10-19 arası kaynak self.collected = false; return self; }); // Oyuncu gemisi var Ship = Container.expand(function () { var self = Container.call(this); var s = self.attachAsset('ship', { anchorX: 0.5, anchorY: 0.5 }); // Hız %100 yavaşlatıldı self.speed = 11; self.targetX = self.x; self.targetY = self.y; self.lastShot = 0; self.shootDelay = 30; // 0.5s self.update = function () { // Hareket var dx = self.targetX - self.x; var dy = self.targetY - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > self.speed) { self.x += self.speed * dx / dist; self.y += self.speed * dy / dist; } else { self.x = self.targetX; self.y = self.targetY; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x0a0a1a }); /**** * Game Code ****/ // Koloni, kaynak, gemi ve düşman için temel şekiller // Global değişkenler var colony; var ship; var collectors = []; var resourceNodes = []; var enemies = []; var bullets = []; var resources = 0; var autoCollectors = 1; var spawnEnemyTimer = 0; var dragNode = null; var lastTouch = { x: 0, y: 0 }; // Koloni kur colony = new Colony(); colony.x = 2048 / 2; colony.y = 2732 - 400; game.addChild(colony); // Koloni can barı ve can göstergesi var colonyHpBarBg = LK.getAsset('collector', { width: 220, height: 28, color: 0x222222, anchorX: 0.5, anchorY: 0.5 }); colonyHpBarBg.y = colony.y - 160; colonyHpBarBg.x = colony.x; game.addChild(colonyHpBarBg); var colonyHpBar = LK.getAsset('collector', { width: 216, height: 20, color: 0x4adf4a, anchorX: 0.5, anchorY: 0.5 }); colonyHpBar.y = colony.y - 160; colonyHpBar.x = colony.x; game.addChild(colonyHpBar); var colonyHpTxt = new Text2('50 / 50', { size: 48, fill: "#fff" }); colonyHpTxt.anchor.set(0.5, 0.5); colonyHpTxt.x = colony.x; colonyHpTxt.y = colony.y - 160; game.addChild(colonyHpTxt); // Kaynak göstergesi var resourceTxt = new Text2('Kaynak: 0', { size: 90, fill: "#fff" }); resourceTxt.anchor.set(0.5, 0); LK.gui.top.addChild(resourceTxt); // Otomasyon göstergesi var collectorTxt = new Text2('Toplayıcı: 1', { size: 60, fill: 0xB8FFB8 }); collectorTxt.anchor.set(0.5, 0); LK.gui.top.addChild(collectorTxt); collectorTxt.y = 110; // Gemi kur ship = new Ship(); ship.x = 2048 / 2; ship.y = 2732 - 700; game.addChild(ship); // Otomatik toplayıcıları oluştur function createCollectors(n) { for (var i = collectors.length; i < n; i++) { var c = new Collector(); c.x = colony.x + 100 * (i - n / 2); c.y = colony.y + 100; collectors.push(c); game.addChild(c); } } createCollectors(autoCollectors); // Kaynak noktalarını oluştur function spawnResources() { for (var i = 0; i < 5; i++) { var r = new ResourceNode(); var angle = Math.PI * 2 * i / 5 + Math.random() * 0.2; var dist = 700 + Math.random() * 200; r.x = colony.x + Math.cos(angle) * dist; r.y = colony.y - 600 + Math.sin(angle) * dist; resourceNodes.push(r); game.addChild(r); } } spawnResources(); // Düşman üret function spawnEnemy() { var e = new Enemy(); var side = Math.random(); if (side < 0.5) { e.x = Math.random() * 2048; e.y = -100; } else { e.x = Math.random() < 0.5 ? -100 : 2048 + 100; e.y = 400 + Math.random() * 1200; } e.target = colony; enemies.push(e); game.addChild(e); } // Gemiye dokunma ve sürükleme game.down = function (x, y, obj) { // Gemiye dokunulduysa sürükle var local = game.toLocal({ x: x, y: y }); var dx = local.x - ship.x; var dy = local.y - ship.y; if (dx * dx + dy * dy < 120 * 120) { dragNode = ship; lastTouch.x = local.x; lastTouch.y = local.y; } else { // Hedefe git ship.targetX = local.x; ship.targetY = local.y; } }; game.move = function (x, y, obj) { if (dragNode === ship) { var local = game.toLocal({ x: x, y: y }); ship.targetX = local.x; ship.targetY = local.y; lastTouch.x = local.x; lastTouch.y = local.y; } }; game.up = function (x, y, obj) { dragNode = null; }; // Kaynak toplama otomasyonu function assignCollectors() { for (var i = 0; i < collectors.length; i++) { var c = collectors[i]; if (c.state === 'idle') { // En yakın toplanmamış kaynağı bul var minDist = 99999; var target = null; for (var j = 0; j < resourceNodes.length; j++) { var r = resourceNodes[j]; if (!r.collected && r.amount > 0) { var dx = r.x - c.x; var dy = r.y - c.y; var dist = dx * dx + dy * dy; if (dist < minDist) { minDist = dist; target = r; } } } if (target) { c.target = target; c.state = 'moving'; } } } } // Gemi ateş etme function shipShoot() { if (LK.ticks - ship.lastShot > ship.shootDelay) { var b = new Bullet(); b.x = ship.x; b.y = ship.y - 60; // En yakın düşmanı bul var nearestEnemy = null; var minDist = 999999; for (var i = 0; i < enemies.length; i++) { var dx = enemies[i].x - ship.x; var dy = enemies[i].y - ship.y; var dist = dx * dx + dy * dy; if (dist < minDist) { minDist = dist; nearestEnemy = enemies[i]; } } if (nearestEnemy) { // Merminin hedefini kaydet b.targetEnemy = nearestEnemy; var tx = nearestEnemy.x - ship.x; var ty = nearestEnemy.y - ship.y; var tdist = Math.sqrt(tx * tx + ty * ty); if (tdist > 0) { b.dirX = tx / tdist; b.dirY = ty / tdist; } else { b.dirX = 0; b.dirY = -1; } } else { b.dirX = 0; b.dirY = -1; } b.from = 'player'; bullets.push(b); game.addChild(b); ship.lastShot = LK.ticks; } } // Düşman ateş etme function enemyShoot(enemy) { var b = new Bullet(); b.x = enemy.x; b.y = enemy.y + 60; b.dirX = (colony.x - enemy.x) / Math.max(1, Math.sqrt((colony.x - enemy.x) * (colony.x - enemy.x) + (colony.y - enemy.y) * (colony.y - enemy.y))); b.dirY = (colony.y - enemy.y) / Math.max(1, Math.sqrt((colony.x - enemy.x) * (colony.x - enemy.x) + (colony.y - enemy.y) * (colony.y - enemy.y))); b.from = 'enemy'; bullets.push(b); game.addChild(b); } // Oyun güncelleme döngüsü game.update = function () { // Kaynak göstergesini güncelle resourceTxt.setText('Kaynak: ' + resources); collectorTxt.setText('Toplayıcı: ' + autoCollectors); // Koloni can barı ve can yazısı güncelle if (colony.hp < 0) colony.hp = 0; if (colony.hp > colony.maxHp) colony.hp = colony.maxHp; colonyHpBar.width = 216 * (colony.hp / colony.maxHp); colonyHpBar.x = colony.x; colonyHpBar.y = colony.y - 160; colonyHpBarBg.x = colony.x; colonyHpBarBg.y = colony.y - 160; colonyHpTxt.setText(Math.round(colony.hp) + ' / ' + colony.maxHp); colonyHpTxt.x = colony.x; colonyHpTxt.y = colony.y - 160; // Kaynaklar bitti ise yenilerini oluştur var allCollected = true; for (var i = 0; i < resourceNodes.length; i++) { if (!resourceNodes[i].collected && resourceNodes[i].amount > 0) { allCollected = false; break; } } if (allCollected) { for (var i = 0; i < resourceNodes.length; i++) { resourceNodes[i].destroy(); } resourceNodes = []; spawnResources(); } // Toplayıcıları görevlendir assignCollectors(); // Collector güncelle for (var i = 0; i < collectors.length; i++) { collectors[i].update(); } // Gemi güncelle ship.update(); // Gemi düşman haritaya girince onu takip etsin, koloniye çok uzaklaşmasın if (!ship.randomMoveTimer) ship.randomMoveTimer = 0; ship.randomMoveTimer++; if (ship.randomMoveTimer > 60) { // Her 1 saniyede bir yeni hedef belirle var nearestEnemy = null; var minDist = 999999; for (var i = 0; i < enemies.length; i++) { var dx = enemies[i].x - ship.x; var dy = enemies[i].y - ship.y; var dist = dx * dx + dy * dy; if (dist < minDist) { minDist = dist; nearestEnemy = enemies[i]; } } if (nearestEnemy) { // Koloniye çok uzaklaşmasın: ship ile colony arası mesafe 700'den fazla olmasın var dxCol = nearestEnemy.x - colony.x; var dyCol = nearestEnemy.y - colony.y; var distCol = Math.sqrt(dxCol * dxCol + dyCol * dyCol); // Ship ile colony arası mesafe var dxShipCol = ship.x - colony.x; var dyShipCol = ship.y - colony.y; var distShipCol = Math.sqrt(dxShipCol * dxShipCol + dyShipCol * dyShipCol); // Ship, düşmana yaklaşacak ama colony'den 700'den fazla uzaklaşmayacak if (distShipCol > 700) { // Koloniye 700'den fazla uzaksa, koloniye yaklaş ship.targetX = colony.x + (nearestEnemy.x - colony.x) * 700 / distCol; ship.targetY = colony.y + (nearestEnemy.y - colony.y) * 700 / distCol; } else { // Düşmana yaklaş ship.targetX = nearestEnemy.x; ship.targetY = nearestEnemy.y; } ship.isAttacking = true; } else { // Rastgele bir hedef seç, ama koloniye 700'den fazla uzaklaşmasın var angle = Math.random() * Math.PI * 2; var dist = 300 + Math.random() * 350; ship.targetX = colony.x + Math.cos(angle) * dist; ship.targetY = colony.y + Math.sin(angle) * dist; ship.isAttacking = false; } ship.randomMoveTimer = 0; } // --- Saldırı: Yakında düşman varsa ateş et --- // Sadece 350px mesafede ateş etsin, yoksa ateş etmesin var attackEnemy = null; for (var i = 0; i < enemies.length; i++) { var dx = enemies[i].x - ship.x; var dy = enemies[i].y - ship.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist < 350) { // Sadece 350px mesafede ateş etsin attackEnemy = enemies[i]; break; } } if (attackEnemy) { // Düşmana doğru ateş et if (LK.ticks - ship.lastShot > ship.shootDelay) { var b = new Bullet(); b.x = ship.x; b.y = ship.y - 60; var tx = attackEnemy.x - ship.x; var ty = attackEnemy.y - ship.y; var tdist = Math.sqrt(tx * tx + ty * ty); if (tdist > 0) { b.dirX = tx / tdist; b.dirY = ty / tdist; } else { b.dirX = 0; b.dirY = -1; } b.from = 'player'; bullets.push(b); game.addChild(b); ship.lastShot = LK.ticks; } } // Düşman yoksa ateş etme // Düşman üretimi spawnEnemyTimer++; if (spawnEnemyTimer > 180) { // 3 saniyede bir spawnEnemy(); spawnEnemyTimer = 0; } // Düşman güncelle for (var i = enemies.length - 1; i >= 0; i--) { var e = enemies[i]; e.update(); // Düşman koloniye ulaştı mı? if (e.intersects(colony)) { // Sadece koloniye ulaştığında can azalt, bitişi hp <= 0'da kontrol et if (typeof colony.hp !== "number") colony.hp = colony.maxHp || 50; colony.hp -= 1; LK.effects.flashObject(colony, 0xff0000, 400); if (colony.hp <= 0) { LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } // Düşmanı yok et e.destroy(); enemies.splice(i, 1); continue; } // Düşman sadece koloniye yaklaşınca ateş etsin var dxCol = colony.x - e.x; var dyCol = colony.y - e.y; var distCol = Math.sqrt(dxCol * dxCol + dyCol * dyCol); if (distCol < 400) { // Sadece 400px mesafede ateş etsin // Her düşmanın kendi ateş gecikmesi olsun if (!e.lastShot) e.lastShot = 0; if (!e.shootDelay) e.shootDelay = 60 + Math.floor(Math.random() * 40); // 1-1.6 sn arası if (LK.ticks - e.lastShot > e.shootDelay) { enemyShoot(e); e.lastShot = LK.ticks; } } } // Mermileri güncelle for (var i = bullets.length - 1; i >= 0; i--) { var b = bullets[i]; b.update(); // Ekran dışıysa sil if (b.x < -100 || b.x > 2148 || b.y < -100 || b.y > 2832) { b.destroy(); bullets.splice(i, 1); continue; } // Çarpışmalar if (b.from === 'player') { // Düşmanlara çarpma for (var j = enemies.length - 1; j >= 0; j--) { var e = enemies[j]; if (b.intersects(e)) { // Her mermi sadece 1 can götürsün if (typeof e.hp !== "number") e.hp = 10; e.hp -= typeof b.attackPower === "number" ? b.attackPower : 1; // Her mermi attackPower kadar can götürür if (e.hp <= 0) { e.destroy(); enemies.splice(j, 1); // Kaynak ödülü resources += 5; } b.destroy(); bullets.splice(i, 1); break; } } } else if (b.from === 'enemy') { // Koloniye çarpma if (b.intersects(colony)) { // Her mermi sadece 1 can götürsün if (typeof colony.hp !== "number") colony.hp = colony.maxHp || 50; colony.hp -= typeof b.attackPower === "number" ? b.attackPower : 1; // Her mermi attackPower kadar can götürür LK.effects.flashObject(colony, 0xff0000, 400); b.destroy(); bullets.splice(i, 1); // Oyun bitişi sadece canı sıfır olunca tetiklensin if (colony.hp <= 0) { LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } continue; } // Gemiye çarpma if (b.intersects(ship)) { LK.effects.flashObject(ship, 0xff0000, 500); b.destroy(); bullets.splice(i, 1); // Her mermi sadece 1 can götürsün if (!ship.hp) ship.hp = 6; ship.hp -= typeof b.attackPower === "number" ? b.attackPower : 1; // Her mermi attackPower kadar can götürür if (ship.hp <= 0) { LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } } } } // Otomasyon yükseltme: 50 kaynak ile yeni toplayıcı if (resources >= 50 && autoCollectors < 3) { resources -= 50; autoCollectors++; createCollectors(autoCollectors); } // Kazanma koşulu: 200 kaynak if (resources >= 200) { LK.showYouWin(); return; } };
===================================================================
--- original.js
+++ change.js
@@ -528,11 +528,21 @@
var e = enemies[i];
e.update();
// Düşman koloniye ulaştı mı?
if (e.intersects(colony)) {
- LK.effects.flashScreen(0xff0000, 800);
- LK.showGameOver();
- return;
+ // Sadece koloniye ulaştığında can azalt, bitişi hp <= 0'da kontrol et
+ if (typeof colony.hp !== "number") colony.hp = colony.maxHp || 50;
+ colony.hp -= 1;
+ LK.effects.flashObject(colony, 0xff0000, 400);
+ if (colony.hp <= 0) {
+ LK.effects.flashScreen(0xff0000, 800);
+ LK.showGameOver();
+ return;
+ }
+ // Düşmanı yok et
+ e.destroy();
+ enemies.splice(i, 1);
+ continue;
}
// Düşman sadece koloniye yaklaşınca ateş etsin
var dxCol = colony.x - e.x;
var dyCol = colony.y - e.y;
Fullscreen modern App Store landscape banner, 16:9, high definition, for a game titled "Galactic Colony Command" and with the description "Kendi uzay kolonini kur, kaynakları topla, otomasyon sistemleri geliştir ve diğer kolonilerle stratejik savaşlara girerek galaksinin hakimi ol!". No text on banner!
Fullscreen modern App Store landscape banner, 16:9, high definition, for a game titled "Uzay İstasyonu" and with the description "Kendi uzay kolonini kur, kaynakları topla, otomasyon sistemleri geliştir ve diğer kolonilerle stratejik savaşlara girerek galaksinin hakimi ol!". No text on banner!, Uzay istasyonu
Fullscreen modern App Store landscape banner, 16:9, high definition, for a game titled "Gezegen" and with the description "Kendi uzay kolonini kur, kaynakları topla, otomasyon sistemleri geliştir ve diğer kolonilerle stratejik savaşlara girerek galaksinin hakimi ol!". No text on banner!, Uzay istasyonu, Gezegen
Astreroit cobalt. In-Game asset. 2d. High contrast. No shadows
asteroid gold. In-Game asset. 2d. High contrast. No shadows
asteroid helium. In-Game asset. 2d. High contrast. No shadows
Asteroid Iron - Yazısız. In-Game asset. 2d. High contrast. No shadows
asteroid manganese - yazısız. In-Game asset. 2d. High contrast. No shadows
Asteroid Nikel - Yazısız. In-Game asset. 2d. High contrast. No shadows
Cobalt cevheri. In-Game asset. 2d. High contrast. No shadows
Platinum Cevheri - Yazısız. In-Game asset. 2d. High contrast. No shadows
Ateş - Patlama. In-Game asset. 2d. High contrast. No shadows
Ateş. In-Game asset. 2d. High contrast. No shadows
Maden toplayıcı uzay mekiği, Gerçekçi. In-Game asset. High contrast. No shadows
Uzay savaş gemisi - Gerçekçi - Yazısız. In-Game asset. High contrast. No shadows
Altın Cevheri - Yazısız. In-Game asset. 2d. High contrast. No shadows
Helium cevheri - yazısız. In-Game asset. 2d. High contrast. No shadows
Iron cevheri - yazısız. In-Game asset. 2d. High contrast. No shadows
Manganese cevheri - yazısız. In-Game asset. 2d. High contrast. No shadows
HP BAR - yazısız. In-Game asset. 2d. High contrast. No shadows
Fullscreen modern App Store landscape banner, 16:9, high definition, for a game titled "Galactic Colony Command" and with the description "Kendi uzay kolonini kur, kaynakları topla, otomasyon sistemleri geliştir ve diğer kolonilerle stratejik savaşlara girerek galaksinin hakimi ol!". No text on banner!
uzay savaş gemisi. In-Game asset. 2d. High contrast. No shadows
uzay savaş gemisi - gerçekçi - yazısız. In-Game asset. High contrast. No shadows
uzay savaş gemisi - gerçekçi - yazısız. In-Game asset. High contrast. No shadows
Uzay Savunma Kulesi - Yazısız - Gerçekçi. In-Game asset. High contrast. No shadows
Uzay Savunma Kulesi - Yazısız - Gerçekçi. In-Game asset. High contrast. No shadows
Uzay Savunma Kulesi - Yazısız - Gerçekçi. In-Game asset. High contrast. No shadows
Uzay Savunma Kulesi - Yazısız - Gerçekçi. In-Game asset. High contrast. No shadows
Uzay savaş istasyonu - Gerçekçi. In-Game asset. High contrast. No shadows
Uzay savaş istasyonu - Gerçekçi. In-Game asset. High contrast. No shadows
Uzay savaş istasyonu - Gerçekçi. In-Game asset. High contrast. No shadows
Hoparlör. In-Game asset. 2d. High contrast. No shadows