User prompt
Sipariş yapılmıyor. Komple kodu düzelt
User prompt
Düzelt
User prompt
Masalara numara ekle. Bu numaralara göre sipariş takibi yapılsın.
User prompt
Bir garson, yalnızca 1 masanın siparişini tamamlasın. 1 masanın siparişi tamamlandıktan sonra başka masaya yönelsin.
User prompt
Sadece 1 müşteri ile ilgilensin. 1 müşterinin siparişi tamamlanmadan diğer müşteriye gitmesin.
User prompt
Sipariş almak ve sipariş götürmek yalnızca 1 masada olsun. Sipariş teslim etmeden, diğer masanın siparişini bekletsin.
User prompt
Bir Masanın, siparişini teslim etmeden, diğer masanın siparişini teslim etmesin.
User prompt
5 farklı yemek çeşidi oluştur. Her müşteri farklı yemek siparişi versin. Ancak garson ve aşçı hangi yemeğin, kime ait olduğunu unutmasın ve teslim etmeden diğer yemeğe geçmesinler.
User prompt
Otomatik üretimi kapat. Ancak sipariş alındığı zaman yemek üretilsin. Garson elinde yemek kaldı.
User prompt
Neden 1 masaya 2 müşteri yöneliyor?
User prompt
1 masaya 2 müşteri oturmasını engelle.
User prompt
Masada 1 müşteri varken, 2. Müşteri oturmasın, boşalmasını beklesin.
Code edit (1 edits merged)
Please save this source code
User prompt
Restaurant Rush Manager
Initial prompt
Restaurant Mağazası, Idle yönetim oyunu. Müşteri gelir, masaya oturur. Daha sonra sipariş verir. Garson siparişi aşçıya iletir. Aşçı siparişi hazırlayıp, garsona teslim eder. Garson siparişi müşteriye teslim eder. Yemek siparişini yiyen müşteri, daha sonra kasaya parayı ödeyip oradan ayrılır. Hız konusunda ve yeni masa konusunda yükseltme butonları olacak.
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var Chef = Container.expand(function () { var self = Container.call(this); var chefGraphics = self.attachAsset('chef', { anchorX: 0.5, anchorY: 0.5 }); self.cooking = false; self.cookTime = 0; self.update = function () { if (chefHasOrder && !self.cooking && !foodReady) { self.cooking = true; self.cookTime = 0; chefHasOrder = false; } if (self.cooking) { self.cookTime++; if (self.cookTime > cookingSpeed) { self.cooking = false; foodReady = true; // Reset order taken for the completed order for (var i = 0; i < tables.length; i++) { if (orderTaken[i] && tables[i].occupied && tables[i].customer && tables[i].customer.state === 'waiting') { orderTaken[i] = false; break; } } } } }; return self; }); var Customer = Container.expand(function () { var self = Container.call(this); var customerGraphics = self.attachAsset('customer', { anchorX: 0.5, anchorY: 0.5 }); self.targetTable = null; self.state = 'entering'; // entering, seated, waiting, eating, paying, leaving self.eatingTime = 0; self.waitTime = 0; self.update = function () { if (self.state === 'entering') { if (self.targetTable) { var dx = self.targetTable.x - self.x; var dy = self.targetTable.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 5) { self.x += dx / dist * customerSpeed; self.y += dy / dist * customerSpeed; } else { self.state = 'seated'; self.targetTable.occupied = true; self.targetTable.customer = self; } } else { // Wait in line near entrance if no table available if (self.y < 200) { self.y += customerSpeed; } } } else if (self.state === 'eating') { self.eatingTime++; if (self.eatingTime > 180) { // 3 seconds at 60fps self.state = 'paying'; if (self.targetTable) { self.targetTable.foodDelivered = false; if (self.targetTable.food) { self.targetTable.food.destroy(); self.targetTable.food = null; } } } } else if (self.state === 'paying') { var dx = registerX - self.x; var dy = registerY - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 5) { self.x += dx / dist * customerSpeed; self.y += dy / dist * customerSpeed; } else { money += 10; self.state = 'leaving'; if (self.targetTable) { self.targetTable.occupied = false; self.targetTable.customer = null; self.targetTable.orderPlaced = false; } } } else if (self.state === 'leaving') { self.y += customerSpeed; if (self.y > 2800) { self.destroy(); var index = customers.indexOf(self); if (index > -1) customers.splice(index, 1); } } else if (self.state === 'seated') { self.waitTime++; if (self.waitTime > 120) { // 2 seconds self.targetTable.orderPlaced = true; self.state = 'waiting'; } } }; return self; }); var Table = Container.expand(function () { var self = Container.call(this); var tableGraphics = self.attachAsset('table', { anchorX: 0.5, anchorY: 0.5 }); var chairLeft = self.attachAsset('chair', { anchorX: 0.5, anchorY: 0.5, x: -80, y: 0 }); var chairRight = self.attachAsset('chair', { anchorX: 0.5, anchorY: 0.5, x: 80, y: 0 }); self.occupied = false; self.customer = null; self.food = null; self.orderPlaced = false; self.foodDelivered = false; return self; }); var Waiter = Container.expand(function () { var self = Container.call(this); var waiterGraphics = self.attachAsset('waiter', { anchorX: 0.5, anchorY: 0.5 }); self.state = 'idle'; // idle, goingToTable, goingToKitchen, deliveringFood self.targetTable = null; self.hasFood = false; self.food = null; self.update = function () { if (self.state === 'idle') { // Check for tables with orders for (var i = 0; i < tables.length; i++) { if (tables[i].orderPlaced && !orderTaken[i]) { self.state = 'goingToTable'; self.targetTable = tables[i]; self.targetTableIndex = i; break; } } // Check for ready food if (self.state === 'idle' && foodReady && !foodBeingDelivered) { self.state = 'goingToKitchen'; } } else if (self.state === 'goingToTable') { var dx = self.targetTable.x - self.x; var dy = self.targetTable.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 5) { self.x += dx / dist * waiterSpeed; self.y += dy / dist * waiterSpeed; } else { orderTaken[self.targetTableIndex] = true; self.state = 'goingToKitchen'; chefHasOrder = true; } } else if (self.state === 'goingToKitchen') { var dx = kitchenX - self.x; var dy = kitchenY - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 5) { self.x += dx / dist * waiterSpeed; self.y += dy / dist * waiterSpeed; } else { if (foodReady && !self.hasFood) { self.hasFood = true; foodReady = false; foodBeingDelivered = true; self.food = self.attachAsset('food', { anchorX: 0.5, anchorY: 0.5, y: -40 }); // Find table that needs food for (var i = 0; i < tables.length; i++) { if (tables[i].occupied && tables[i].customer && tables[i].customer.state === 'waiting' && !tables[i].foodDelivered) { self.targetTable = tables[i]; self.state = 'deliveringFood'; break; } } } else { self.state = 'idle'; } } } else if (self.state === 'deliveringFood') { var dx = self.targetTable.x - self.x; var dy = self.targetTable.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 5) { self.x += dx / dist * waiterSpeed; self.y += dy / dist * waiterSpeed; } else { if (self.food) { self.food.destroy(); self.food = null; } self.hasFood = false; foodBeingDelivered = false; self.targetTable.foodDelivered = true; self.targetTable.food = self.targetTable.attachAsset('food', { anchorX: 0.5, anchorY: 0.5, y: -20 }); if (self.targetTable.customer) { self.targetTable.customer.state = 'eating'; } self.state = 'idle'; self.targetTable = null; } } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xF5DEB3 }); /**** * Game Code ****/ // Game variables var money = storage.money || 0; var restaurantLevel = storage.restaurantLevel || 1; var tableCount = storage.tableCount || 2; // Speed variables (lower is faster) var customerSpeed = 3; var waiterSpeed = 4; var cookingSpeed = 180; // 3 seconds at 60fps // Game state var tables = []; var customers = []; var orderTaken = []; var chefHasOrder = false; var foodReady = false; var foodBeingDelivered = false; // Positions var kitchenX = 1024; var kitchenY = 400; var registerX = 1024; var registerY = 2400; // UI Elements var moneyText = new Text2('Money: $0', { size: 60, fill: 0x000000 }); moneyText.anchor.set(0.5, 0); LK.gui.top.addChild(moneyText); // Create kitchen var kitchen = game.addChild(LK.getAsset('kitchen', { anchorX: 0.5, anchorY: 0.5, x: kitchenX, y: kitchenY })); // Create register var register = game.addChild(LK.getAsset('register', { anchorX: 0.5, anchorY: 0.5, x: registerX, y: registerY })); // Create chef var chef = game.addChild(new Chef()); chef.x = kitchenX; chef.y = kitchenY; // Create waiter var waiter = game.addChild(new Waiter()); waiter.x = 1024; waiter.y = 1366; // Create initial tables function createTable(index) { var table = game.addChild(new Table()); var row = Math.floor(index / 2); var col = index % 2; table.x = 600 + col * 400; table.y = 800 + row * 300; tables.push(table); orderTaken.push(false); } for (var i = 0; i < tableCount; i++) { createTable(i); } // Upgrade speed button var upgradeButton = game.addChild(LK.getAsset('upgradeButton', { anchorX: 0.5, anchorY: 0.5, x: 500, y: 2200 })); var upgradeText = new Text2('Upgrade Speed $50', { size: 40, fill: 0xFFFFFF }); upgradeText.anchor.set(0.5, 0.5); upgradeText.x = 500; upgradeText.y = 2200; game.addChild(upgradeText); upgradeButton.down = function () { if (money >= 50) { money -= 50; restaurantLevel++; customerSpeed = Math.max(2, customerSpeed - 0.5); waiterSpeed = Math.max(2, waiterSpeed - 0.5); cookingSpeed = Math.max(60, cookingSpeed - 20); storage.restaurantLevel = restaurantLevel; storage.money = money; LK.effects.flashObject(upgradeButton, 0x00FF00, 500); } }; // Add table button var addTableButton = game.addChild(LK.getAsset('addTableButton', { anchorX: 0.5, anchorY: 0.5, x: 1500, y: 2200 })); var addTableText = new Text2('Add Table $100', { size: 40, fill: 0xFFFFFF }); addTableText.anchor.set(0.5, 0.5); addTableText.x = 1500; addTableText.y = 2200; game.addChild(addTableText); addTableButton.down = function () { if (money >= 100 && tables.length < 8) { money -= 100; createTable(tables.length); tableCount++; storage.tableCount = tableCount; storage.money = money; LK.effects.flashObject(addTableButton, 0x00FF00, 500); } }; // Customer spawn timer var customerSpawnTimer = 0; // Game update game.update = function () { // Update money display moneyText.setText('Money: $' + money); // Spawn customers customerSpawnTimer++; if (customerSpawnTimer > 300) { // Every 5 seconds customerSpawnTimer = 0; // Check if there are waiting customers first var hasWaitingCustomer = false; for (var j = 0; j < customers.length; j++) { if (customers[j].state === 'entering' && !customers[j].targetTable) { hasWaitingCustomer = true; // Try to assign a table to waiting customer for (var k = 0; k < tables.length; k++) { if (!tables[k].occupied && !tables[k].customer) { customers[j].targetTable = tables[k]; break; } } break; } } // Only spawn new customer if no one is waiting if (!hasWaitingCustomer) { var customer = game.addChild(new Customer()); customer.x = 1024; customer.y = -50; customers.push(customer); // Try to find available table for (var i = 0; i < tables.length; i++) { if (!tables[i].occupied && !tables[i].customer) { customer.targetTable = tables[i]; break; } } // If no table available, customer will wait } } // Save periodically if (LK.ticks % 300 === 0) { storage.money = money; } };
===================================================================
--- original.js
+++ change.js
@@ -378,9 +378,9 @@
if (customers[j].state === 'entering' && !customers[j].targetTable) {
hasWaitingCustomer = true;
// Try to assign a table to waiting customer
for (var k = 0; k < tables.length; k++) {
- if (!tables[k].occupied) {
+ if (!tables[k].occupied && !tables[k].customer) {
customers[j].targetTable = tables[k];
break;
}
}
@@ -394,9 +394,9 @@
customer.y = -50;
customers.push(customer);
// Try to find available table
for (var i = 0; i < tables.length; i++) {
- if (!tables[i].occupied) {
+ if (!tables[i].occupied && !tables[i].customer) {
customer.targetTable = tables[i];
break;
}
}
Chair - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Chef - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Müşteri - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Bayan Müşteri - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Müşteri - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Garson - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Üstten görünüm table - Yazısız - Gerçekçi. In-Game asset. 2d. High contrast. No shadows
Masa ve sandalyesiz - üstten görünüm restaurant gerçekçi - yazısız. In-Game asset. 2d. High contrast. No shadows
Mutfak - üstten görünüm - gerçekçi - yazısız. In-Game asset. 2d. High contrast. No shadows
Üstten Bakış Yazar Kasa - Yazısız - Gerçekçi. In-Game asset. 2d. High contrast. No shadows
Yemek - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Burger - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Curry - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
dumpling - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
pasta - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Pizza - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
salad - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Soup - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Steak - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Tabakta Sushi - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Tabakta Taco - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
İçindeki içecekler görünen, meşrubat dolabı, gerçekçi - yazısız. In-Game asset. 2d. High contrast. No shadows
Ayran - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
caffee - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Cola - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Fanta - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
İcetea - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
OrangeJuice - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Maden suyu - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows
Su şişesi - Gerçekçi - Yazısız. In-Game asset. 2d. High contrast. No shadows