User prompt
Yükseltmelerin hepsi ortak level. Mesela biri bir level ise diğeri de bir level. Biri iki level ise diğeri de iki level.
User prompt
3 yüksek önde level ortak olması lazım
User prompt
Oyunu hiç bozmadan hataları düzelt.
User prompt
hepsi ortak olsun mesela 1x yükselttiğimizde 2 oluyor 5x te de 2 level gözüksün 10x te de 2 level gözüksün gibi ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Oyunda topladığımız görevler onları da kaydet onları da silinmesin. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
görevler kısmında aynı stilde yani benzer şekilde olan görevler var onları tek bir görev haline getir ve level atlattığımızda yani görevi yaptığımızda ikinci
User prompt
görevlerdeki yazıları ve tuşları sola çek.
User prompt
6-6 olan görevleri 2 tane yan yana olacak şekilde öyle 6-6 sıralı ve düğmeler birbirine girmesin. Yani ödülü topla gibi şeyler birbirine girmesin.
User prompt
Tıkladığımızda çıkan animasyon yani artı iki animasyonu tuşun ortasında olması gerekiyor, sol üstte değil. ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Oyunun kaydetmesiyle ilgili hataları düzelt. Oyundan çık gir yapınca oyun kaydetsin. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Level yükseltme ile ilgili hataları düzelt
User prompt
Dili değiştirdiğimizde görevler kısmındaki dil de değişsin.
User prompt
Topladığımız puanın yazdığı yazının üstünde dil seçeneği olsun. Kare bir kutu olsun. Ona tıkladığımızda ya İngilizce ya da Türkçe olsun.
User prompt
Görev yazılarını biraz sağa çek.
User prompt
görev sistemindeki yazıları düzelt
User prompt
Oyuna ilk başladığımızda 17 tıklama gücü ile başlıyoruz bu 1 ile başlaması gerekiyor. ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
oyuna ilk başladığımızda tüm leveller 1 görevler tamamlanmamış herşey sıfır baştan başlamamız gerekiyor ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
hataları düzelt
User prompt
Yükseltme tuşunu biraz daha sağa çek.
User prompt
Yükseltme tuşunu biraz daha sağa çek az
User prompt
Yükseltme tuşunu biraz daha sağa çek
User prompt
Yükseltme yazısını biraz sola çek Çünkü yazının üstünde yükseltme logosu duruyor
User prompt
Yükseltme tuşlarını yazının bittiği yere koy, yani önüne, sağ tarafa.
User prompt
Yükseltme için kullandığımız tuşları artık sadece yükseltmelerin yazısı olarak kullan ve yükseltme tuşu artık o yazıların yanında bir logo olacak kare
User prompt
görevler tuşu biraz daha büyük ve kare hale getir
/**** * Plugins ****/ var storage = LK.import("@upit/storage.v1"); var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var QuestItem = Container.expand(function (questData) { var self = Container.call(this); var titleText = new Text2('', { size: 50, fill: 0xFFFFFF }); titleText.anchor.set(0, 0.5); titleText.x = 50; self.addChild(titleText); var progressText = new Text2('', { size: 40, fill: 0xAAAAAA }); progressText.anchor.set(0, 0.5); progressText.x = 50; progressText.y = 60; self.addChild(progressText); var rewardText = new Text2('', { size: 35, fill: 0xFFFF00 }); rewardText.anchor.set(0, 0.5); rewardText.x = 50; rewardText.y = 100; self.addChild(rewardText); self.collectButton = new Container(); var collectGraphics = self.collectButton.attachAsset('collectButton', { anchorX: 0.5, anchorY: 0.5 }); var collectText = new Text2('TOPLA', { size: 30, fill: 0xFFFFFF }); collectText.anchor.set(0.5, 0.5); self.collectButton.addChild(collectText); self.collectButton.x = 1500; self.collectButton.y = 50; self.addChild(self.collectButton); self.questData = questData; self.updateDisplay = function () { titleText.setText(self.questData.name); var current = getCurrentProgress(self.questData); var target = self.questData.target; if (self.questData.completed && !self.questData.collected) { progressText.setText('COMPLETED!'); progressText.fill = "#00ff00"; self.collectButton.visible = true; } else if (self.questData.collected) { progressText.setText('COLLECTED'); progressText.fill = "#888888"; self.collectButton.visible = false; } else { progressText.setText(formatNumber(current) + ' / ' + formatNumber(target)); progressText.fill = "#aaaaaa"; self.collectButton.visible = false; } rewardText.setText('Reward: +' + formatNumber(self.questData.reward) + ' points'); }; self.collectButton.down = function (x, y, obj) { if (self.questData.completed && !self.questData.collected) { self.questData.collected = true; points += self.questData.reward; LK.getSound('questComplete').play(); updatePointsDisplay(); self.updateDisplay(); saveGame(); } }; return self; }); var UpgradeButton = Container.expand(function (upgradeData) { var self = Container.call(this); var buttonGraphics = self.attachAsset('upgradeButton', { anchorX: 0.5, anchorY: 0.5 }); var titleText = new Text2('', { size: 50, fill: 0xFFFFFF }); titleText.anchor.set(0.5, 0.3); self.addChild(titleText); var costText = new Text2('', { size: 40, fill: 0xFFFF00 }); costText.anchor.set(0.5, 0.7); self.addChild(costText); self.upgradeData = upgradeData; self.updateDisplay = function () { titleText.setText(self.upgradeData.name + ' (Lv.' + self.upgradeData.level + ')'); costText.setText('Cost: ' + formatNumber(self.upgradeData.cost)); if (points >= self.upgradeData.cost) { buttonGraphics.tint = 0x32CD32; // Bright green when affordable } else { buttonGraphics.tint = 0xC0C0C0; // Light gray when not affordable } }; self.down = function (x, y, obj) { if (points >= self.upgradeData.cost) { points -= self.upgradeData.cost; totalSpent += self.upgradeData.cost; // Increase level by the upgrade's click multiplier amount var levelIncrease = self.upgradeData.clickMultiplier; self.upgradeData.level += levelIncrease; // Apply proper level-based multipliers for each upgrade type var newMultiplier = 1.15; // Default for levels 1-5 if (self.upgradeData.level >= 6 && self.upgradeData.level <= 20) { newMultiplier = 1.22; } else if (self.upgradeData.level >= 21) { newMultiplier = 1.30; } // Synchronize all upgrade levels to match the purchased upgrade level var purchasedLevel = self.upgradeData.level; for (var i = 0; i < upgrades.length; i++) { upgrades[i].level = purchasedLevel; var upgradeMultiplier = 1.15; // Default for levels 1-5 if (upgrades[i].level >= 6 && upgrades[i].level <= 20) { upgradeMultiplier = 1.22; } else if (upgrades[i].level >= 21) { upgradeMultiplier = 1.30; } // Apply base cost multiplier based on upgrade type upgrades[i].cost = Math.floor(upgrades[i].cost * upgradeMultiplier); } LK.getSound('purchase').play(); updatePointsDisplay(); self.updateDisplay(); updateAllUpgradeButtons(); saveGame(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x4a0080 }); /**** * Game Code ****/ // Create dark to light purple gradient background game.setBackgroundColor(0x1A0B2E); // Create enhanced texture background effect var backgroundTexture = new Container(); for (var i = 0; i < 100; i++) { for (var j = 0; j < 140; j++) { if (Math.random() < 0.15) { var particle = LK.getAsset('textureParticle', { anchorX: 0.5, anchorY: 0.5, scaleX: Math.random() * 0.8 + 0.2, scaleY: Math.random() * 0.8 + 0.2, x: i * 20.5 + Math.random() * 10, y: j * 19.5 + Math.random() * 10 }); particle.alpha = Math.random() * 0.2 + 0.05; particle.tint = Math.random() > 0.5 ? 0x7B68EE : 0x9370DB; backgroundTexture.addChild(particle); } } } game.addChild(backgroundTexture); // Game variables var points = storage.points || 0; var totalClicks = storage.totalClicks || 0; var totalSpent = storage.totalSpent || 0; var lastClickTime = 0; var clickDelay = 80; // Upgrade system var upgrades = []; if (storage.upgradeNames && storage.upgradeNames.length > 0 && storage.upgradeLevels && storage.upgradeCosts && storage.upgradeMultipliers && storage.upgradeClickMultipliers) { // Reconstruct upgrades from storage for (var i = 0; i < storage.upgradeNames.length; i++) { upgrades.push({ name: storage.upgradeNames[i], level: storage.upgradeLevels[i], cost: storage.upgradeCosts[i], multiplier: storage.upgradeMultipliers[i], clickMultiplier: storage.upgradeClickMultipliers[i] }); } } else { // Default upgrades - three different upgrade types upgrades = [{ name: '1x Yükseltme (Power Click)', level: 1, cost: 50, multiplier: 1.15, clickMultiplier: 1 }, { name: '5x Yükseltme (Super Click)', level: 1, cost: 250, multiplier: 1.22, clickMultiplier: 5 }, { name: '10x Yükseltme (Mega Click)', level: 1, cost: 500, multiplier: 1.30, clickMultiplier: 10 }]; } // Quest system var quests; if (storage.questNames && storage.questNames.length > 0) { // Reconstruct quests from storage quests = []; for (var i = 0; i < storage.questNames.length; i++) { quests.push({ name: storage.questNames[i], type: storage.questTypes[i], target: storage.questTargets[i], reward: storage.questRewards[i], completed: storage.questCompleted[i], collected: storage.questCollected[i] }); } } else { // Default quests - Comprehensive quest system quests = [ // Point accumulation quests { name: 'Toplam 1.000 Puan Biriktir', type: 'points', target: 1000, reward: 200, completed: false, collected: false }, { name: 'Toplam 10.000 Puan Biriktir', type: 'points', target: 10000, reward: 1800, completed: false, collected: false }, { name: 'Toplam 100.000 Puan Biriktir', type: 'points', target: 100000, reward: 15000, completed: false, collected: false }, { name: 'Toplam 1.000.000 Puan Biriktir', type: 'points', target: 1000000, reward: 120000, completed: false, collected: false }, // Spending quests { name: 'Toplam 500 Puan Harca', type: 'spent', target: 500, reward: 60, completed: false, collected: false }, { name: 'Toplam 5.000 Puan Harca', type: 'spent', target: 5000, reward: 650, completed: false, collected: false }, { name: 'Toplam 50.000 Puan Harca', type: 'spent', target: 50000, reward: 6000, completed: false, collected: false }, // Click count quests { name: 'Toplam 100 Kere Tıkla', type: 'clicks', target: 100, reward: 50, completed: false, collected: false }, { name: 'Toplam 1.000 Kere Tıkla', type: 'clicks', target: 1000, reward: 300, completed: false, collected: false }, { name: 'Toplam 10.000 Kere Tıkla', type: 'clicks', target: 10000, reward: 2000, completed: false, collected: false }, // Upgrade level quests { name: 'Tıklama Gücünü Seviye 5\'e Yükselt', type: 'upgrade', target: 5, reward: 300, completed: false, collected: false }, { name: 'Tıklama Gücünü Seviye 10\'a Yükselt', type: 'upgrade', target: 10, reward: 1800, completed: false, collected: false }, { name: 'Tıklama Gücünü Seviye 25\'e Yükselt', type: 'upgrade', target: 25, reward: 12000, completed: false, collected: false }]; } // UI elements var buttonBorder = game.addChild(LK.getAsset('buttonBorder', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1200 })); var mainButton = game.addChild(LK.getAsset('mainButton', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1200 })); var pointsText = new Text2('0 Points', { size: 80, fill: 0xFFFFFF }); pointsText.anchor.set(0.5, 0.5); pointsText.x = 1024; pointsText.y = 800; game.addChild(pointsText); var clickValueText = new Text2('+1 Points', { size: 50, fill: 0xFFFFFF }); clickValueText.anchor.set(0.5, 0.5); clickValueText.x = 1024; clickValueText.y = 1200; game.addChild(clickValueText); // Upgrade buttons var upgradeButtons = []; for (var i = 0; i < upgrades.length; i++) { var upgradeButton = new UpgradeButton(upgrades[i]); upgradeButton.x = 1024; upgradeButton.y = 1600 + i * 160; game.addChild(upgradeButton); upgradeButtons.push(upgradeButton); } // Quest button - positioned safely away from top-left corner var questButton = game.addChild(LK.getAsset('questButton', { anchorX: 0.5, anchorY: 0.5, x: 1750, y: 200 })); var questButtonText = new Text2('GÖREVLER', { size: 32, fill: 0x000000 }); questButtonText.anchor.set(0.5, 0.5); questButtonText.x = 1750; questButtonText.y = 200; game.addChild(questButtonText); // Quest menu var questMenu = null; var questMenuOpen = false; // Helper functions function formatNumber(num) { if (num >= 1000000000) { var formatted = (num / 1000000000).toFixed(1); return formatted.endsWith('.0') ? formatted.slice(0, -2) + 'B' : formatted + 'B'; } else if (num >= 1000000) { var formatted = (num / 1000000).toFixed(1); return formatted.endsWith('.0') ? formatted.slice(0, -2) + 'M' : formatted + 'M'; } else if (num >= 1000) { var formatted = (num / 1000).toFixed(1); return formatted.endsWith('.0') ? formatted.slice(0, -2) + 'K' : formatted + 'K'; } return Math.floor(num).toString(); } function getClickValue() { var value = 1; for (var i = 0; i < upgrades.length; i++) { if (upgrades[i].level > 0) { value += upgrades[i].level * upgrades[i].clickMultiplier; } } return value; } function updatePointsDisplay() { pointsText.setText(formatNumber(points) + ' Points'); clickValueText.setText('+' + formatNumber(getClickValue()) + ' Points'); } function updateAllUpgradeButtons() { for (var i = 0; i < upgradeButtons.length; i++) { upgradeButtons[i].updateDisplay(); } } function getCurrentProgress(quest) { switch (quest.type) { case 'points': return points; case 'clicks': return totalClicks; case 'spent': return totalSpent; case 'upgrade': return upgrades[0].level; // Return first upgrade level default: return 0; } } function checkQuestCompletion() { for (var i = 0; i < quests.length; i++) { var quest = quests[i]; if (!quest.completed) { var current = getCurrentProgress(quest); if (current >= quest.target) { quest.completed = true; } } } } function saveGame() { storage.points = points; storage.totalClicks = totalClicks; storage.totalSpent = totalSpent; // Convert upgrades to storage-compatible format storage.upgradeNames = []; storage.upgradeLevels = []; storage.upgradeCosts = []; storage.upgradeMultipliers = []; storage.upgradeClickMultipliers = []; for (var i = 0; i < upgrades.length; i++) { storage.upgradeNames[i] = upgrades[i].name; storage.upgradeLevels[i] = upgrades[i].level; storage.upgradeCosts[i] = upgrades[i].cost; storage.upgradeMultipliers[i] = upgrades[i].multiplier; storage.upgradeClickMultipliers[i] = upgrades[i].clickMultiplier; } // Convert quests to storage-compatible format storage.questNames = []; storage.questTypes = []; storage.questTargets = []; storage.questRewards = []; storage.questCompleted = []; storage.questCollected = []; for (var i = 0; i < quests.length; i++) { storage.questNames[i] = quests[i].name; storage.questTypes[i] = quests[i].type; storage.questTargets[i] = quests[i].target; storage.questRewards[i] = quests[i].reward; storage.questCompleted[i] = quests[i].completed; storage.questCollected[i] = quests[i].collected; } } function createQuestMenu() { questMenu = new Container(); var menuBackground = questMenu.attachAsset('questMenu', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366 }); menuBackground.alpha = 0.95; var titleText = new Text2('GÖREV LİSTESİ', { size: 70, fill: 0xFFD700 }); titleText.anchor.set(0.5, 0); titleText.x = 1024; titleText.y = 180; questMenu.addChild(titleText); var closeButton = questMenu.addChild(LK.getAsset('closeButton', { anchorX: 0.5, anchorY: 0.5, x: 1750, y: 250 })); var closeText = new Text2('X', { size: 50, fill: 0xFFFFFF }); closeText.anchor.set(0.5, 0.5); closeText.x = 1750; closeText.y = 250; questMenu.addChild(closeText); closeButton.down = function (x, y, obj) { questMenuOpen = false; game.removeChild(questMenu); questMenu = null; }; // Add prominent close button at bottom var bottomCloseButton = questMenu.addChild(LK.getAsset('collectButton', { anchorX: 0.5, anchorY: 0.5, scaleX: 2.0, scaleY: 1.5, x: 1024, y: 2600 })); bottomCloseButton.tint = 0xFF6600; var bottomCloseText = new Text2('KAPAT', { size: 40, fill: 0xFFFFFF }); bottomCloseText.anchor.set(0.5, 0.5); bottomCloseText.x = 1024; bottomCloseText.y = 2600; questMenu.addChild(bottomCloseText); bottomCloseButton.down = function (x, y, obj) { questMenuOpen = false; game.removeChild(questMenu); questMenu = null; }; // Add quest items for (var i = 0; i < quests.length; i++) { var questItem = new QuestItem(quests[i]); questItem.y = 400 + i * 180; questMenu.addChild(questItem); questItem.updateDisplay(); } game.addChild(questMenu); } // Add shadow and glow effects to main button tween(buttonBorder, { tint: 0x4A4A4A }, { duration: 200 }); tween(mainButton, { tint: 0xFF4444 }, { duration: 200 }); // Event handlers mainButton.down = function (x, y, obj) { var currentTime = Date.now(); if (currentTime - lastClickTime >= clickDelay) { lastClickTime = currentTime; var clickValue = getClickValue(); points += clickValue; totalClicks++; // Create animated text showing earned points var earnedText = new Text2('+' + formatNumber(clickValue), { size: 60, fill: 0xFFFF00 }); earnedText.anchor.set(0.5, 0.5); earnedText.x = x; earnedText.y = y; earnedText.alpha = 1.0; game.addChild(earnedText); // Animate the earned points text tween(earnedText, { y: earnedText.y - 100, alpha: 0.0, scaleX: 1.5, scaleY: 1.5 }, { duration: 1000, easing: tween.easeOut, onFinish: function onFinish() { game.removeChild(earnedText); } }); // Enhanced visual feedback with glow effects tween(mainButton, { scaleX: 0.85, scaleY: 0.85, tint: 0xFF6666 }, { duration: 80 }); tween(mainButton, { scaleX: 1.05, scaleY: 1.05, tint: 0xDC143C }, { duration: 120, onFinish: function onFinish() { tween(mainButton, { scaleX: 1.0, scaleY: 1.0 }, { duration: 80 }); } }); tween(buttonBorder, { scaleX: 0.85, scaleY: 0.85, tint: 0x2A2A2A }, { duration: 80 }); tween(buttonBorder, { scaleX: 1.0, scaleY: 1.0, tint: 0x4A4A4A }, { duration: 200 }); LK.getSound('click').play(); updatePointsDisplay(); checkQuestCompletion(); saveGame(); } }; questButton.down = function (x, y, obj) { if (!questMenuOpen) { questMenuOpen = true; createQuestMenu(); } }; // Initialize display updatePointsDisplay(); updateAllUpgradeButtons(); game.update = function () { // Auto-save every 5 seconds if (LK.ticks % 300 === 0) { saveGame(); } };
/****
* Plugins
****/
var storage = LK.import("@upit/storage.v1");
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var QuestItem = Container.expand(function (questData) {
var self = Container.call(this);
var titleText = new Text2('', {
size: 50,
fill: 0xFFFFFF
});
titleText.anchor.set(0, 0.5);
titleText.x = 50;
self.addChild(titleText);
var progressText = new Text2('', {
size: 40,
fill: 0xAAAAAA
});
progressText.anchor.set(0, 0.5);
progressText.x = 50;
progressText.y = 60;
self.addChild(progressText);
var rewardText = new Text2('', {
size: 35,
fill: 0xFFFF00
});
rewardText.anchor.set(0, 0.5);
rewardText.x = 50;
rewardText.y = 100;
self.addChild(rewardText);
self.collectButton = new Container();
var collectGraphics = self.collectButton.attachAsset('collectButton', {
anchorX: 0.5,
anchorY: 0.5
});
var collectText = new Text2('TOPLA', {
size: 30,
fill: 0xFFFFFF
});
collectText.anchor.set(0.5, 0.5);
self.collectButton.addChild(collectText);
self.collectButton.x = 1500;
self.collectButton.y = 50;
self.addChild(self.collectButton);
self.questData = questData;
self.updateDisplay = function () {
titleText.setText(self.questData.name);
var current = getCurrentProgress(self.questData);
var target = self.questData.target;
if (self.questData.completed && !self.questData.collected) {
progressText.setText('COMPLETED!');
progressText.fill = "#00ff00";
self.collectButton.visible = true;
} else if (self.questData.collected) {
progressText.setText('COLLECTED');
progressText.fill = "#888888";
self.collectButton.visible = false;
} else {
progressText.setText(formatNumber(current) + ' / ' + formatNumber(target));
progressText.fill = "#aaaaaa";
self.collectButton.visible = false;
}
rewardText.setText('Reward: +' + formatNumber(self.questData.reward) + ' points');
};
self.collectButton.down = function (x, y, obj) {
if (self.questData.completed && !self.questData.collected) {
self.questData.collected = true;
points += self.questData.reward;
LK.getSound('questComplete').play();
updatePointsDisplay();
self.updateDisplay();
saveGame();
}
};
return self;
});
var UpgradeButton = Container.expand(function (upgradeData) {
var self = Container.call(this);
var buttonGraphics = self.attachAsset('upgradeButton', {
anchorX: 0.5,
anchorY: 0.5
});
var titleText = new Text2('', {
size: 50,
fill: 0xFFFFFF
});
titleText.anchor.set(0.5, 0.3);
self.addChild(titleText);
var costText = new Text2('', {
size: 40,
fill: 0xFFFF00
});
costText.anchor.set(0.5, 0.7);
self.addChild(costText);
self.upgradeData = upgradeData;
self.updateDisplay = function () {
titleText.setText(self.upgradeData.name + ' (Lv.' + self.upgradeData.level + ')');
costText.setText('Cost: ' + formatNumber(self.upgradeData.cost));
if (points >= self.upgradeData.cost) {
buttonGraphics.tint = 0x32CD32; // Bright green when affordable
} else {
buttonGraphics.tint = 0xC0C0C0; // Light gray when not affordable
}
};
self.down = function (x, y, obj) {
if (points >= self.upgradeData.cost) {
points -= self.upgradeData.cost;
totalSpent += self.upgradeData.cost;
// Increase level by the upgrade's click multiplier amount
var levelIncrease = self.upgradeData.clickMultiplier;
self.upgradeData.level += levelIncrease;
// Apply proper level-based multipliers for each upgrade type
var newMultiplier = 1.15; // Default for levels 1-5
if (self.upgradeData.level >= 6 && self.upgradeData.level <= 20) {
newMultiplier = 1.22;
} else if (self.upgradeData.level >= 21) {
newMultiplier = 1.30;
}
// Synchronize all upgrade levels to match the purchased upgrade level
var purchasedLevel = self.upgradeData.level;
for (var i = 0; i < upgrades.length; i++) {
upgrades[i].level = purchasedLevel;
var upgradeMultiplier = 1.15; // Default for levels 1-5
if (upgrades[i].level >= 6 && upgrades[i].level <= 20) {
upgradeMultiplier = 1.22;
} else if (upgrades[i].level >= 21) {
upgradeMultiplier = 1.30;
}
// Apply base cost multiplier based on upgrade type
upgrades[i].cost = Math.floor(upgrades[i].cost * upgradeMultiplier);
}
LK.getSound('purchase').play();
updatePointsDisplay();
self.updateDisplay();
updateAllUpgradeButtons();
saveGame();
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x4a0080
});
/****
* Game Code
****/
// Create dark to light purple gradient background
game.setBackgroundColor(0x1A0B2E);
// Create enhanced texture background effect
var backgroundTexture = new Container();
for (var i = 0; i < 100; i++) {
for (var j = 0; j < 140; j++) {
if (Math.random() < 0.15) {
var particle = LK.getAsset('textureParticle', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: Math.random() * 0.8 + 0.2,
scaleY: Math.random() * 0.8 + 0.2,
x: i * 20.5 + Math.random() * 10,
y: j * 19.5 + Math.random() * 10
});
particle.alpha = Math.random() * 0.2 + 0.05;
particle.tint = Math.random() > 0.5 ? 0x7B68EE : 0x9370DB;
backgroundTexture.addChild(particle);
}
}
}
game.addChild(backgroundTexture);
// Game variables
var points = storage.points || 0;
var totalClicks = storage.totalClicks || 0;
var totalSpent = storage.totalSpent || 0;
var lastClickTime = 0;
var clickDelay = 80;
// Upgrade system
var upgrades = [];
if (storage.upgradeNames && storage.upgradeNames.length > 0 && storage.upgradeLevels && storage.upgradeCosts && storage.upgradeMultipliers && storage.upgradeClickMultipliers) {
// Reconstruct upgrades from storage
for (var i = 0; i < storage.upgradeNames.length; i++) {
upgrades.push({
name: storage.upgradeNames[i],
level: storage.upgradeLevels[i],
cost: storage.upgradeCosts[i],
multiplier: storage.upgradeMultipliers[i],
clickMultiplier: storage.upgradeClickMultipliers[i]
});
}
} else {
// Default upgrades - three different upgrade types
upgrades = [{
name: '1x Yükseltme (Power Click)',
level: 1,
cost: 50,
multiplier: 1.15,
clickMultiplier: 1
}, {
name: '5x Yükseltme (Super Click)',
level: 1,
cost: 250,
multiplier: 1.22,
clickMultiplier: 5
}, {
name: '10x Yükseltme (Mega Click)',
level: 1,
cost: 500,
multiplier: 1.30,
clickMultiplier: 10
}];
}
// Quest system
var quests;
if (storage.questNames && storage.questNames.length > 0) {
// Reconstruct quests from storage
quests = [];
for (var i = 0; i < storage.questNames.length; i++) {
quests.push({
name: storage.questNames[i],
type: storage.questTypes[i],
target: storage.questTargets[i],
reward: storage.questRewards[i],
completed: storage.questCompleted[i],
collected: storage.questCollected[i]
});
}
} else {
// Default quests - Comprehensive quest system
quests = [
// Point accumulation quests
{
name: 'Toplam 1.000 Puan Biriktir',
type: 'points',
target: 1000,
reward: 200,
completed: false,
collected: false
}, {
name: 'Toplam 10.000 Puan Biriktir',
type: 'points',
target: 10000,
reward: 1800,
completed: false,
collected: false
}, {
name: 'Toplam 100.000 Puan Biriktir',
type: 'points',
target: 100000,
reward: 15000,
completed: false,
collected: false
}, {
name: 'Toplam 1.000.000 Puan Biriktir',
type: 'points',
target: 1000000,
reward: 120000,
completed: false,
collected: false
},
// Spending quests
{
name: 'Toplam 500 Puan Harca',
type: 'spent',
target: 500,
reward: 60,
completed: false,
collected: false
}, {
name: 'Toplam 5.000 Puan Harca',
type: 'spent',
target: 5000,
reward: 650,
completed: false,
collected: false
}, {
name: 'Toplam 50.000 Puan Harca',
type: 'spent',
target: 50000,
reward: 6000,
completed: false,
collected: false
},
// Click count quests
{
name: 'Toplam 100 Kere Tıkla',
type: 'clicks',
target: 100,
reward: 50,
completed: false,
collected: false
}, {
name: 'Toplam 1.000 Kere Tıkla',
type: 'clicks',
target: 1000,
reward: 300,
completed: false,
collected: false
}, {
name: 'Toplam 10.000 Kere Tıkla',
type: 'clicks',
target: 10000,
reward: 2000,
completed: false,
collected: false
},
// Upgrade level quests
{
name: 'Tıklama Gücünü Seviye 5\'e Yükselt',
type: 'upgrade',
target: 5,
reward: 300,
completed: false,
collected: false
}, {
name: 'Tıklama Gücünü Seviye 10\'a Yükselt',
type: 'upgrade',
target: 10,
reward: 1800,
completed: false,
collected: false
}, {
name: 'Tıklama Gücünü Seviye 25\'e Yükselt',
type: 'upgrade',
target: 25,
reward: 12000,
completed: false,
collected: false
}];
}
// UI elements
var buttonBorder = game.addChild(LK.getAsset('buttonBorder', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1200
}));
var mainButton = game.addChild(LK.getAsset('mainButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1200
}));
var pointsText = new Text2('0 Points', {
size: 80,
fill: 0xFFFFFF
});
pointsText.anchor.set(0.5, 0.5);
pointsText.x = 1024;
pointsText.y = 800;
game.addChild(pointsText);
var clickValueText = new Text2('+1 Points', {
size: 50,
fill: 0xFFFFFF
});
clickValueText.anchor.set(0.5, 0.5);
clickValueText.x = 1024;
clickValueText.y = 1200;
game.addChild(clickValueText);
// Upgrade buttons
var upgradeButtons = [];
for (var i = 0; i < upgrades.length; i++) {
var upgradeButton = new UpgradeButton(upgrades[i]);
upgradeButton.x = 1024;
upgradeButton.y = 1600 + i * 160;
game.addChild(upgradeButton);
upgradeButtons.push(upgradeButton);
}
// Quest button - positioned safely away from top-left corner
var questButton = game.addChild(LK.getAsset('questButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1750,
y: 200
}));
var questButtonText = new Text2('GÖREVLER', {
size: 32,
fill: 0x000000
});
questButtonText.anchor.set(0.5, 0.5);
questButtonText.x = 1750;
questButtonText.y = 200;
game.addChild(questButtonText);
// Quest menu
var questMenu = null;
var questMenuOpen = false;
// Helper functions
function formatNumber(num) {
if (num >= 1000000000) {
var formatted = (num / 1000000000).toFixed(1);
return formatted.endsWith('.0') ? formatted.slice(0, -2) + 'B' : formatted + 'B';
} else if (num >= 1000000) {
var formatted = (num / 1000000).toFixed(1);
return formatted.endsWith('.0') ? formatted.slice(0, -2) + 'M' : formatted + 'M';
} else if (num >= 1000) {
var formatted = (num / 1000).toFixed(1);
return formatted.endsWith('.0') ? formatted.slice(0, -2) + 'K' : formatted + 'K';
}
return Math.floor(num).toString();
}
function getClickValue() {
var value = 1;
for (var i = 0; i < upgrades.length; i++) {
if (upgrades[i].level > 0) {
value += upgrades[i].level * upgrades[i].clickMultiplier;
}
}
return value;
}
function updatePointsDisplay() {
pointsText.setText(formatNumber(points) + ' Points');
clickValueText.setText('+' + formatNumber(getClickValue()) + ' Points');
}
function updateAllUpgradeButtons() {
for (var i = 0; i < upgradeButtons.length; i++) {
upgradeButtons[i].updateDisplay();
}
}
function getCurrentProgress(quest) {
switch (quest.type) {
case 'points':
return points;
case 'clicks':
return totalClicks;
case 'spent':
return totalSpent;
case 'upgrade':
return upgrades[0].level;
// Return first upgrade level
default:
return 0;
}
}
function checkQuestCompletion() {
for (var i = 0; i < quests.length; i++) {
var quest = quests[i];
if (!quest.completed) {
var current = getCurrentProgress(quest);
if (current >= quest.target) {
quest.completed = true;
}
}
}
}
function saveGame() {
storage.points = points;
storage.totalClicks = totalClicks;
storage.totalSpent = totalSpent;
// Convert upgrades to storage-compatible format
storage.upgradeNames = [];
storage.upgradeLevels = [];
storage.upgradeCosts = [];
storage.upgradeMultipliers = [];
storage.upgradeClickMultipliers = [];
for (var i = 0; i < upgrades.length; i++) {
storage.upgradeNames[i] = upgrades[i].name;
storage.upgradeLevels[i] = upgrades[i].level;
storage.upgradeCosts[i] = upgrades[i].cost;
storage.upgradeMultipliers[i] = upgrades[i].multiplier;
storage.upgradeClickMultipliers[i] = upgrades[i].clickMultiplier;
}
// Convert quests to storage-compatible format
storage.questNames = [];
storage.questTypes = [];
storage.questTargets = [];
storage.questRewards = [];
storage.questCompleted = [];
storage.questCollected = [];
for (var i = 0; i < quests.length; i++) {
storage.questNames[i] = quests[i].name;
storage.questTypes[i] = quests[i].type;
storage.questTargets[i] = quests[i].target;
storage.questRewards[i] = quests[i].reward;
storage.questCompleted[i] = quests[i].completed;
storage.questCollected[i] = quests[i].collected;
}
}
function createQuestMenu() {
questMenu = new Container();
var menuBackground = questMenu.attachAsset('questMenu', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366
});
menuBackground.alpha = 0.95;
var titleText = new Text2('GÖREV LİSTESİ', {
size: 70,
fill: 0xFFD700
});
titleText.anchor.set(0.5, 0);
titleText.x = 1024;
titleText.y = 180;
questMenu.addChild(titleText);
var closeButton = questMenu.addChild(LK.getAsset('closeButton', {
anchorX: 0.5,
anchorY: 0.5,
x: 1750,
y: 250
}));
var closeText = new Text2('X', {
size: 50,
fill: 0xFFFFFF
});
closeText.anchor.set(0.5, 0.5);
closeText.x = 1750;
closeText.y = 250;
questMenu.addChild(closeText);
closeButton.down = function (x, y, obj) {
questMenuOpen = false;
game.removeChild(questMenu);
questMenu = null;
};
// Add prominent close button at bottom
var bottomCloseButton = questMenu.addChild(LK.getAsset('collectButton', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 2.0,
scaleY: 1.5,
x: 1024,
y: 2600
}));
bottomCloseButton.tint = 0xFF6600;
var bottomCloseText = new Text2('KAPAT', {
size: 40,
fill: 0xFFFFFF
});
bottomCloseText.anchor.set(0.5, 0.5);
bottomCloseText.x = 1024;
bottomCloseText.y = 2600;
questMenu.addChild(bottomCloseText);
bottomCloseButton.down = function (x, y, obj) {
questMenuOpen = false;
game.removeChild(questMenu);
questMenu = null;
};
// Add quest items
for (var i = 0; i < quests.length; i++) {
var questItem = new QuestItem(quests[i]);
questItem.y = 400 + i * 180;
questMenu.addChild(questItem);
questItem.updateDisplay();
}
game.addChild(questMenu);
}
// Add shadow and glow effects to main button
tween(buttonBorder, {
tint: 0x4A4A4A
}, {
duration: 200
});
tween(mainButton, {
tint: 0xFF4444
}, {
duration: 200
});
// Event handlers
mainButton.down = function (x, y, obj) {
var currentTime = Date.now();
if (currentTime - lastClickTime >= clickDelay) {
lastClickTime = currentTime;
var clickValue = getClickValue();
points += clickValue;
totalClicks++;
// Create animated text showing earned points
var earnedText = new Text2('+' + formatNumber(clickValue), {
size: 60,
fill: 0xFFFF00
});
earnedText.anchor.set(0.5, 0.5);
earnedText.x = x;
earnedText.y = y;
earnedText.alpha = 1.0;
game.addChild(earnedText);
// Animate the earned points text
tween(earnedText, {
y: earnedText.y - 100,
alpha: 0.0,
scaleX: 1.5,
scaleY: 1.5
}, {
duration: 1000,
easing: tween.easeOut,
onFinish: function onFinish() {
game.removeChild(earnedText);
}
});
// Enhanced visual feedback with glow effects
tween(mainButton, {
scaleX: 0.85,
scaleY: 0.85,
tint: 0xFF6666
}, {
duration: 80
});
tween(mainButton, {
scaleX: 1.05,
scaleY: 1.05,
tint: 0xDC143C
}, {
duration: 120,
onFinish: function onFinish() {
tween(mainButton, {
scaleX: 1.0,
scaleY: 1.0
}, {
duration: 80
});
}
});
tween(buttonBorder, {
scaleX: 0.85,
scaleY: 0.85,
tint: 0x2A2A2A
}, {
duration: 80
});
tween(buttonBorder, {
scaleX: 1.0,
scaleY: 1.0,
tint: 0x4A4A4A
}, {
duration: 200
});
LK.getSound('click').play();
updatePointsDisplay();
checkQuestCompletion();
saveGame();
}
};
questButton.down = function (x, y, obj) {
if (!questMenuOpen) {
questMenuOpen = true;
createQuestMenu();
}
};
// Initialize display
updatePointsDisplay();
updateAllUpgradeButtons();
game.update = function () {
// Auto-save every 5 seconds
if (LK.ticks % 300 === 0) {
saveGame();
}
};