User prompt
yeni bir sayfa oluştur
User prompt
taşıtlar sayfasının sağ alt kısmına buton ekle
User prompt
6.sayfanın sağ alt köşesine 7. ekranı açan buton ekle buton adı 'LÜKS'
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'storage['stock_' + stockNames[i]] = undefined;' Line Number: 1179 ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
1. ekranda yer alan oyunu sıfırla tuşuna basıldığında oyundaki tüm veriler sıfırlanır ; para miktarı , borsa hisseleri , faiz sistemindeki para miktarı , mevcut emlaklar ve taşıtlar ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
taşıtlar ekranında yer alan ürünler satıldığında yarı fiyatına satılsın
User prompt
taşıtlar ekranında yer alan her ürün sadece 1 kez satın alınabilsin
User prompt
emlak ekranında yer alan ürünlerin gelirinin süresini değiştir . 10 dakika yerine 30 dakika yap
User prompt
taşıtlar ekranına satın alınabilir ve satılabilir taşıtlar ekle
User prompt
emlak sayfasının sağ alt kısmına taşıtlar butonu ekle . Taşıtlar butonu 6.ekranı açsın
User prompt
faiz sisteminde yer alan faiz oranı yazısını küçült
User prompt
borsa sayfasındaki toplam kar zarar yazısını biraz alta taşı
User prompt
borsa sayfasının en altında hisselerden elde edilen toplam kar zarar durumu yazsın
User prompt
emlak sayfasında yer alan ürünler dakika başı değil 10 dakikada bir gelir kazandırsın
User prompt
emlak sayfasının sağ üst kısmına soru işareti butonu koy
User prompt
emlak sayfasında yer alan ürünler satıldığı zaman yarı fiyatına satılsın
User prompt
emlak sayfasında yer alan her üründen en fazla 1 tane alınabilsin
User prompt
5.ekrandaki 'EMLAK' yazısını kırmızı renk yap
User prompt
5.sayfadaki 'EMLAK' yazısını biraz daha yukarı taşı
User prompt
5.ekranda yer alan 'MARKET' yazısını değiştir. Yeni yazı 'EMLAK'
User prompt
otel ürününe otel simgesi ekle
User prompt
gökdelen ürününe gökdelen simgesi ekle
User prompt
alışveriş merkezi ürününe alışveriş merkezi simgesi ekle
User prompt
iş merkezi ürününe fabrika simgesi ekle
User prompt
lüks villa ürününe malikane simgesi ekle
/****
* Plugins
****/
var storage = LK.import("@upit/storage.v1");
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var FifthPage = Container.expand(function () {
var self = Container.call(this);
// Initialize real estate data
var realEstateProperties = [{
name: 'Küçük Daire',
price: 50000,
owned: 0,
income: 500,
imageId: 'house1'
}, {
name: 'Büyük Daire',
price: 150000,
owned: 0,
income: 1500,
imageId: 'house2'
}, {
name: 'Villa',
price: 500000,
owned: 0,
income: 5000,
imageId: 'villa1'
}, {
name: 'Lüks Villa',
price: 1000000,
owned: 0,
income: 10000,
imageId: 'villa2'
}, {
name: 'İş Merkezi',
price: 2000000,
owned: 0,
income: 20000,
imageId: 'office1'
}, {
name: 'Alışveriş Merkezi',
price: 5000000,
owned: 0,
income: 50000,
imageId: 'mall1'
}, {
name: 'Gökdelen',
price: 10000000,
owned: 0,
income: 100000,
imageId: 'skyscraper1'
}, {
name: 'Otel',
price: 15000000,
owned: 0,
income: 150000,
imageId: 'hotel1'
}];
// Load owned properties from storage
for (var i = 0; i < realEstateProperties.length; i++) {
var property = realEstateProperties[i];
var ownedKey = 'property_owned_' + property.name;
property.owned = storage[ownedKey] || 0;
}
// Header text
var headerText = new Text2('EMLAK', {
size: 150,
fill: 0xff0000
});
headerText.anchor.set(0.5, 0);
headerText.x = 2048 / 2;
headerText.y = 50;
self.addChild(headerText);
// Money display
var moneyDisplay = new Text2('Para: $0', {
size: 80,
fill: 0x006400
});
moneyDisplay.anchor.set(0.5, 0);
moneyDisplay.x = 2048 / 2;
moneyDisplay.y = 200;
self.addChild(moneyDisplay);
// Update money display
self.updateMoneyDisplay = function () {
var currentMoney = storage.money || 0;
moneyDisplay.setText('Para: $' + currentMoney);
};
self.updateMoneyDisplay();
// Properties container
var propertiesContainer = new Container();
propertiesContainer.x = 100;
propertiesContainer.y = 350;
self.addChild(propertiesContainer);
// Create property entries
self.propertyEntries = [];
for (var i = 0; i < realEstateProperties.length; i++) {
var property = realEstateProperties[i];
var yPos = i * 220; // Increased spacing for images
// Property background
var propertyBg = propertiesContainer.attachAsset('buttonBg', {
anchorX: 0,
anchorY: 0,
width: 1800,
height: 200,
x: 0,
y: yPos
});
propertyBg.tint = 0xF0F0F0;
// Property image placeholder (colored rectangle for now)
var imageColors = [0x8B4513, 0xFF6347, 0x32CD32, 0x4169E1, 0xFFD700, 0xFF69B4, 0x9370DB, 0x20B2AA];
var propertyImage = propertiesContainer.attachAsset('smallButtonBg', {
anchorX: 0,
anchorY: 0,
width: 150,
height: 150,
x: 20,
y: yPos + 25
});
propertyImage.tint = imageColors[i % imageColors.length];
// Add hut icon for small apartment (index 0)
if (i === 0) {
var hutIcon = new Text2('🏠', {
size: 80,
fill: 0x000000
});
hutIcon.anchor.set(0.5, 0.5);
hutIcon.x = 95; // Center of the property image
hutIcon.y = yPos + 100;
propertiesContainer.addChild(hutIcon);
}
// Add apartment icon for large apartment (index 1)
if (i === 1) {
var apartmentIcon = new Text2('🏢', {
size: 80,
fill: 0x000000
});
apartmentIcon.anchor.set(0.5, 0.5);
apartmentIcon.x = 95; // Center of the property image
apartmentIcon.y = yPos + 100;
propertiesContainer.addChild(apartmentIcon);
}
// Add villa icon for villa (index 2)
if (i === 2) {
var villaIcon = new Text2('🏡', {
size: 80,
fill: 0x000000
});
villaIcon.anchor.set(0.5, 0.5);
villaIcon.x = 95; // Center of the property image
villaIcon.y = yPos + 100;
propertiesContainer.addChild(villaIcon);
}
// Add mansion icon for luxury villa (index 3)
if (i === 3) {
var mansionIcon = new Text2('🏛️', {
size: 80,
fill: 0x000000
});
mansionIcon.anchor.set(0.5, 0.5);
mansionIcon.x = 95; // Center of the property image
mansionIcon.y = yPos + 100;
propertiesContainer.addChild(mansionIcon);
}
// Add factory icon for business center (index 4)
if (i === 4) {
var factoryIcon = new Text2('🏭', {
size: 80,
fill: 0x000000
});
factoryIcon.anchor.set(0.5, 0.5);
factoryIcon.x = 95; // Center of the property image
factoryIcon.y = yPos + 100;
propertiesContainer.addChild(factoryIcon);
}
// Add shopping mall icon for shopping center (index 5)
if (i === 5) {
var mallIcon = new Text2('🏬', {
size: 80,
fill: 0x000000
});
mallIcon.anchor.set(0.5, 0.5);
mallIcon.x = 95; // Center of the property image
mallIcon.y = yPos + 100;
propertiesContainer.addChild(mallIcon);
}
// Add skyscraper icon for skyscraper (index 6)
if (i === 6) {
var skyscraperIcon = new Text2('🏢', {
size: 80,
fill: 0x000000
});
skyscraperIcon.anchor.set(0.5, 0.5);
skyscraperIcon.x = 95; // Center of the property image
skyscraperIcon.y = yPos + 100;
propertiesContainer.addChild(skyscraperIcon);
}
// Add hotel icon for hotel (index 7)
if (i === 7) {
var hotelIcon = new Text2('🏨', {
size: 80,
fill: 0x000000
});
hotelIcon.anchor.set(0.5, 0.5);
hotelIcon.x = 95; // Center of the property image
hotelIcon.y = yPos + 100;
propertiesContainer.addChild(hotelIcon);
}
// Property name text
var nameText = new Text2(property.name, {
size: 50,
fill: 0x000000
});
nameText.anchor.set(0, 0.5);
nameText.x = 200;
nameText.y = yPos + 60;
propertiesContainer.addChild(nameText);
// Property price text
var priceText = new Text2('Fiyat: $' + property.price, {
size: 40,
fill: 0x000000
});
priceText.anchor.set(0, 0.5);
priceText.x = 200;
priceText.y = yPos + 100;
propertiesContainer.addChild(priceText);
// Property income text
var incomeText = new Text2('Gelir: $' + property.income + '/30dk', {
size: 35,
fill: 0x006400
});
incomeText.anchor.set(0, 0.5);
incomeText.x = 200;
incomeText.y = yPos + 140;
propertiesContainer.addChild(incomeText);
// Owned amount text
var ownedText = new Text2('Sahip: ' + property.owned, {
size: 40,
fill: 0x000000
});
ownedText.anchor.set(0, 0.5);
ownedText.x = 600;
ownedText.y = yPos + 100;
propertiesContainer.addChild(ownedText);
// Total income text
var totalIncomeText = new Text2('Toplam: $' + property.income * property.owned + '/30dk', {
size: 35,
fill: 0x8B4513
});
totalIncomeText.anchor.set(0, 0.5);
totalIncomeText.x = 600;
totalIncomeText.y = yPos + 140;
propertiesContainer.addChild(totalIncomeText);
// Buy button
var buyButton = new MenuButton('SATIN AL', 200, 80);
buyButton.x = 1000;
buyButton.y = yPos + 60;
buyButton.propertyIndex = i;
buyButton.onPress = function () {
var propertyIndex = this.propertyIndex;
var property = realEstateProperties[propertyIndex];
var currentMoney = storage.money || 0;
if (property.owned >= 1) {
// Already owns maximum allowed (1) - flash yellow
LK.effects.flashObject(this, 0xFFFF00, 300);
} else if (currentMoney >= property.price) {
storage.money = currentMoney - property.price;
property.owned += 1;
storage['property_owned_' + property.name] = property.owned;
self.updatePropertyDisplay();
self.updateMoneyDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
// Start income generation if first purchase
if (property.owned === 1) {
self.startPropertyIncome(propertyIndex);
}
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
propertiesContainer.addChild(buyButton);
// Sell button
var sellButton = new MenuButton('SAT', 150, 80);
sellButton.x = 1250;
sellButton.y = yPos + 60;
sellButton.propertyIndex = i;
sellButton.onPress = function () {
var propertyIndex = this.propertyIndex;
var property = realEstateProperties[propertyIndex];
if (property.owned > 0) {
var currentMoney = storage.money || 0;
var sellPrice = Math.floor(property.price * 0.5); // Sell for 50% (half) of original price
storage.money = currentMoney + sellPrice;
property.owned -= 1;
storage['property_owned_' + property.name] = property.owned;
self.updatePropertyDisplay();
self.updateMoneyDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
propertiesContainer.addChild(sellButton);
// Store property entry for updates
self.propertyEntries.push({
property: property,
ownedText: ownedText,
totalIncomeText: totalIncomeText,
propertyBg: propertyBg
});
}
// Update property display function
self.updatePropertyDisplay = function () {
for (var i = 0; i < self.propertyEntries.length; i++) {
var entry = self.propertyEntries[i];
var property = entry.property;
entry.ownedText.setText('Sahip: ' + property.owned);
entry.totalIncomeText.setText('Toplam: $' + property.income * property.owned + '/30dk');
// Change background color based on ownership
if (property.owned > 0) {
entry.propertyBg.tint = 0x90EE90; // Light green for owned
} else {
entry.propertyBg.tint = 0xF0F0F0; // Default gray
}
}
};
// Property income generation
self.propertyTimers = [];
self.startPropertyIncome = function (propertyIndex) {
var property = realEstateProperties[propertyIndex];
var timer = LK.setInterval(function () {
if (property.owned > 0) {
var currentMoney = storage.money || 0;
var totalIncome = property.income * property.owned;
storage.money = currentMoney + totalIncome;
self.updateMoneyDisplay();
LK.effects.flashObject(moneyDisplay, 0x00FF00, 300);
}
}, 1800000); // Every 30 minutes
self.propertyTimers[propertyIndex] = timer;
};
// Start income for already owned properties
for (var i = 0; i < realEstateProperties.length; i++) {
if (realEstateProperties[i].owned > 0) {
self.startPropertyIncome(i);
}
}
// Update initial display
self.updatePropertyDisplay();
// Question mark button in top right corner of real estate page
var questionButton = new MenuButton('?', 80, 80);
questionButton.x = 1900; // Top right corner with margin for border
questionButton.y = 120; // Top with margin for border
questionButton.onPress = function () {
// Flash the button when pressed
LK.effects.flashObject(questionButton, 0x00FF00, 300);
// Show help message for real estate
self.showRealEstateHelpMessage();
};
self.addChild(questionButton);
// Real estate help message functionality
self.showRealEstateHelpMessage = function () {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1600,
height: 1200,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFFFFF;
// Create message text
var messageText = new Text2('EMLAK EKRANI YARDIM\n\nBu ekranda emlak satın alabilirsiniz.\n\nHer emlaktan maksimum 1 adet alabilirsiniz.\n\nEmlaklar size 30 dakikada bir gelir sağlar.\n\nSATIN AL butonu ile emlak satın alın.\nSAT butonu ile emlakı yarı fiyatına satın.\n\nEmlak sahipliği otomatik gelir getirir.', {
size: 70,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1400
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 2048 / 2;
messageText.y = 2732 / 2 - 100;
self.addChild(messageText);
// Create close button
var closeButton = new MenuButton('KAPAT', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 400;
closeButton.onPress = function () {
// Remove all message box elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(messageText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
messageText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
// Back button to fourth page
var backButton = new MenuButton('YATIRIM', 200, 80);
backButton.x = 150;
backButton.y = 2632;
backButton.onPress = function () {
showFourthPage();
};
self.addChild(backButton);
// Vehicles button in bottom right corner
var vehiclesButton = new MenuButton('TAŞITLAR', 200, 80);
vehiclesButton.x = 1848; // Right side with margin for border
vehiclesButton.y = 2632; // Bottom with margin for border
vehiclesButton.onPress = function () {
showSixthPage();
};
self.addChild(vehiclesButton);
return self;
});
var FourthPage = Container.expand(function () {
var self = Container.call(this);
// Initialize investment data
self.depositAmount = 0;
self.interestRate = 0.05; // 5% interest rate
self.lastDepositTime = storage.lastDepositTime || 0;
// Header text
var headerText = new Text2('YATIRIMLAR', {
size: 150,
fill: 0x006400
});
headerText.anchor.set(0.5, 0);
headerText.x = 2048 / 2;
headerText.y = 100;
self.addChild(headerText);
// Interest deposit system container
var depositContainer = new Container();
depositContainer.x = 2048 / 2;
depositContainer.y = 350;
self.addChild(depositContainer);
// Deposit title
var depositTitle = new Text2('FAİZ SİSTEMİ', {
size: 120,
fill: 0x8B4513
});
depositTitle.anchor.set(0.5, 0);
depositTitle.x = 0;
depositTitle.y = 0;
depositContainer.addChild(depositTitle);
// Current deposit display
var currentDepositText = new Text2('Yatırılan Tutar: $0', {
size: 80,
fill: 0x000000
});
currentDepositText.anchor.set(0.5, 0);
currentDepositText.x = 0;
currentDepositText.y = 150;
depositContainer.addChild(currentDepositText);
// Interest rate display
var interestRateText = new Text2('Faiz Oranı: %5 (Günlük)', {
size: 50,
fill: 0x006400
});
interestRateText.anchor.set(0.5, 0);
interestRateText.x = 0;
interestRateText.y = 250;
depositContainer.addChild(interestRateText);
// Input amount buttons
var inputAmount = 0;
var buttonRow1Y = 350;
var buttonRow2Y = 470;
var buttonSpacing = 220;
// Amount selection buttons
var amounts = [100, 500, 1000, 5000, 10000, 50000];
var amountButtons = [];
for (var i = 0; i < amounts.length; i++) {
var amount = amounts[i];
var button = new MenuButton('$' + amount, 180, 80);
button.x = i % 3 * buttonSpacing - buttonSpacing;
button.y = i < 3 ? buttonRow1Y : buttonRow2Y;
button.amount = amount;
button.onPress = function () {
inputAmount = this.amount;
inputAmountText.setText('Yatırılacak Tutar: $' + inputAmount);
LK.effects.flashObject(this, 0x00FF00, 300);
};
depositContainer.addChild(button);
amountButtons.push(button);
}
// All money button
var allMoneyButton = new MenuButton('TÜM PARA', 200, 80);
allMoneyButton.x = 0;
allMoneyButton.y = 590;
allMoneyButton.onPress = function () {
var currentMoney = storage.money || 0;
inputAmount = currentMoney;
inputAmountText.setText('Yatırılacak Tutar: $' + inputAmount);
LK.effects.flashObject(this, 0x00FF00, 300);
};
depositContainer.addChild(allMoneyButton);
// Deposit button
var depositButton = new MenuButton('YATIR', 250, 100);
depositButton.x = -150;
depositButton.y = 710;
depositButton.onPress = function () {
var currentMoney = storage.money || 0;
if (inputAmount > 0 && currentMoney >= inputAmount) {
// Deduct money and add to deposit
storage.money = currentMoney - inputAmount;
self.depositAmount = (storage.depositAmount || 0) + inputAmount;
storage.depositAmount = self.depositAmount;
storage.lastDepositTime = Date.now();
// Update displays
self.updateDepositDisplay();
inputAmount = 0;
inputAmountText.setText('Yatırılacak Tutar: $0');
LK.effects.flashObject(this, 0x00FF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
depositContainer.addChild(depositButton);
// Withdraw button
var withdrawButton = new MenuButton('ÇEK', 250, 100);
withdrawButton.x = 150;
withdrawButton.y = 710;
withdrawButton.onPress = function () {
if (self.depositAmount > 0) {
// Calculate accumulated interest
var currentTime = Date.now();
var timeDiff = currentTime - (storage.lastDepositTime || currentTime);
var daysPassed = timeDiff / (1000 * 60 * 60 * 24); // Convert to days
var interestEarned = self.depositAmount * self.interestRate * daysPassed;
var totalAmount = self.depositAmount + interestEarned;
// Add to player's money
var currentMoney = storage.money || 0;
storage.money = currentMoney + Math.floor(totalAmount);
// Reset deposit
self.depositAmount = 0;
storage.depositAmount = 0;
storage.lastDepositTime = 0;
// Update display
self.updateDepositDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
depositContainer.addChild(withdrawButton);
// Money input display
var inputAmountText = new Text2('Yatırılacak Tutar: $0', {
size: 70,
fill: 0x000000
});
inputAmountText.anchor.set(0.5, 0);
inputAmountText.x = 0;
inputAmountText.y = 830;
depositContainer.addChild(inputAmountText);
// Update deposit display function
self.updateDepositDisplay = function () {
self.depositAmount = storage.depositAmount || 0;
currentDepositText.setText('Yatırılan Tutar: $' + Math.floor(self.depositAmount));
};
// Initialize deposit amount from storage
self.updateDepositDisplay();
// Spinning wheel container
var wheelContainer = new Container();
wheelContainer.x = 2048 / 2;
wheelContainer.y = 1800;
self.addChild(wheelContainer);
// Wheel background circle
var wheelBackground = LK.getAsset('centerCircle', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 4,
scaleY: 4,
x: 0,
y: 0
});
wheelBackground.tint = 0xFFD700; // Golden wheel
wheelContainer.addChild(wheelBackground);
// Wheel options
var wheelOptions = ['$100', '$500', '$1000', '$5000', 'ŞANSIZLIK'];
var wheelColors = [0x00FF00, 0x0080FF, 0xFF8000, 0xFF0080, 0xFF0000];
var optionTexts = [];
// Create wheel sections and text
for (var i = 0; i < 5; i++) {
var angle = i * 72 * Math.PI / 180; // 72 degrees per section
var radius = 120;
var textX = Math.cos(angle) * radius;
var textY = Math.sin(angle) * radius;
var optionText = new Text2(wheelOptions[i], {
size: 40,
fill: 0x000000
});
optionText.anchor.set(0.5, 0.5);
optionText.x = textX;
optionText.y = textY;
wheelContainer.addChild(optionText);
optionTexts.push(optionText);
}
// Wheel pointer
var pointer = wheelContainer.attachAsset('smallButtonBg', {
anchorX: 0.5,
anchorY: 1,
width: 20,
height: 60,
x: 0,
y: -200
});
pointer.tint = 0xFF0000; // Red pointer
// Spin button
var spinButton = new MenuButton('ÇARK ÇEVİR', 250, 80);
spinButton.x = 0;
spinButton.y = 320;
spinButton.isSpinning = false;
spinButton.onPress = function () {
var currentMoney = storage.money || 0;
if (currentMoney >= 1000 && !this.isSpinning) {
// Deduct spin cost
storage.money = currentMoney - 1000;
self.updateDepositDisplay();
this.isSpinning = true;
// Random spin amount (3-8 full rotations plus random position)
var spinAmount = (Math.random() * 5 + 3) * 360; // 3-8 full rotations
var finalPosition = Math.random() * 360; // Final position
var totalRotation = wheelBackground.rotation * 180 / Math.PI + spinAmount + finalPosition;
// Animate wheel spin
tween(wheelBackground, {
rotation: totalRotation * Math.PI / 180
}, {
duration: 3000,
easing: tween.easeOut,
onFinish: function onFinish() {
// Determine which option was selected
var normalizedAngle = (totalRotation % 360 + 360) % 360;
var sectionIndex = Math.floor((normalizedAngle + 36) / 72) % 5; // 36 is half section
var selectedOption = wheelOptions[sectionIndex];
// Give reward based on selection
var currentMoney = storage.money || 0;
var reward = 0;
switch (selectedOption) {
case '$100':
reward = 100;
break;
case '$500':
reward = 500;
break;
case '$1000':
reward = 1000;
break;
case '$5000':
reward = 5000;
break;
case 'ŞANSIZLIK':
reward = 0;
break;
}
if (reward > 0) {
storage.money = currentMoney + reward;
LK.effects.flashScreen(0x00FF00, 500);
} else {
LK.effects.flashScreen(0xFF0000, 500);
}
self.updateDepositDisplay();
spinButton.isSpinning = false;
// Show result message
self.showWheelResult(selectedOption, reward);
}
});
LK.effects.flashObject(this, 0x00FF00, 300);
} else if (this.isSpinning) {
LK.effects.flashObject(this, 0xFFFF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
wheelContainer.addChild(spinButton);
// Wheel title
var wheelTitle = new Text2('TEMETTÜ ÇARKI - $1000', {
size: 80,
fill: 0x8B4513
});
wheelTitle.anchor.set(0.5, 0);
wheelTitle.x = 0;
wheelTitle.y = -350;
wheelContainer.addChild(wheelTitle);
// Show wheel result function
self.showWheelResult = function (selectedOption, reward) {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1200,
height: 600,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFD700;
// Create result text
var resultMessage = reward > 0 ? 'TEBRİKLER!\n\n' + selectedOption + ' kazandınız!' : 'ŞANSSIZLIK!\n\nBu sefer olmadı, tekrar deneyin!';
var resultText = new Text2(resultMessage, {
size: 80,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1000
});
resultText.anchor.set(0.5, 0.5);
resultText.x = 2048 / 2;
resultText.y = 2732 / 2 - 50;
self.addChild(resultText);
// Create close button
var closeButton = new MenuButton('TAMAM', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 200;
closeButton.onPress = function () {
// Remove all result message elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(resultText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
resultText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
// Back button to third page
var backButton = new MenuButton('BORSA', 200, 80);
backButton.x = 150;
backButton.y = 2632;
backButton.onPress = function () {
showThirdPage();
};
self.addChild(backButton);
// Market button in bottom right corner
var marketButton = new MenuButton('MARKET', 200, 80);
marketButton.x = 1848; // Right side with margin for border
marketButton.y = 2632; // Bottom with margin for border
marketButton.onPress = function () {
showFifthPage();
};
self.addChild(marketButton);
return self;
});
var GameScreen = Container.expand(function () {
var self = Container.call(this);
// Initialize balloon purchase status
self.balloonPurchased = storage.balloonPurchased || false;
// Initialize airplane purchase status
self.airplanePurchased = storage.airplanePurchased || false;
// Initialize jet purchase status
self.jetPurchased = storage.jetPurchased || false;
// Initialize gift box purchase status
self.giftBoxPurchased = storage.giftBoxPurchased || false;
// Header text
var headerText = new Text2('TIKLA KAZAN', {
size: 150,
fill: 0x006400
});
headerText.anchor.set(0.5, 0);
headerText.x = 2048 / 2;
headerText.y = 100;
self.addChild(headerText);
// Gift box button to the left of header text
var giftBoxButtonText = self.giftBoxPurchased ? '🎁' : '🎁 : $10000';
var giftBoxButton = new MenuButton(giftBoxButtonText, 250, 120);
giftBoxButton.x = headerText.x - 600; // Move even further to the left of header text
giftBoxButton.y = headerText.y + 75; // Align vertically with header
giftBoxButton.onPress = function () {
if (!self.giftBoxPurchased) {
// Check if player has enough money to buy gift box
if (self.currentMoney >= 10000) {
self.currentMoney -= 10000;
self.giftBoxPurchased = true;
storage.giftBoxPurchased = true;
self.updateMoney();
// Update button text to remove price
giftBoxButton.removeChild(giftBoxButton.children[1]); // Remove old text
var newButtonText = new Text2('🎁', {
size: 60,
fill: 0x000000
});
newButtonText.anchor.set(0.5, 0.5);
giftBoxButton.addChild(newButtonText);
LK.effects.flashObject(giftBoxButton, 0x00FF00, 300);
// Start gift box passive income timer
self.startGiftBoxIncome();
} else {
// Not enough money - flash red
LK.effects.flashObject(giftBoxButton, 0xFF0000, 300);
}
} else {
// Gift box already purchased - flash gold
LK.effects.flashObject(giftBoxButton, 0xFFD700, 300);
}
};
self.addChild(giftBoxButton);
// Money display with green border
var moneyBorder = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 300,
height: 120,
x: 2048 / 2,
y: 350
});
// Change border color to green
moneyBorder.tint = 0x00FF00;
var moneyText = new Text2('$0', {
size: 100,
fill: 0xFFFFFF
});
moneyText.anchor.set(0.5, 0.5);
moneyText.x = 2048 / 2;
moneyText.y = 350;
self.addChild(moneyText);
// Center earn button
var earnButton = new MenuButton('KAZANMAK İÇİN TIKLA', 400, 100);
earnButton.x = 2048 / 2 + 100; // Move to the right
earnButton.y = 1200; // Move higher up on screen
// Add dollar sign to earn button
var dollarIcon = earnButton.attachAsset('dollarSign', {
anchorX: 0.5,
anchorY: 0.5,
x: -50,
y: 0
});
// Add dollar sign text
var dollarText = new Text2('$', {
size: 50,
fill: 0x000000
});
dollarText.anchor.set(0.5, 0.5);
dollarText.x = -50;
dollarText.y = 0;
earnButton.addChild(dollarText);
earnButton.onPress = function () {
var earnAmount = 25;
if (self.balloonPurchased) earnAmount = 35;
if (self.airplanePurchased) earnAmount = 50;
self.currentMoney += earnAmount;
self.updateMoney();
LK.effects.flashObject(moneyText, 0x00FF00, 300);
};
self.addChild(earnButton);
// Question mark button in top right corner
// Title display below earn button
var titleText = new Text2('FASFAKİR', {
size: 80,
fill: 0x000000,
fontWeight: 'bold'
});
titleText.anchor.set(0.5, 0.5);
titleText.x = 2048 / 2;
titleText.y = 1750; // Move title text further down
self.addChild(titleText);
var questionButton = new MenuButton('?', 80, 80);
questionButton.x = 1900; // Top right corner with margin for border
questionButton.y = 120; // Top with margin for border
questionButton.onPress = function () {
// Flash the button when pressed
LK.effects.flashObject(questionButton, 0x00FF00, 300);
// Show help message box
self.showHelpMessage();
};
self.addChild(questionButton);
// Sound toggle button below question mark button
self.soundEnabled = storage.soundEnabled !== false; // Default to true
var soundButtonText = self.soundEnabled ? '🔊' : '🔇';
var soundButton = new MenuButton(soundButtonText, 80, 80);
soundButton.x = 1900; // Same x position as question mark button
soundButton.y = 220; // Below question mark button
soundButton.onPress = function () {
self.soundEnabled = !self.soundEnabled;
storage.soundEnabled = self.soundEnabled;
// Update button text
soundButton.removeChild(soundButton.children[1]); // Remove old text
var newSoundText = new Text2(self.soundEnabled ? '🔊' : '🔇', {
size: 60,
fill: 0x000000
});
newSoundText.anchor.set(0.5, 0.5);
soundButton.addChild(newSoundText);
// Flash the button
LK.effects.flashObject(soundButton, 0x00FF00, 300);
};
self.addChild(soundButton);
// Back button
var backButton = new MenuButton('MENÜ', 200, 80);
backButton.x = 150;
backButton.y = 2632;
backButton.onPress = function () {
showMainMenu();
};
self.addChild(backButton);
// Third page button in bottom right
var thirdPageButton = new MenuButton('BORSA', 200, 80);
thirdPageButton.x = 1898; // Right side with margin for border
thirdPageButton.y = 2632; // Bottom with margin for border
thirdPageButton.onPress = function () {
showThirdPage();
};
self.addChild(thirdPageButton);
// Jet button above airplane
var jetButtonText = self.jetPurchased ? '🚀' : '🚀 : $10000';
var jetButton = new MenuButton(jetButtonText, 250, 150);
jetButton.x = 2048 / 2;
jetButton.y = 2100; // Position above airplane button
jetButton.onPress = function () {
if (!self.jetPurchased) {
// Check if player has enough money to buy jet
if (self.currentMoney >= 10000) {
self.currentMoney -= 10000;
self.jetPurchased = true;
storage.jetPurchased = true;
self.updateMoney();
// Update button text to remove price
jetButton.removeChild(jetButton.children[1]); // Remove old text
var newButtonText = new Text2('🚀', {
size: 60,
fill: 0x000000
});
newButtonText.anchor.set(0.5, 0.5);
jetButton.addChild(newButtonText);
LK.effects.flashObject(jetButton, 0x00FF00, 300);
// Start jet passive income timer
self.startJetIncome();
} else {
// Not enough money - flash red
LK.effects.flashObject(jetButton, 0xFF0000, 300);
}
} else {
// Jet already purchased - flash purple
LK.effects.flashObject(jetButton, 0x8A2BE2, 300);
}
};
self.addChild(jetButton);
// Airplane button above balloon
var airplaneButtonText = self.airplanePurchased ? '✈️' : '✈️ : $5000';
var airplaneButton = new MenuButton(airplaneButtonText, 200, 150);
airplaneButton.x = 2048 / 2;
airplaneButton.y = 2300; // Position above balloon button
airplaneButton.onPress = function () {
if (!self.airplanePurchased) {
// Check if player has enough money to buy airplane
if (self.currentMoney >= 5000) {
self.currentMoney -= 5000;
self.airplanePurchased = true;
storage.airplanePurchased = true;
self.updateMoney();
// Update button text to remove price
airplaneButton.removeChild(airplaneButton.children[1]); // Remove old text
var newButtonText = new Text2('✈️', {
size: 60,
fill: 0x000000
});
newButtonText.anchor.set(0.5, 0.5);
airplaneButton.addChild(newButtonText);
LK.effects.flashObject(airplaneButton, 0x00FF00, 300);
} else {
// Not enough money - flash red
LK.effects.flashObject(airplaneButton, 0xFF0000, 300);
}
} else {
// Airplane already purchased - flash blue
LK.effects.flashObject(airplaneButton, 0x87CEEB, 300);
}
};
self.addChild(airplaneButton);
// Golden balloon button
var balloonButtonText = self.balloonPurchased ? '🎈' : '🎈 $1000';
var balloonButton = new MenuButton(balloonButtonText, 200, 150);
balloonButton.x = 2048 / 2;
balloonButton.y = 2500; // Move to bottom of screen
balloonButton.onPress = function () {
if (!self.balloonPurchased) {
// Check if player has enough money to buy balloon
if (self.currentMoney >= 1000) {
self.currentMoney -= 1000;
self.balloonPurchased = true;
storage.balloonPurchased = true;
self.updateMoney();
// Update button text to remove price
balloonButton.removeChild(balloonButton.children[1]); // Remove old text
var newButtonText = new Text2('🎈', {
size: 60,
fill: 0x000000
});
newButtonText.anchor.set(0.5, 0.5);
balloonButton.addChild(newButtonText);
LK.effects.flashObject(balloonButton, 0x00FF00, 300);
} else {
// Not enough money - flash red
LK.effects.flashObject(balloonButton, 0xFF0000, 300);
}
} else {
// Balloon already purchased - flash gold
LK.effects.flashObject(balloonButton, 0xFFD700, 300);
}
};
self.addChild(balloonButton);
self.currentMoney = storage.money || 0;
self.updateMoney = function () {
moneyText.setText('$' + self.currentMoney);
storage.money = self.currentMoney;
// Update title based on money amount
var newTitle = '';
if (self.currentMoney <= 50000) {
newTitle = 'FASFAKİR';
} else if (self.currentMoney <= 100000) {
newTitle = 'FAKİR';
} else if (self.currentMoney <= 500000) {
newTitle = 'ORTADİREK';
} else if (self.currentMoney <= 2000000) {
newTitle = 'MİLYONER';
} else {
newTitle = 'MİLYARDER';
}
titleText.setText(newTitle);
};
// Jet passive income functionality
self.startJetIncome = function () {
// Give 200 dollars every 5 minutes (300000 ms)
self.jetTimer = LK.setInterval(function () {
if (self.jetPurchased) {
self.currentMoney += 200;
self.updateMoney();
LK.effects.flashObject(moneyText, 0x8A2BE2, 500);
}
}, 300000); // 5 minutes = 300000 milliseconds
};
// Gift box passive income functionality
self.startGiftBoxIncome = function () {
// Give 1000 dollars every 10 minutes (600000 ms)
self.giftBoxTimer = LK.setInterval(function () {
if (self.giftBoxPurchased) {
self.currentMoney += 1000;
self.updateMoney();
LK.effects.flashObject(moneyText, 0xFFD700, 500);
}
}, 600000); // 10 minutes = 600000 milliseconds
};
// Start jet income if already purchased
if (self.jetPurchased) {
self.startJetIncome();
}
// Start gift box income if already purchased
if (self.giftBoxPurchased) {
self.startGiftBoxIncome();
}
// Help message functionality
self.showHelpMessage = function () {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1600,
height: 1200,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFFFFF;
// Create message text
var messageText = new Text2('HAYDİ oyunun temel mantığını öğrenelim.\n\nBurası para kazanma ekranı.\n\nHer tıkladığınızda para kazanın.\n\nBalon, uçak, jet ve hediye kutusu\ndüğmelerine tıklayarak daha çok para kazan.\n\nUnvan para miktarına göre değişmektedir.', {
size: 80,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1400
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 2048 / 2;
messageText.y = 2732 / 2 - 100;
self.addChild(messageText);
// Create close button
var closeButton = new MenuButton('KAPAT', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 400;
closeButton.onPress = function () {
// Remove all message box elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(messageText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
messageText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
self.updateMoney();
return self;
});
var MainMenu = Container.expand(function () {
var self = Container.call(this);
// Game title
var titleText = new Text2('MONEY MAN', {
size: 200,
fill: 0x006400
});
titleText.anchor.set(0.5, 0);
titleText.x = 2048 / 2;
titleText.y = 300;
self.addChild(titleText);
// Start button
var startButton = new MenuButton('BAŞLA');
startButton.x = 2048 / 2;
startButton.y = 1000;
startButton.onPress = function () {
showGameScreen();
};
self.addChild(startButton);
// Continue button
var continueButton = new MenuButton('KAYITLI OYUNA DEVAM ET');
continueButton.x = 2048 / 2;
continueButton.y = 1200;
continueButton.onPress = function () {
showGameScreen();
};
self.addChild(continueButton);
// Delete button
var deleteButton = new MenuButton('Oyunu Sıfırla');
deleteButton.x = 2048 / 2;
deleteButton.y = 1400;
deleteButton.onPress = function () {
// Reset basic game data
storage.money = 0;
storage.balloonPurchased = false;
storage.airplanePurchased = false;
storage.jetPurchased = false;
storage.giftBoxPurchased = false;
// Reset stock market data
var stockNames = ['Turk AİR', 'Wings AİR', 'KO Cola', 'BAM Burger', 'Starfack', 'Zamsung', 'Aaple', 'Amazong', 'Alipapa', 'Nexflix', 'Ndvideo', 'Macnasoft', 'Geogle', 'Inzell', 'BİG Bank', 'AA Finance', 'AUTI', 'BMV', 'Mernedes', 'META', 'Gassfrom', 'Sun Energy', 'Redbool', 'Telsa', 'Nİxe', 'Abidas', 'MAG GAME', 'Bitcoin', 'Etherium', 'MAG COİN'];
for (var i = 0; i < stockNames.length; i++) {
storage['stock_' + stockNames[i]] = null;
storage['price_' + stockNames[i]] = null;
storage['owned_' + stockNames[i]] = 0;
storage['fiveMinPrice_' + stockNames[i]] = null;
storage['purchasePrice_' + stockNames[i]] = null;
}
// Reset interest system data
storage.depositAmount = 0;
storage.lastDepositTime = 0;
// Reset real estate properties data
var propertyNames = ['Küçük Daire', 'Büyük Daire', 'Villa', 'Lüks Villa', 'İş Merkezi', 'Alışveriş Merkezi', 'Gökdelen', 'Otel'];
for (var i = 0; i < propertyNames.length; i++) {
storage['property_owned_' + propertyNames[i]] = 0;
}
// Reset vehicle data
var vehicleNames = ['Bisiklet', 'Motosiklet', 'Araba', 'Kamyon', 'Otobüs', 'Gemi', 'Uçak', 'Helikopter'];
for (var i = 0; i < vehicleNames.length; i++) {
storage['vehicle_owned_' + vehicleNames[i]] = 0;
}
// Clear any active timers in current game screen
if (gameScreen && gameScreen.jetTimer) {
LK.clearInterval(gameScreen.jetTimer);
gameScreen.jetTimer = null;
}
if (gameScreen && gameScreen.giftBoxTimer) {
LK.clearInterval(gameScreen.giftBoxTimer);
gameScreen.giftBoxTimer = null;
}
// Clear timers from other screens if they exist
if (thirdPage && thirdPage.priceTimer) {
LK.clearInterval(thirdPage.priceTimer);
thirdPage.priceTimer = null;
}
if (thirdPage && thirdPage.fiveMinuteTimer) {
LK.clearInterval(thirdPage.fiveMinuteTimer);
thirdPage.fiveMinuteTimer = null;
}
if (fifthPage && fifthPage.propertyTimers) {
for (var i = 0; i < fifthPage.propertyTimers.length; i++) {
if (fifthPage.propertyTimers[i]) {
LK.clearInterval(fifthPage.propertyTimers[i]);
fifthPage.propertyTimers[i] = null;
}
}
}
if (sixthPage && sixthPage.vehicleTimers) {
for (var i = 0; i < sixthPage.vehicleTimers.length; i++) {
if (sixthPage.vehicleTimers[i]) {
LK.clearInterval(sixthPage.vehicleTimers[i]);
sixthPage.vehicleTimers[i] = null;
}
}
}
// Reset purchase statuses in current game screen instance
if (gameScreen) {
gameScreen.balloonPurchased = false;
gameScreen.airplanePurchased = false;
gameScreen.jetPurchased = false;
gameScreen.giftBoxPurchased = false;
}
LK.effects.flashScreen(0xFF0000, 500);
};
self.addChild(deleteButton);
return self;
});
var MenuButton = Container.expand(function (text, width, height) {
var self = Container.call(this);
width = width || 600;
height = height || 120;
var buttonBackground = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: width,
height: height
});
var buttonText = new Text2(text, {
size: 60,
fill: 0x000000
});
buttonText.anchor.set(0.5, 0.5);
self.addChild(buttonText);
self.down = function (x, y, obj) {
LK.getSound('click').play();
buttonBackground.alpha = 0.8;
};
self.up = function (x, y, obj) {
buttonBackground.alpha = 1.0;
if (self.onPress) {
self.onPress();
}
};
return self;
});
var SeventhPage = Container.expand(function () {
var self = Container.call(this);
// Header text
var headerText = new Text2('YENİ SAYFA', {
size: 150,
fill: 0x8A2BE2
});
headerText.anchor.set(0.5, 0);
headerText.x = 2048 / 2;
headerText.y = 50;
self.addChild(headerText);
// Money display
var moneyDisplay = new Text2('Para: $0', {
size: 80,
fill: 0x006400
});
moneyDisplay.anchor.set(0.5, 0);
moneyDisplay.x = 2048 / 2;
moneyDisplay.y = 200;
self.addChild(moneyDisplay);
// Update money display
self.updateMoneyDisplay = function () {
var currentMoney = storage.money || 0;
moneyDisplay.setText('Para: $' + currentMoney);
};
self.updateMoneyDisplay();
// Content area
var contentText = new Text2('Bu yeni sayfadır.\n\nBuraya istediğiniz içeriği ekleyebilirsiniz.', {
size: 80,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1600
});
contentText.anchor.set(0.5, 0.5);
contentText.x = 2048 / 2;
contentText.y = 1200;
self.addChild(contentText);
// Question mark button in top right corner
var questionButton = new MenuButton('?', 80, 80);
questionButton.x = 1900; // Top right corner with margin for border
questionButton.y = 120; // Top with margin for border
questionButton.onPress = function () {
// Flash the button when pressed
LK.effects.flashObject(questionButton, 0x00FF00, 300);
// Show help message for new page
self.showHelpMessage();
};
self.addChild(questionButton);
// Help message functionality
self.showHelpMessage = function () {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1600,
height: 1200,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFFFFF;
// Create message text
var messageText = new Text2('YENİ SAYFA YARDIM\n\nBu yeni eklenen sayfadır.\n\nBuraya istediğiniz özellikler eklenebilir.\n\nSayfa arası geçiş için alt kısımdaki\nbutonları kullanabilirsiniz.', {
size: 70,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1400
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 2048 / 2;
messageText.y = 2732 / 2 - 100;
self.addChild(messageText);
// Create close button
var closeButton = new MenuButton('KAPAT', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 400;
closeButton.onPress = function () {
// Remove all message box elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(messageText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
messageText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
// Back button to vehicles page
var backButton = new MenuButton('TAŞITLAR', 200, 80);
backButton.x = 150;
backButton.y = 2632;
backButton.onPress = function () {
showSixthPage();
};
self.addChild(backButton);
// Next page button in bottom right corner
var nextButton = new MenuButton('MENÜ', 200, 80);
nextButton.x = 1848; // Right side with margin for border
nextButton.y = 2632; // Bottom with margin for border
nextButton.onPress = function () {
showMainMenu();
};
self.addChild(nextButton);
return self;
});
var SixthPage = Container.expand(function () {
var self = Container.call(this);
// Initialize vehicle data
var vehicleData = [{
name: 'Bisiklet',
price: 500,
owned: 0,
income: 25,
icon: '🚲'
}, {
name: 'Motosiklet',
price: 2000,
owned: 0,
income: 100,
icon: '🏍️'
}, {
name: 'Araba',
price: 15000,
owned: 0,
income: 750,
icon: '🚗'
}, {
name: 'Kamyon',
price: 50000,
owned: 0,
income: 2500,
icon: '🚛'
}, {
name: 'Otobüs',
price: 75000,
owned: 0,
income: 3750,
icon: '🚌'
}, {
name: 'Gemi',
price: 200000,
owned: 0,
income: 10000,
icon: '🚢'
}, {
name: 'Uçak',
price: 1000000,
owned: 0,
income: 50000,
icon: '✈️'
}, {
name: 'Helikopter',
price: 1500000,
owned: 0,
income: 75000,
icon: '🚁'
}];
// Load owned vehicles from storage
for (var i = 0; i < vehicleData.length; i++) {
var vehicle = vehicleData[i];
var ownedKey = 'vehicle_owned_' + vehicle.name;
vehicle.owned = storage[ownedKey] || 0;
}
// Header text
var headerText = new Text2('TAŞITLAR', {
size: 150,
fill: 0xFF6600
});
headerText.anchor.set(0.5, 0);
headerText.x = 2048 / 2;
headerText.y = 50;
self.addChild(headerText);
// Money display
var moneyDisplay = new Text2('Para: $0', {
size: 80,
fill: 0x006400
});
moneyDisplay.anchor.set(0.5, 0);
moneyDisplay.x = 2048 / 2;
moneyDisplay.y = 200;
self.addChild(moneyDisplay);
// Update money display
self.updateMoneyDisplay = function () {
var currentMoney = storage.money || 0;
moneyDisplay.setText('Para: $' + currentMoney);
};
self.updateMoneyDisplay();
// Vehicles container
var vehiclesContainer = new Container();
vehiclesContainer.x = 100;
vehiclesContainer.y = 350;
self.addChild(vehiclesContainer);
// Create vehicle entries
self.vehicleEntries = [];
for (var i = 0; i < vehicleData.length; i++) {
var vehicle = vehicleData[i];
var yPos = i * 200; // Spacing for vehicle entries
// Vehicle background
var vehicleBg = vehiclesContainer.attachAsset('buttonBg', {
anchorX: 0,
anchorY: 0,
width: 1800,
height: 180,
x: 0,
y: yPos
});
vehicleBg.tint = 0xF0F0F0;
// Vehicle icon
var vehicleIcon = new Text2(vehicle.icon, {
size: 80,
fill: 0x000000
});
vehicleIcon.anchor.set(0.5, 0.5);
vehicleIcon.x = 100;
vehicleIcon.y = yPos + 90;
vehiclesContainer.addChild(vehicleIcon);
// Vehicle name text
var nameText = new Text2(vehicle.name, {
size: 50,
fill: 0x000000
});
nameText.anchor.set(0, 0.5);
nameText.x = 200;
nameText.y = yPos + 60;
vehiclesContainer.addChild(nameText);
// Vehicle price text
var priceText = new Text2('Fiyat: $' + vehicle.price, {
size: 40,
fill: 0x000000
});
priceText.anchor.set(0, 0.5);
priceText.x = 200;
priceText.y = yPos + 100;
vehiclesContainer.addChild(priceText);
// Vehicle income text
var incomeText = new Text2('Gelir: $' + vehicle.income + '/saat', {
size: 35,
fill: 0x006400
});
incomeText.anchor.set(0, 0.5);
incomeText.x = 200;
incomeText.y = yPos + 140;
vehiclesContainer.addChild(incomeText);
// Owned amount text
var ownedText = new Text2('Sahip: ' + vehicle.owned, {
size: 40,
fill: 0x000000
});
ownedText.anchor.set(0, 0.5);
ownedText.x = 600;
ownedText.y = yPos + 90;
vehiclesContainer.addChild(ownedText);
// Buy button
var buyButton = new MenuButton('SATIN AL', 200, 80);
buyButton.x = 1000;
buyButton.y = yPos + 90;
buyButton.vehicleIndex = i;
buyButton.onPress = function () {
var vehicleIndex = this.vehicleIndex;
var vehicle = vehicleData[vehicleIndex];
var currentMoney = storage.money || 0;
if (vehicle.owned >= 1) {
// Already owns maximum allowed (1) - flash yellow
LK.effects.flashObject(this, 0xFFFF00, 300);
} else if (currentMoney >= vehicle.price) {
storage.money = currentMoney - vehicle.price;
vehicle.owned += 1;
storage['vehicle_owned_' + vehicle.name] = vehicle.owned;
self.updateVehicleDisplay();
self.updateMoneyDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
// Start income generation if first purchase
if (vehicle.owned === 1) {
self.startVehicleIncome(vehicleIndex);
}
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
vehiclesContainer.addChild(buyButton);
// Sell button
var sellButton = new MenuButton('SAT', 150, 80);
sellButton.x = 1250;
sellButton.y = yPos + 90;
sellButton.vehicleIndex = i;
sellButton.onPress = function () {
var vehicleIndex = this.vehicleIndex;
var vehicle = vehicleData[vehicleIndex];
if (vehicle.owned > 0) {
var currentMoney = storage.money || 0;
var sellPrice = Math.floor(vehicle.price * 0.5); // Sell for 50% (half) of original price
storage.money = currentMoney + sellPrice;
vehicle.owned -= 1;
storage['vehicle_owned_' + vehicle.name] = vehicle.owned;
self.updateVehicleDisplay();
self.updateMoneyDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
vehiclesContainer.addChild(sellButton);
// Store vehicle entry for updates
self.vehicleEntries.push({
vehicle: vehicle,
ownedText: ownedText,
vehicleBg: vehicleBg
});
}
// Update vehicle display function
self.updateVehicleDisplay = function () {
for (var i = 0; i < self.vehicleEntries.length; i++) {
var entry = self.vehicleEntries[i];
var vehicle = entry.vehicle;
entry.ownedText.setText('Sahip: ' + vehicle.owned);
// Change background color based on ownership
if (vehicle.owned > 0) {
entry.vehicleBg.tint = 0x90EE90; // Light green for owned
} else {
entry.vehicleBg.tint = 0xF0F0F0; // Default gray
}
}
};
// Vehicle income generation
self.vehicleTimers = [];
self.startVehicleIncome = function (vehicleIndex) {
var vehicle = vehicleData[vehicleIndex];
var timer = LK.setInterval(function () {
if (vehicle.owned > 0) {
var currentMoney = storage.money || 0;
var totalIncome = vehicle.income * vehicle.owned;
storage.money = currentMoney + totalIncome;
self.updateMoneyDisplay();
LK.effects.flashObject(moneyDisplay, 0x00FF00, 300);
}
}, 3600000); // Every hour (3600000 ms)
self.vehicleTimers[vehicleIndex] = timer;
};
// Start income for already owned vehicles
for (var i = 0; i < vehicleData.length; i++) {
if (vehicleData[i].owned > 0) {
self.startVehicleIncome(i);
}
}
// Update initial display
self.updateVehicleDisplay();
// Question mark button in top right corner
var questionButton = new MenuButton('?', 80, 80);
questionButton.x = 1900; // Top right corner with margin for border
questionButton.y = 120; // Top with margin for border
questionButton.onPress = function () {
// Flash the button when pressed
LK.effects.flashObject(questionButton, 0x00FF00, 300);
// Show help message for vehicles
self.showVehicleHelpMessage();
};
self.addChild(questionButton);
// Vehicle help message functionality
self.showVehicleHelpMessage = function () {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1600,
height: 1200,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFFFFF;
// Create message text
var messageText = new Text2('TAŞITLAR EKRANI YARDIM\n\nBu ekranda taşıt satın alabilirsiniz.\n\nHer taşıttan istediğiniz kadar alabilirsiniz.\n\nTaşıtlar size saatte bir gelir sağlar.\n\nSATIN AL butonu ile taşıt satın alın.\nSAT butonu ile taşıtı yarı fiyatına satın.\n\nTaşıt sahipliği otomatik gelir getirir.', {
size: 70,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1400
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 2048 / 2;
messageText.y = 2732 / 2 - 100;
self.addChild(messageText);
// Create close button
var closeButton = new MenuButton('KAPAT', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 400;
closeButton.onPress = function () {
// Remove all message box elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(messageText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
messageText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
// Back button to real estate page
var backButton = new MenuButton('EMLAK', 200, 80);
backButton.x = 150;
backButton.y = 2632;
backButton.onPress = function () {
showFifthPage();
};
self.addChild(backButton);
return self;
// New button in bottom right corner
var newButton = new MenuButton('YENİ', 200, 80);
newButton.x = 1848; // Right side with margin for border
newButton.y = 2632; // Bottom with margin for border
newButton.onPress = function () {
showSeventhPage();
};
self.addChild(newButton);
});
var ThirdPage = Container.expand(function () {
var self = Container.call(this);
// Initialize stock data
self.stocks = [];
var stockNames = ['Turk AİR', 'Wings AİR', 'KO Cola', 'BAM Burger', 'Starfack', 'Zamsung', 'Aaple', 'Amazong', 'Alipapa', 'Nexflix', 'Ndvideo', 'Macnasoft', 'Geogle', 'Inzell', 'BİG Bank', 'AA Finance', 'AUTI', 'BMV', 'Mernedes', 'META', 'Gassfrom', 'Sun Energy', 'Redbool', 'Telsa', 'Nİxe', 'Abidas', 'MAG GAME', 'Bitcoin', 'Etherium', 'MAG COİN'];
// Define floor and ceiling prices for each stock
var stockLimits = [{
floor: 200,
ceiling: 1000
},
// Turk AİR
{
floor: 90,
ceiling: 300
},
// Wings AİR
{
floor: 124,
ceiling: 1200
},
// KO Cola
{
floor: 1132,
ceiling: 1400
},
// BAM Burger
{
floor: 268,
ceiling: 700
},
// Starfack
{
floor: 168,
ceiling: 450
},
// Zamsung
{
floor: 220,
ceiling: 280
},
// Aaple
{
floor: 640,
ceiling: 1020
},
// Amazong
{
floor: 100,
ceiling: 1000
},
// Alipapa (default)
{
floor: 100,
ceiling: 1000
},
// Nexflix (default)
{
floor: 100,
ceiling: 1000
},
// Ndvideo (default)
{
floor: 100,
ceiling: 1000
},
// Macnasoft (default)
{
floor: 100,
ceiling: 1000
},
// Geogle (default)
{
floor: 100,
ceiling: 1000
},
// Inzell (default)
{
floor: 100,
ceiling: 1000
},
// BİG Bank (default)
{
floor: 100,
ceiling: 1000
},
// AA Finance (default)
{
floor: 100,
ceiling: 1000
},
// AUTI (default)
{
floor: 100,
ceiling: 1000
},
// BMV (default)
{
floor: 100,
ceiling: 1000
},
// Mernedes (default)
{
floor: 100,
ceiling: 1000
},
// META (default)
{
floor: 100,
ceiling: 1000
},
// Gassfrom (default)
{
floor: 100,
ceiling: 1000
},
// Sun Energy (default)
{
floor: 100,
ceiling: 1000
},
// Redbool (default)
{
floor: 100,
ceiling: 1000
},
// Telsa (default)
{
floor: 100,
ceiling: 1000
},
// Nİxe (default)
{
floor: 100,
ceiling: 1000
},
// Abidas (default)
{
floor: 100,
ceiling: 1000
},
// MAG GAME (default)
{
floor: 100,
ceiling: 1000
},
// Bitcoin (default)
{
floor: 100,
ceiling: 1000
},
// Etherium (default)
{
floor: 100,
ceiling: 1000
} // MAG COİN (default)
];
// Initialize stock prices and owned amounts from storage
for (var i = 0; i < stockNames.length; i++) {
var stockKey = 'stock_' + stockNames[i];
var priceKey = 'price_' + stockNames[i];
var ownedKey = 'owned_' + stockNames[i];
var fiveMinPriceKey = 'fiveMinPrice_' + stockNames[i];
var purchasePriceKey = 'purchasePrice_' + stockNames[i];
var limits = stockLimits[i];
var currentPrice = storage[priceKey] || Math.random() * (limits.ceiling - limits.floor) + limits.floor;
// Ensure price stays within limits
currentPrice = Math.max(limits.floor, Math.min(limits.ceiling, currentPrice));
self.stocks.push({
name: stockNames[i],
price: currentPrice,
owned: storage[ownedKey] || 0,
lastPrice: currentPrice,
fiveMinutePrice: storage[fiveMinPriceKey] || currentPrice,
purchasePrice: storage[purchasePriceKey] || currentPrice,
percentChange: 0,
floorPrice: limits.floor,
ceilingPrice: limits.ceiling
});
}
// Header text
var headerText = new Text2('BORSA', {
size: 150,
fill: 0x006400
});
headerText.anchor.set(0.5, 0);
headerText.x = 2048 / 2;
headerText.y = 100;
self.addChild(headerText);
// Market pause/start button to the left of star button
self.marketPaused = false;
var marketButton = new MenuButton('⏸️', 80, 80);
marketButton.x = headerText.x - 400; // Position to the left of star button
marketButton.y = headerText.y + 75; // Align vertically with header
marketButton.onPress = function () {
self.marketPaused = !self.marketPaused;
if (self.marketPaused) {
// Change button to play symbol
marketButton.removeChild(marketButton.children[1]); // Remove old text
var playButtonText = new Text2('▶️', {
size: 60,
fill: 0x000000
});
playButtonText.anchor.set(0.5, 0.5);
marketButton.addChild(playButtonText);
LK.effects.flashObject(marketButton, 0xFF0000, 300);
} else {
// Change button to pause symbol
marketButton.removeChild(marketButton.children[1]); // Remove old text
var pauseButtonText = new Text2('⏸️', {
size: 60,
fill: 0x000000
});
pauseButtonText.anchor.set(0.5, 0.5);
marketButton.addChild(pauseButtonText);
LK.effects.flashObject(marketButton, 0x00FF00, 300);
}
};
self.addChild(marketButton);
// Star button to the left of BORSA text
var starButton = new MenuButton('★', 80, 80);
starButton.x = headerText.x - 300; // Position further to the left of BORSA text
starButton.y = headerText.y + 75; // Align vertically with header
starButton.onPress = function () {
var currentMoney = storage.money || 0;
if (currentMoney >= 2000) {
// Deduct $2000 for star button usage
storage.money = currentMoney - 2000;
self.updateMoneyDisplay();
// Generate random stock prediction
var randomIndex = Math.floor(Math.random() * self.stocks.length);
var randomStock = self.stocks[randomIndex];
var prediction = Math.random() < 0.5 ? 'AL' : 'SAT';
// Show prediction message
self.showPredictionMessage(randomStock.name, prediction);
// Flash the button green
LK.effects.flashObject(starButton, 0x00FF00, 300);
} else {
// Not enough money - flash red
LK.effects.flashObject(starButton, 0xFF0000, 300);
}
};
self.addChild(starButton);
// Money display
var moneyDisplay = new Text2('Para: $0', {
size: 80,
fill: 0x006400
});
moneyDisplay.anchor.set(0.5, 0);
moneyDisplay.x = 2048 / 2;
moneyDisplay.y = 250;
self.addChild(moneyDisplay);
// Update money display
self.updateMoneyDisplay = function () {
var currentMoney = storage.money || 0;
moneyDisplay.setText('Para: $' + currentMoney);
};
self.updateMoneyDisplay();
// Stock list container
var stockContainer = new Container();
stockContainer.x = 100;
stockContainer.y = 400;
self.addChild(stockContainer);
// Create stock entries
self.stockEntries = [];
for (var i = 0; i < self.stocks.length; i++) {
var stock = self.stocks[i];
var yPos = i * 70;
// Stock background
var stockBg = stockContainer.attachAsset('smallButtonBg', {
anchorX: 0,
anchorY: 0,
width: 1800,
height: 60,
x: 0,
y: yPos
});
stockBg.tint = 0xF0F0F0;
// Stock name text
var nameText = new Text2(stock.name, {
size: 40,
fill: 0x000000
});
nameText.anchor.set(0, 0.5);
nameText.x = 20;
nameText.y = yPos + 30;
stockContainer.addChild(nameText);
// Stock price text
var priceText = new Text2('$' + Math.floor(stock.price), {
size: 40,
fill: 0x000000
});
priceText.anchor.set(0, 0.5);
priceText.x = 250;
priceText.y = yPos + 30;
stockContainer.addChild(priceText);
// Owned amount text
var ownedText = new Text2('Sahip: ' + stock.owned, {
size: 40,
fill: 0x000000
});
ownedText.anchor.set(0, 0.5);
ownedText.x = 750;
ownedText.y = yPos + 30;
stockContainer.addChild(ownedText);
// Percentage change text
var percentText = new Text2('0.00%', {
size: 35,
fill: 0x000000
});
percentText.anchor.set(0, 0.5);
percentText.x = 950;
percentText.y = yPos + 30;
stockContainer.addChild(percentText);
// Profit/Loss text
var profitLossText = new Text2('K/Z: $0', {
size: 35,
fill: 0x000000
});
profitLossText.anchor.set(0, 0.5);
profitLossText.x = 1150;
profitLossText.y = yPos + 30;
stockContainer.addChild(profitLossText);
// Buy button
var buyButton = new MenuButton('AL', 120, 50);
buyButton.x = 1550;
buyButton.y = yPos + 30;
buyButton.stockIndex = i;
buyButton.onPress = function () {
var stockIndex = this.stockIndex;
var stock = self.stocks[stockIndex];
var currentMoney = storage.money || 0;
var stockPrice = Math.floor(stock.price);
if (currentMoney >= stockPrice) {
storage.money = currentMoney - stockPrice;
// Calculate new average purchase price
var totalValue = stock.purchasePrice * stock.owned + stockPrice;
stock.owned += 1;
stock.purchasePrice = totalValue / stock.owned;
storage['owned_' + stock.name] = stock.owned;
storage['purchasePrice_' + stock.name] = stock.purchasePrice;
self.updateStockDisplay();
self.updateMoneyDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
stockContainer.addChild(buyButton);
// Sell button
var sellButton = new MenuButton('SAT', 120, 50);
sellButton.x = 1700;
sellButton.y = yPos + 30;
sellButton.stockIndex = i;
sellButton.onPress = function () {
var stockIndex = this.stockIndex;
var stock = self.stocks[stockIndex];
if (stock.owned > 0) {
var currentMoney = storage.money || 0;
var stockPrice = Math.floor(stock.price);
storage.money = currentMoney + stockPrice;
stock.owned -= 1;
storage['owned_' + stock.name] = stock.owned;
self.updateStockDisplay();
self.updateMoneyDisplay();
LK.effects.flashObject(this, 0x00FF00, 300);
} else {
LK.effects.flashObject(this, 0xFF0000, 300);
}
};
stockContainer.addChild(sellButton);
self.stockEntries.push({
stock: stock,
priceText: priceText,
ownedText: ownedText,
stockBg: stockBg,
percentText: percentText,
profitLossText: profitLossText
});
}
// Update stock display function
self.updateStockDisplay = function () {
for (var i = 0; i < self.stockEntries.length; i++) {
var entry = self.stockEntries[i];
var stock = entry.stock;
entry.priceText.setText('$' + Math.floor(stock.price));
entry.ownedText.setText('Sahip: ' + stock.owned);
// Calculate percentage change from 5 minutes ago
stock.percentChange = (stock.price - stock.fiveMinutePrice) / stock.fiveMinutePrice * 100;
var percentText = (stock.percentChange >= 0 ? '+' : '') + stock.percentChange.toFixed(2) + '%';
entry.percentText.setText(percentText);
// Calculate profit/loss for owned stocks
var profitLoss = 0;
if (stock.owned > 0) {
profitLoss = (stock.price - stock.purchasePrice) * stock.owned;
}
var profitLossText = 'K/Z: $' + Math.floor(profitLoss);
entry.profitLossText.setText(profitLossText);
// Color code based on percentage change
if (stock.percentChange > 0) {
entry.percentText.fill = 0x00AA00; // Green for positive change
entry.stockBg.tint = 0x90EE90; // Light green background
} else if (stock.percentChange < 0) {
entry.percentText.fill = 0xAA0000; // Red for negative change
entry.stockBg.tint = 0xFFB6C1; // Light red background
} else {
entry.percentText.fill = 0x000000; // Black for no change
entry.stockBg.tint = 0xF0F0F0; // Default gray background
}
// Color code profit/loss text
if (profitLoss > 0) {
entry.profitLossText.fill = 0x00AA00; // Green for profit
} else if (profitLoss < 0) {
entry.profitLossText.fill = 0xAA0000; // Red for loss
} else {
entry.profitLossText.fill = 0x000000; // Black for no profit/loss
}
stock.lastPrice = stock.price;
}
// Update total profit/loss display
self.updateTotalProfitLoss();
};
// Price fluctuation timer
self.priceTimer = LK.setInterval(function () {
if (!self.marketPaused) {
for (var i = 0; i < self.stocks.length; i++) {
var stock = self.stocks[i];
// Random price change between -10% to +10%
var changePercent = (Math.random() - 0.5) * 0.2;
var newPrice = stock.price * (1 + changePercent);
// Enforce floor and ceiling limits
stock.price = Math.max(stock.floorPrice, Math.min(stock.ceilingPrice, newPrice));
storage['price_' + stock.name] = stock.price;
}
self.updateStockDisplay();
}
}, 3000); // Update every 3 seconds
// 5-minute timer to update baseline prices for percentage calculation
self.fiveMinuteTimer = LK.setInterval(function () {
if (!self.marketPaused) {
for (var i = 0; i < self.stocks.length; i++) {
var stock = self.stocks[i];
stock.fiveMinutePrice = stock.price;
storage['fiveMinPrice_' + stock.name] = stock.fiveMinutePrice;
}
}
}, 300000); // Update every 5 minutes (300000 ms)
// Question mark button in top right corner
var questionButton = new MenuButton('?', 80, 80);
questionButton.x = 1900; // Top right corner with margin for border
questionButton.y = 120; // Top with margin for border
questionButton.onPress = function () {
// Flash the button when pressed
LK.effects.flashObject(questionButton, 0x00FF00, 300);
// Show help message for stock market
self.showStockHelpMessage();
};
self.addChild(questionButton);
// Back button to game screen
var backButton = new MenuButton('PARA', 200, 80);
backButton.x = 150;
backButton.y = 2632;
backButton.onPress = function () {
showGameScreen();
};
self.addChild(backButton);
// Fourth page button in bottom right corner
var fourthPageButton = new MenuButton('YATIRIM', 200, 80);
fourthPageButton.x = 1848; // Right side with margin for border
fourthPageButton.y = 2632; // Bottom with margin for border
fourthPageButton.onPress = function () {
showFourthPage();
};
self.addChild(fourthPageButton);
// Stock prediction message functionality
self.showPredictionMessage = function (stockName, prediction) {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1400,
height: 800,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFD700; // Golden background
// Create prediction text
var predictionText = new Text2('YILDIZ TAHMİNİ\n\n' + stockName + ' hissesi için tavsiye:\n\n' + prediction, {
size: 90,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1200
});
predictionText.anchor.set(0.5, 0.5);
predictionText.x = 2048 / 2;
predictionText.y = 2732 / 2 - 50;
self.addChild(predictionText);
// Create close button
var closeButton = new MenuButton('KAPAT', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 250;
closeButton.onPress = function () {
// Remove all prediction message elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(predictionText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
predictionText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
// Total profit/loss display at bottom of page
var totalProfitLossText = new Text2('TOPLAM KAR/ZARAR: $0', {
size: 80,
fill: 0x000000
});
totalProfitLossText.anchor.set(0.5, 0);
totalProfitLossText.x = 2048 / 2;
totalProfitLossText.y = 2500;
self.addChild(totalProfitLossText);
// Update total profit/loss display function
self.updateTotalProfitLoss = function () {
var totalProfitLoss = 0;
for (var i = 0; i < self.stocks.length; i++) {
var stock = self.stocks[i];
if (stock.owned > 0) {
var profitLoss = (stock.price - stock.purchasePrice) * stock.owned;
totalProfitLoss += profitLoss;
}
}
var totalText = 'TOPLAM KAR/ZARAR: $' + Math.floor(totalProfitLoss);
totalProfitLossText.setText(totalText);
// Color code based on total profit/loss
if (totalProfitLoss > 0) {
totalProfitLossText.fill = 0x00AA00; // Green for profit
} else if (totalProfitLoss < 0) {
totalProfitLossText.fill = 0xAA0000; // Red for loss
} else {
totalProfitLossText.fill = 0x000000; // Black for no profit/loss
}
};
// Stock market help message functionality
self.showStockHelpMessage = function () {
// Create semi-transparent overlay
var overlay = self.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
overlay.tint = 0x000000;
overlay.alpha = 0.7;
// Create message box background
var messageBox = self.attachAsset('buttonBg', {
anchorX: 0.5,
anchorY: 0.5,
width: 1600,
height: 1200,
x: 2048 / 2,
y: 2732 / 2
});
messageBox.tint = 0xFFFFFF;
// Create message text
var messageText = new Text2('BORSA EKRANI YARDIM\n\nBu ekranda hisse senetleri alıp satabilirsiniz.\n\nHer hissenin fiyatı sürekli değişir.\n\nYeşil renk: Fiyat artışı\nKırmızı renk: Fiyat düşüşü\n\n% değişim son 5 dakikaya göredir.\n\nK/Z: Kar/Zarar durumunuzu gösterir.\n\nAL butonu ile hisse alın.\nSAT butonu ile hisse satın.', {
size: 70,
fill: 0x000000,
wordWrap: true,
wordWrapWidth: 1400
});
messageText.anchor.set(0.5, 0.5);
messageText.x = 2048 / 2;
messageText.y = 2732 / 2 - 100;
self.addChild(messageText);
// Create close button
var closeButton = new MenuButton('KAPAT', 300, 100);
closeButton.x = 2048 / 2;
closeButton.y = 2732 / 2 + 400;
closeButton.onPress = function () {
// Remove all message box elements
self.removeChild(overlay);
self.removeChild(messageBox);
self.removeChild(messageText);
self.removeChild(closeButton);
overlay.destroy();
messageBox.destroy();
messageText.destroy();
closeButton.destroy();
};
self.addChild(closeButton);
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xD3D3D3
});
/****
* Game Code
****/
// Background
var background = game.attachAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
// Border elements
var topBorder = game.attachAsset('border', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0
});
var bottomBorder = game.attachAsset('border', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 2682
});
var leftBorder = game.attachAsset('border', {
anchorX: 0,
anchorY: 0,
width: 50,
height: 2732,
x: 0,
y: 0
});
var rightBorder = game.attachAsset('border', {
anchorX: 0,
anchorY: 0,
width: 50,
height: 2732,
x: 1998,
y: 0
});
// Screen management
var currentScreen = null;
var mainMenu = null;
var gameScreen = null;
var thirdPage = null;
var fourthPage = null;
var fifthPage = null;
var sixthPage = null;
var seventhPage = null;
function showMainMenu() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
mainMenu = new MainMenu();
currentScreen = mainMenu;
game.addChild(currentScreen);
}
function showGameScreen() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
gameScreen = new GameScreen();
currentScreen = gameScreen;
game.addChild(currentScreen);
}
function showThirdPage() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
thirdPage = new ThirdPage();
currentScreen = thirdPage;
game.addChild(currentScreen);
}
function showFourthPage() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
fourthPage = new FourthPage();
currentScreen = fourthPage;
game.addChild(currentScreen);
}
function showFifthPage() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
fifthPage = new FifthPage();
currentScreen = fifthPage;
game.addChild(currentScreen);
}
function showSixthPage() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
sixthPage = new SixthPage();
currentScreen = sixthPage;
game.addChild(currentScreen);
}
function showSeventhPage() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
}
seventhPage = new SeventhPage();
currentScreen = seventhPage;
game.addChild(currentScreen);
}
// Start with main menu
showMainMenu();
game.update = function () {
// Game logic updates handled by individual screens
}; ===================================================================
--- original.js
+++ change.js
@@ -1253,8 +1253,123 @@
}
};
return self;
});
+var SeventhPage = Container.expand(function () {
+ var self = Container.call(this);
+ // Header text
+ var headerText = new Text2('YENİ SAYFA', {
+ size: 150,
+ fill: 0x8A2BE2
+ });
+ headerText.anchor.set(0.5, 0);
+ headerText.x = 2048 / 2;
+ headerText.y = 50;
+ self.addChild(headerText);
+ // Money display
+ var moneyDisplay = new Text2('Para: $0', {
+ size: 80,
+ fill: 0x006400
+ });
+ moneyDisplay.anchor.set(0.5, 0);
+ moneyDisplay.x = 2048 / 2;
+ moneyDisplay.y = 200;
+ self.addChild(moneyDisplay);
+ // Update money display
+ self.updateMoneyDisplay = function () {
+ var currentMoney = storage.money || 0;
+ moneyDisplay.setText('Para: $' + currentMoney);
+ };
+ self.updateMoneyDisplay();
+ // Content area
+ var contentText = new Text2('Bu yeni sayfadır.\n\nBuraya istediğiniz içeriği ekleyebilirsiniz.', {
+ size: 80,
+ fill: 0x000000,
+ wordWrap: true,
+ wordWrapWidth: 1600
+ });
+ contentText.anchor.set(0.5, 0.5);
+ contentText.x = 2048 / 2;
+ contentText.y = 1200;
+ self.addChild(contentText);
+ // Question mark button in top right corner
+ var questionButton = new MenuButton('?', 80, 80);
+ questionButton.x = 1900; // Top right corner with margin for border
+ questionButton.y = 120; // Top with margin for border
+ questionButton.onPress = function () {
+ // Flash the button when pressed
+ LK.effects.flashObject(questionButton, 0x00FF00, 300);
+ // Show help message for new page
+ self.showHelpMessage();
+ };
+ self.addChild(questionButton);
+ // Help message functionality
+ self.showHelpMessage = function () {
+ // Create semi-transparent overlay
+ var overlay = self.attachAsset('background', {
+ anchorX: 0,
+ anchorY: 0,
+ x: 0,
+ y: 0
+ });
+ overlay.tint = 0x000000;
+ overlay.alpha = 0.7;
+ // Create message box background
+ var messageBox = self.attachAsset('buttonBg', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ width: 1600,
+ height: 1200,
+ x: 2048 / 2,
+ y: 2732 / 2
+ });
+ messageBox.tint = 0xFFFFFF;
+ // Create message text
+ var messageText = new Text2('YENİ SAYFA YARDIM\n\nBu yeni eklenen sayfadır.\n\nBuraya istediğiniz özellikler eklenebilir.\n\nSayfa arası geçiş için alt kısımdaki\nbutonları kullanabilirsiniz.', {
+ size: 70,
+ fill: 0x000000,
+ wordWrap: true,
+ wordWrapWidth: 1400
+ });
+ messageText.anchor.set(0.5, 0.5);
+ messageText.x = 2048 / 2;
+ messageText.y = 2732 / 2 - 100;
+ self.addChild(messageText);
+ // Create close button
+ var closeButton = new MenuButton('KAPAT', 300, 100);
+ closeButton.x = 2048 / 2;
+ closeButton.y = 2732 / 2 + 400;
+ closeButton.onPress = function () {
+ // Remove all message box elements
+ self.removeChild(overlay);
+ self.removeChild(messageBox);
+ self.removeChild(messageText);
+ self.removeChild(closeButton);
+ overlay.destroy();
+ messageBox.destroy();
+ messageText.destroy();
+ closeButton.destroy();
+ };
+ self.addChild(closeButton);
+ };
+ // Back button to vehicles page
+ var backButton = new MenuButton('TAŞITLAR', 200, 80);
+ backButton.x = 150;
+ backButton.y = 2632;
+ backButton.onPress = function () {
+ showSixthPage();
+ };
+ self.addChild(backButton);
+ // Next page button in bottom right corner
+ var nextButton = new MenuButton('MENÜ', 200, 80);
+ nextButton.x = 1848; // Right side with margin for border
+ nextButton.y = 2632; // Bottom with margin for border
+ nextButton.onPress = function () {
+ showMainMenu();
+ };
+ self.addChild(nextButton);
+ return self;
+});
var SixthPage = Container.expand(function () {
var self = Container.call(this);
// Initialize vehicle data
var vehicleData = [{
@@ -1568,10 +1683,9 @@
var newButton = new MenuButton('YENİ', 200, 80);
newButton.x = 1848; // Right side with margin for border
newButton.y = 2632; // Bottom with margin for border
newButton.onPress = function () {
- // Add functionality here
- LK.effects.flashObject(newButton, 0x00FF00, 300);
+ showSeventhPage();
};
self.addChild(newButton);
});
var ThirdPage = Container.expand(function () {
@@ -2231,8 +2345,9 @@
var thirdPage = null;
var fourthPage = null;
var fifthPage = null;
var sixthPage = null;
+var seventhPage = null;
function showMainMenu() {
if (currentScreen) {
game.removeChild(currentScreen);
currentScreen.destroy();
@@ -2285,8 +2400,17 @@
sixthPage = new SixthPage();
currentScreen = sixthPage;
game.addChild(currentScreen);
}
+function showSeventhPage() {
+ if (currentScreen) {
+ game.removeChild(currentScreen);
+ currentScreen.destroy();
+ }
+ seventhPage = new SeventhPage();
+ currentScreen = seventhPage;
+ game.addChild(currentScreen);
+}
// Start with main menu
showMainMenu();
game.update = function () {
// Game logic updates handled by individual screens