User prompt
remove seed packs from the game
User prompt
LET THE INVENTORY NOT GET FRUIT WHEN WE PLAN SEED PACK
User prompt
and when you click on the seed pack shop, a screen will appear and we can buy the seed pack from there and if we plant the seed pack we will get random seeds
User prompt
ADD SEED PACK SHOP UNDER THE FREE COINS BUTTON
User prompt
add seedpack to assets
User prompt
Kiwi grows in 17 seconds
User prompt
cherry grows in 14 seconds
User prompt
Make it 5x faster
User prompt
If we plant plants in the 3x3 area of the sprinklers, they will grow 3x faster.
User prompt
Pineapple grows in 10 seconds.
User prompt
Necterine grows in 8 seconds
User prompt
Blueberry grows in 5 seconds
User prompt
cactus grow in 10 seconds
User prompt
LET'S NOT PLANT THE ATLAS CACTUS IN THE SOIL
User prompt
Let's plant the atlas cactus in the deser shop only in the sand Let's not plant in the dirt
User prompt
Let's plant atlas cactuses only in sand
User prompt
Let's plant atlas cactuses only in the sand and let them grow in 13 seconds
User prompt
Add a seed named "Atlas cactus" to the desert shop, let its price be 250$, let its selling price be 265$, 0.5% chance of 500$ and add this to assets
User prompt
Put your icons on the fruit icons in seedshop
User prompt
Change the appearance of the blueberry icon in the seed shop to blueberry_icon
User prompt
Make icons of each fruit to assets
User prompt
Make icons of all fruits in the seed shop in assets
User prompt
When you take it from a cactus, it will grow again.
User prompt
nectarine kiwi cherry mango heaven mango grows again after planting and after taking ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Mango cherry kiwi and heaven mango grow again after planting ↪💡 Consider importing and using the following plugins: @upit/tween.v1
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var AquaticPlantSpot = Container.expand(function (x, y) { var self = Container.call(this); self.x = x; self.y = y; self.planted = false; self.plantType = null; self.plantTime = 0; self.grown = false; self.regrowTime = 0; self.isAquatic = true; var sandGraphics = self.attachAsset('sand', { anchorX: 0.5, anchorY: 0.5, tint: 0xF4A460 }); // Move sand graphics to the back layer self.setChildIndex(sandGraphics, 0); var plantGraphics = null; self.plantSeed = function (seedType) { if (self.planted) return false; self.planted = true; // Handle cactus planting if (seedType === 'cactus' || seedType === 'atlas_cactus') { self.plantType = seedType; self.plantTime = LK.ticks; self.grown = false; self.isColorful = false; // 5% chance for colorful cactus (3x price) if (Math.random() < 0.05) { self.isColorful = true; self.plantType = 'colorful_' + seedType; } var finalScale = 1.0; var assetName = seedType === 'atlas_cactus' ? self.isColorful ? 'colorful_atlas_cactus' : 'atlas_cactus_icon' : self.plantType; } else { // Handle fish planting self.plantType = seedType === 'fish2' ? 'fish2' : 'fish'; // Support both fish types self.plantTime = LK.ticks; self.grown = false; self.isColorful = false; // 5% chance for colorful fish (3x price) if (Math.random() < 0.05) { self.isColorful = true; } var finalScale = 1.0; var assetName; if (self.plantType === 'fish2') { assetName = self.isColorful ? 'colorful_Fish2' : 'Fish2'; } else { assetName = self.isColorful ? 'colorful_fish' : 'fish'; } } plantGraphics = self.attachAsset(assetName, { anchorX: 0.5, anchorY: 0.5, alpha: 0.5, scaleX: 0.3, scaleY: 0.3 }); // Add colorful tint for special fish if (self.isColorful) { plantGraphics.tint = 0xFFD700; // Golden fish } // Ensure fish graphics appear above water self.setChildIndex(plantGraphics, self.children.length - 1); // Animate fish growth over 3 seconds (faster than plants) tween(plantGraphics, { scaleX: finalScale, scaleY: finalScale }, { duration: 3000, easing: tween.easeOut }); // Add swimming animation for colorful fish if (self.isColorful) { var swimmingAnimation = function swimmingAnimation() { if (plantGraphics) { tween(plantGraphics, { x: 20 }, { duration: 1000, easing: tween.easeInOut, onFinish: function onFinish() { tween(plantGraphics, { x: -20 }, { duration: 1000, easing: tween.easeInOut, onFinish: function onFinish() { tween(plantGraphics, { x: 0 }, { duration: 1000, easing: tween.easeInOut, onFinish: swimmingAnimation }); } }); } }); } }; // Start swimming animation after growth completes LK.setTimeout(swimmingAnimation, 3000); } LK.getSound('plant').play(); return true; }; self.harvest = function () { if (!self.grown) return null; var harvestedType = self.plantType; // Use the actual planted type (fish, fish2, or cactus) var isColorfulHarvest = self.isColorful; // All plants (including cactus) now regrow if (plantGraphics) { tween(plantGraphics, { alpha: 0.3, scaleX: 0.5, scaleY: 0.5 }, { duration: 500, easing: tween.easeIn }); } self.grown = false; self.regrowTime = LK.ticks; LK.getSound('harvest').play(); return { type: harvestedType, colorful: isColorfulHarvest, chocolate: self.isChocolate || false, fromSeedPack: self.isFromSeedPack || false }; }; self.update = function () { if (self.planted && !self.grown) { // Check if this spot is affected by a sprinkler var speedMultiplier = 1; for (var i = 0; i < sprinklers.length; i++) { var sprinkler = sprinklers[i]; var distanceX = Math.abs(self.x - sprinkler.x); var distanceY = Math.abs(self.y - sprinkler.y); // Regular sprinkler: 5x speed in 3x3 area if (distanceX <= 660 && distanceY <= 660) { speedMultiplier = 5; break; } } // Check if it's time to regrow after harvest if (self.regrowTime > 0) { var regrowTime; var isCactus = self.plantType === 'cactus' || self.plantType === 'colorful_cactus'; var isAtlasCactus = self.plantType === 'atlas_cactus' || self.plantType === 'colorful_atlas_cactus'; if (isCactus) { regrowTime = 1200; // 20 seconds for cactus regrow } else if (isAtlasCactus) { regrowTime = 1560; // 26 seconds for atlas cactus regrow (2x growth time) } else if (self.plantType === 'fish2') { regrowTime = 2700; // 45 seconds for fish2 } else { regrowTime = 3300; // 55 seconds for fish } if (LK.ticks - self.regrowTime > regrowTime / speedMultiplier) { self.grown = true; self.regrowTime = 0; if (plantGraphics) { var regrowScale = 1.0; tween(plantGraphics, { alpha: 1.0, scaleX: regrowScale, scaleY: regrowScale }, { duration: 1000, easing: tween.easeOut }); } } } else if (self.regrowTime === 0) { var isCactus = self.plantType === 'cactus' || self.plantType === 'colorful_cactus'; var isAtlasCactus = self.plantType === 'atlas_cactus' || self.plantType === 'colorful_atlas_cactus'; var growthTime; if (isCactus) { growthTime = 300; // 5 seconds for cactus (same as other plants) } else if (isAtlasCactus) { growthTime = 600; // 10 seconds for atlas cactus } else if (self.plantType === 'fish2') { growthTime = 2700; // 45 seconds for fish2 } else { growthTime = 3300; // 55 seconds for fish } if (LK.ticks - self.plantTime > growthTime / speedMultiplier) { self.grown = true; if (plantGraphics) { plantGraphics.alpha = 1.0; } } } } }; self.down = function () { if (self.grown) { var harvested = self.harvest(); if (harvested) { if (!harvested.fromSeedPack) { var harvestType = harvested.type; if (harvested.chocolate) { var baseType = harvestType === 'fish2' ? 'fish2' : 'fish'; inventory['choco_' + baseType] = (inventory['choco_' + baseType] || 0) + 1; } else if (harvested.colorful) { var baseType = harvestType === 'fish2' ? 'fish2' : 'fish'; inventory['colorful_' + baseType] = (inventory['colorful_' + baseType] || 0) + 1; } else { inventory[harvestType] = (inventory[harvestType] || 0) + 1; } updateInventoryDisplay(); } } } else if (!self.planted && selectedSprinkler) { // Place sprinkler var sprinklerCost = 35; if (money >= sprinklerCost) { var sprinkler = new Sprinkler(self.x, self.y); sprinklers.push(sprinkler); game.addChild(sprinkler); money -= sprinklerCost; updateMoneyDisplay(); selectedSprinkler = false; gearShop.visible = false; } } else if (!self.planted && selectedFish && money >= 100) { // Plant fish in aquatic spots if (self.plantSeed('fish')) { money -= 100; updateMoneyDisplay(); selectedFish = false; fishShop.visible = false; } } else if (!self.planted && selectedFish2 && money >= 150) { // Plant fish2 in aquatic spots if (self.plantSeed('fish2')) { money -= 150; updateMoneyDisplay(); selectedFish2 = false; fishShop.visible = false; } } else if (!self.planted && (selectedSeed === 'cactus' || selectedSeed === 'atlas_cactus') && money >= seedPrices[selectedSeed]) { // Plant cactus in sand spots only if (self.plantSeed(selectedSeed)) { money -= seedPrices[selectedSeed]; updateMoneyDisplay(); selectedSeed = null; seedShop.visible = false; } } else if (!self.planted && selectedSeed && selectedSeed !== 'cactus' && selectedSeed !== 'atlas_cactus' && money >= seedPrices[selectedSeed]) { // Don't plant other fruit seeds in sand - this is for cactus only // No planting action will occur, but we can provide feedback selectedSeed = null; seedShop.visible = false; } }; return self; }); var Button = Container.expand(function (text, onClick) { var self = Container.call(this); var buttonBg = self.attachAsset('button', { anchorX: 0.5, anchorY: 0.5 }); var buttonText = new Text2(text, { size: 30, fill: 0xFFFFFF }); buttonText.anchor.set(0.5, 0.5); self.addChild(buttonText); self.down = function () { if (onClick) onClick(); }; return self; }); var DesertShop = Container.expand(function () { var self = Container.call(this); var background = self.attachAsset('seedShopBg', { anchorX: 0.5, anchorY: 0.5 }); var titleText = new Text2('DESERT SHOP', { size: 80, fill: 0x000000 }); titleText.anchor.set(0.5, 0.5); titleText.y = -600; self.addChild(titleText); // Cactus item var cactusButton = new Container(); cactusButton.x = 0; cactusButton.y = -300; var cactusIcon = cactusButton.attachAsset('cactus', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); cactusIcon.x = -300; var cactusNameText = new Text2('Cactus', { size: 70, fill: 0x000000 }); cactusNameText.anchor.set(0, 0.5); cactusNameText.x = -200; cactusButton.addChild(cactusNameText); var cactusPriceText = new Text2('$100', { size: 70, fill: 0xFFFF00 }); cactusPriceText.anchor.set(1, 0.5); cactusPriceText.x = 300; cactusButton.addChild(cactusPriceText); var cactusDescText = new Text2('Sells for $150, 0.3% chance for $450', { size: 40, fill: 0x666666 }); cactusDescText.anchor.set(0.5, 0); cactusDescText.y = 50; cactusButton.addChild(cactusDescText); cactusButton.down = function () { if (money >= 100) { selectedSeed = 'cactus'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(cactusButton); // Atlas Cactus item var atlasCactusButton = new Container(); atlasCactusButton.x = 0; atlasCactusButton.y = -150; var atlasCactusIcon = atlasCactusButton.attachAsset('atlas_cactus_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); atlasCactusIcon.x = -300; var atlasCactusNameText = new Text2('Atlas Cactus', { size: 70, fill: 0x000000 }); atlasCactusNameText.anchor.set(0, 0.5); atlasCactusNameText.x = -200; atlasCactusButton.addChild(atlasCactusNameText); var atlasCactusPriceText = new Text2('$250', { size: 70, fill: 0xFFFF00 }); atlasCactusPriceText.anchor.set(1, 0.5); atlasCactusPriceText.x = 300; atlasCactusButton.addChild(atlasCactusPriceText); var atlasCactusDescText = new Text2('Sells for $265, 0.5% chance for $500', { size: 40, fill: 0x666666 }); atlasCactusDescText.anchor.set(0.5, 0); atlasCactusDescText.y = 50; atlasCactusButton.addChild(atlasCactusDescText); atlasCactusButton.down = function () { if (money >= 250) { selectedSeed = 'atlas_cactus'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(atlasCactusButton); var closeButton = new Button('CLOSE', function () { self.visible = false; }); closeButton.y = 200; self.addChild(closeButton); return self; }); var GearShop = Container.expand(function () { var self = Container.call(this); var background = self.attachAsset('seedShopBg', { anchorX: 0.5, anchorY: 0.5 }); var titleText = new Text2('GEAR SHOP', { size: 80, fill: 0x000000 }); titleText.anchor.set(0.5, 0.5); titleText.y = -600; self.addChild(titleText); // Sprinkler item var sprinklerButton = new Container(); sprinklerButton.x = 0; sprinklerButton.y = -200; var sprinklerIcon = LK.getAsset('sprinkler', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.5, scaleY: 1.5 }); sprinklerIcon.x = -300; sprinklerButton.addChild(sprinklerIcon); var nameText = new Text2('Sprinkler', { size: 70, fill: 0x000000 }); nameText.anchor.set(0, 0.5); nameText.x = -200; sprinklerButton.addChild(nameText); var priceText = new Text2('$35', { size: 70, fill: 0xFFFF00 }); priceText.anchor.set(1, 0.5); priceText.x = 300; sprinklerButton.addChild(priceText); var descText = new Text2('5x growth speed in 3x3 area', { size: 40, fill: 0x666666 }); descText.anchor.set(0.5, 0); descText.y = 50; sprinklerButton.addChild(descText); sprinklerButton.down = function () { if (money >= 35) { selectedSprinkler = 'regular'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(sprinklerButton); var closeButton = new Button('CLOSE', function () { self.visible = false; }); closeButton.y = 200; self.addChild(closeButton); return self; }); var PlantSpot = Container.expand(function (x, y) { var self = Container.call(this); self.x = x; self.y = y; self.planted = false; self.plantType = null; self.plantTime = 0; self.grown = false; self.regrowTime = 0; var dirtGraphics = self.attachAsset('dirt', { anchorX: 0.5, anchorY: 0.5 }); // Move dirt graphics to the back layer self.setChildIndex(dirtGraphics, 0); var plantGraphics = null; self.plantSeed = function (seedType) { if (self.planted) return false; self.planted = true; self.plantType = seedType; self.plantTime = LK.ticks; self.grown = false; self.isColorful = false; // 5% chance for colorful fruit (3x price) if (Math.random() < 0.05) { self.isColorful = true; self.plantType = 'colorful_' + seedType; } var finalScale = 1.0; plantGraphics = self.attachAsset(self.plantType, { anchorX: 0.5, anchorY: 0.5, alpha: 0.5, scaleX: 0.3, scaleY: 0.3 }); // Ensure plant graphics appear above soil, especially for giant fruits self.setChildIndex(plantGraphics, self.children.length - 1); // Animate plant growth over 5 seconds tween(plantGraphics, { scaleX: finalScale, scaleY: finalScale }, { duration: 5000, easing: tween.easeOut }); // Add rainbow tint animation for colorful fruits if (self.isColorful) { var colorfulAnimation = function colorfulAnimation() { var colors = [0xff0000, 0x00ff00, 0x0000ff, 0xffff00, 0xff00ff, 0x00ffff]; var currentColor = 0; var _animateColor = function animateColor() { if (plantGraphics) { tween(plantGraphics, { tint: colors[currentColor] }, { duration: 800, easing: tween.easeInOut, onFinish: function onFinish() { currentColor = (currentColor + 1) % colors.length; _animateColor(); } }); } }; _animateColor(); }; // Start colorful animation after growth completes LK.setTimeout(colorfulAnimation, 5000); } LK.getSound('plant').play(); return true; }; self.harvest = function () { if (!self.grown) return null; var harvestedType = self.plantType; var isColorfulHarvest = self.isColorful; // Check if this is a regrowing fruit (banana, dragon fruit, coconut, apple, nectarine, kiwi, cherry, mango, heavenMango) var isBanana = harvestedType === 'banana' || harvestedType === 'colorful_banana'; var isDragonFruit = harvestedType === 'dragonfruit' || harvestedType === 'colorful_dragonfruit'; var isCoconut = harvestedType === 'coconut' || harvestedType === 'colorful_coconut'; var isApple = harvestedType === 'apple' || harvestedType === 'colorful_apple'; var isNectarine = harvestedType === 'nectarine' || harvestedType === 'colorful_nectarine'; var isKiwi = harvestedType === 'kiwi' || harvestedType === 'colorful_kiwi'; var isCherry = harvestedType === 'cherry' || harvestedType === 'colorful_cherry'; var isMango = harvestedType === 'mango' || harvestedType === 'colorful_mango'; var isHeavenMango = harvestedType === 'heavenMango' || harvestedType === 'colorful_heavenMango'; if (isBanana || isDragonFruit || isCoconut || isApple || isNectarine || isKiwi || isCherry || isMango || isHeavenMango) { // Hide the plant graphics with animation for regrowing fruits if (plantGraphics) { tween(plantGraphics, { alpha: 0.3, scaleX: 0.5, scaleY: 0.5 }, { duration: 500, easing: tween.easeIn }); } self.grown = false; self.regrowTime = LK.ticks; } else { // For carrots and strawberries, reset the plant completely if (plantGraphics) { plantGraphics.destroy(); plantGraphics = null; } self.planted = false; self.plantType = null; self.plantTime = 0; self.grown = false; self.isColorful = false; self.regrowTime = 0; } LK.getSound('harvest').play(); return { type: harvestedType, colorful: isColorfulHarvest, chocolate: self.isChocolate || false, fromSeedPack: self.isFromSeedPack || false }; }; self.update = function () { if (self.planted && !self.grown) { // Check if this spot is affected by a sprinkler var speedMultiplier = 1; for (var i = 0; i < sprinklers.length; i++) { var sprinkler = sprinklers[i]; var distanceX = Math.abs(self.x - sprinkler.x); var distanceY = Math.abs(self.y - sprinkler.y); // Regular sprinkler: 5x speed in 3x3 area (660px = 3 * 220px spacing) if (distanceX <= 660 && distanceY <= 660) { speedMultiplier = 5; break; } } // Check if it's time to regrow after harvest (for bananas, dragon fruit, coconut, apple, and the new fruits) if (self.regrowTime > 0) { var isBanana = self.plantType === 'banana' || self.plantType === 'colorful_banana'; var isDragonFruit = self.plantType === 'dragonfruit' || self.plantType === 'colorful_dragonfruit'; var isCoconut = self.plantType === 'coconut' || self.plantType === 'colorful_coconut'; var isApple = self.plantType === 'apple' || self.plantType === 'colorful_apple'; var isNectarine = self.plantType === 'nectarine' || self.plantType === 'colorful_nectarine'; var isKiwi = self.plantType === 'kiwi' || self.plantType === 'colorful_kiwi'; var isCherry = self.plantType === 'cherry' || self.plantType === 'colorful_cherry'; var isMango = self.plantType === 'mango' || self.plantType === 'colorful_mango'; var isHeavenMango = self.plantType === 'heavenMango' || self.plantType === 'colorful_heavenMango'; var regrowReady = false; if (isBanana && LK.ticks - self.regrowTime > 1140 / speedMultiplier) { // 19 seconds at 60fps for banana regrow (halved with sprinkler) regrowReady = true; } else if ((isDragonFruit || isCoconut) && LK.ticks - self.regrowTime > 1320 / speedMultiplier) { // 22 seconds at 60fps for dragon fruit and coconut regrow (halved with sprinkler) regrowReady = true; } else if (isApple && LK.ticks - self.regrowTime > 1200 / speedMultiplier) { // 20 seconds at 60fps for apple regrow (halved with sprinkler) regrowReady = true; } else if (isNectarine && LK.ticks - self.regrowTime > 1500 / speedMultiplier) { // 25 seconds at 60fps for nectarine regrow (halved with sprinkler) regrowReady = true; } else if (isKiwi && LK.ticks - self.regrowTime > 2040 / speedMultiplier) { // 34 seconds at 60fps for kiwi regrow (halved with sprinkler) regrowReady = true; } else if (isCherry && LK.ticks - self.regrowTime > 1800 / speedMultiplier) { // 30 seconds at 60fps for cherry regrow (halved with sprinkler) regrowReady = true; } else if (isMango && LK.ticks - self.regrowTime > 2100 / speedMultiplier) { // 35 seconds at 60fps for mango regrow (halved with sprinkler) regrowReady = true; } else if (isHeavenMango && LK.ticks - self.regrowTime > 2400 / speedMultiplier) { // 40 seconds at 60fps for heaven mango regrow (halved with sprinkler) regrowReady = true; } if (regrowReady) { self.grown = true; self.regrowTime = 0; if (plantGraphics) { var regrowScale = 1.0; tween(plantGraphics, { alpha: 1.0, scaleX: regrowScale, scaleY: regrowScale }, { duration: 1000, easing: tween.easeOut }); } } } else if (self.regrowTime === 0) { // Different growth times for different plants var isNectarine = self.plantType === 'nectarine' || self.plantType === 'colorful_nectarine'; var isPineapple = self.plantType === 'pineapple' || self.plantType === 'colorful_pineapple'; var isCherry = self.plantType === 'cherry' || self.plantType === 'colorful_cherry'; var isKiwi = self.plantType === 'kiwi' || self.plantType === 'colorful_kiwi'; var growthTime; if (isNectarine) { growthTime = 480; // 8 seconds for nectarine } else if (isPineapple) { growthTime = 600; // 10 seconds for pineapple } else if (isCherry) { growthTime = 840; // 14 seconds for cherry } else if (isKiwi) { growthTime = 1020; // 17 seconds for kiwi } else { growthTime = 300; // 5 seconds for other plants } if (LK.ticks - self.plantTime > growthTime / speedMultiplier) { self.grown = true; if (plantGraphics) { plantGraphics.alpha = 1.0; } } } } }; self.down = function () { if (self.grown) { var harvested = self.harvest(); if (harvested) { if (!harvested.fromSeedPack) { var harvestType = harvested.type; if (harvested.chocolate) { // Store chocolate fruits separately for 4x price var baseType = harvestType.replace('colorful_', ''); // Special case for carrots - use Chococarrot asset name if (baseType === 'carrot') { inventory['Chococarrot'] = (inventory['Chococarrot'] || 0) + 1; } else { inventory['choco_' + baseType] = (inventory['choco_' + baseType] || 0) + 1; } } else if (harvested.colorful) { // Store colorful fruits separately for 3x price var baseType = harvestType.replace('colorful_', ''); inventory['colorful_' + baseType] = (inventory['colorful_' + baseType] || 0) + 1; } else { inventory[harvestType] = (inventory[harvestType] || 0) + 1; } updateInventoryDisplay(); } } } else if (!self.planted && selectedSprinkler) { // Place sprinkler var sprinklerCost = 35; if (money >= sprinklerCost) { var sprinkler = new Sprinkler(self.x, self.y); sprinklers.push(sprinkler); game.addChild(sprinkler); money -= sprinklerCost; updateMoneyDisplay(); selectedSprinkler = false; gearShop.visible = false; } } else if (!self.planted && selectedSeed && selectedSeed !== 'cactus' && selectedSeed !== 'atlas_cactus' && money >= seedPrices[selectedSeed]) { // Plant non-cactus seeds in dirt spots only if (self.plantSeed(selectedSeed)) { money -= seedPrices[selectedSeed]; updateMoneyDisplay(); selectedSeed = null; seedShop.visible = false; } } else if (!self.planted && (selectedSeed === 'cactus' || selectedSeed === 'atlas_cactus')) { // Block cactus and atlas cactus planting in dirt spots - these can only be planted in sand selectedSeed = null; seedShop.visible = false; } }; return self; }); var SeedShop = Container.expand(function () { var self = Container.call(this); var background = self.attachAsset('seedShopBg', { anchorX: 0.5, anchorY: 0.5 }); var titleText = new Text2('SEED SHOP', { size: 80, fill: 0x000000 }); titleText.anchor.set(0.5, 0.5); titleText.y = -600; self.addChild(titleText); // Blueberry item var blueberryButton = new Container(); blueberryButton.x = 0; blueberryButton.y = -400; var blueberryIcon = blueberryButton.attachAsset('blueberry_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); blueberryIcon.x = -350; var blueberryNameText = new Text2('Blueberry', { size: 50, fill: 0x000000 }); blueberryNameText.anchor.set(0, 0.5); blueberryNameText.x = -250; blueberryButton.addChild(blueberryNameText); var blueberryPriceText = new Text2('$10', { size: 50, fill: 0xFFFF00 }); blueberryPriceText.anchor.set(1, 0.5); blueberryPriceText.x = 300; blueberryButton.addChild(blueberryPriceText); var blueberryDescText = new Text2('Sells: $15 (25% chance for $10)', { size: 30, fill: 0x666666 }); blueberryDescText.anchor.set(0.5, 0); blueberryDescText.y = 30; blueberryButton.addChild(blueberryDescText); blueberryButton.down = function () { if (money >= 10) { selectedSeed = 'blueberry'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(blueberryButton); // Nectarine item var nectarineButton = new Container(); nectarineButton.x = 0; nectarineButton.y = -280; var nectarineIcon = nectarineButton.attachAsset('nectarine_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); nectarineIcon.x = -350; var nectarineNameText = new Text2('Nectarine', { size: 50, fill: 0x000000 }); nectarineNameText.anchor.set(0, 0.5); nectarineNameText.x = -250; nectarineButton.addChild(nectarineNameText); var nectarinePriceText = new Text2('$55', { size: 50, fill: 0xFFFF00 }); nectarinePriceText.anchor.set(1, 0.5); nectarinePriceText.x = 300; nectarineButton.addChild(nectarinePriceText); var nectarineDescText = new Text2('Sells: $60 (25% chance for $30)', { size: 30, fill: 0x666666 }); nectarineDescText.anchor.set(0.5, 0); nectarineDescText.y = 30; nectarineButton.addChild(nectarineDescText); nectarineButton.down = function () { if (money >= 55) { selectedSeed = 'nectarine'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(nectarineButton); // Pineapple item var pineappleButton = new Container(); pineappleButton.x = 0; pineappleButton.y = -160; var pineappleIcon = pineappleButton.attachAsset('pineapple_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); pineappleIcon.x = -350; var pineappleNameText = new Text2('Pineapple', { size: 50, fill: 0x000000 }); pineappleNameText.anchor.set(0, 0.5); pineappleNameText.x = -250; pineappleButton.addChild(pineappleNameText); var pineapplePriceText = new Text2('$110', { size: 50, fill: 0xFFFF00 }); pineapplePriceText.anchor.set(1, 0.5); pineapplePriceText.x = 300; pineappleButton.addChild(pineapplePriceText); var pineappleDescText = new Text2('Sells: $115 (25% chance for $65)', { size: 30, fill: 0x666666 }); pineappleDescText.anchor.set(0.5, 0); pineappleDescText.y = 30; pineappleButton.addChild(pineappleDescText); pineappleButton.down = function () { if (money >= 110) { selectedSeed = 'pineapple'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(pineappleButton); // Cherry item var cherryButton = new Container(); cherryButton.x = 0; cherryButton.y = -40; var cherryIcon = cherryButton.attachAsset('cherry_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); cherryIcon.x = -350; var cherryNameText = new Text2('Cherry', { size: 50, fill: 0x000000 }); cherryNameText.anchor.set(0, 0.5); cherryNameText.x = -250; cherryButton.addChild(cherryNameText); var cherryPriceText = new Text2('$165', { size: 50, fill: 0xFFFF00 }); cherryPriceText.anchor.set(1, 0.5); cherryPriceText.x = 300; cherryButton.addChild(cherryPriceText); var cherryDescText = new Text2('Sells: $170 (25% chance for $115)', { size: 30, fill: 0x666666 }); cherryDescText.anchor.set(0.5, 0); cherryDescText.y = 30; cherryButton.addChild(cherryDescText); cherryButton.down = function () { if (money >= 165) { selectedSeed = 'cherry'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(cherryButton); // Kiwi item var kiwiButton = new Container(); kiwiButton.x = 0; kiwiButton.y = 80; var kiwiIcon = kiwiButton.attachAsset('kiwi_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); kiwiIcon.x = -350; var kiwiNameText = new Text2('Kiwi', { size: 50, fill: 0x000000 }); kiwiNameText.anchor.set(0, 0.5); kiwiNameText.x = -250; kiwiButton.addChild(kiwiNameText); var kiwiPriceText = new Text2('$225', { size: 50, fill: 0xFFFF00 }); kiwiPriceText.anchor.set(1, 0.5); kiwiPriceText.x = 300; kiwiButton.addChild(kiwiPriceText); var kiwiDescText = new Text2('Sells: $230 (25% chance for $165)', { size: 30, fill: 0x666666 }); kiwiDescText.anchor.set(0.5, 0); kiwiDescText.y = 30; kiwiButton.addChild(kiwiDescText); kiwiButton.down = function () { if (money >= 225) { selectedSeed = 'kiwi'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(kiwiButton); // Mango item var mangoButton = new Container(); mangoButton.x = 0; mangoButton.y = 200; var mangoIcon = mangoButton.attachAsset('mango_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); mangoIcon.x = -350; var mangoNameText = new Text2('Mango', { size: 50, fill: 0x000000 }); mangoNameText.anchor.set(0, 0.5); mangoNameText.x = -250; mangoButton.addChild(mangoNameText); var mangoPriceText = new Text2('$335', { size: 50, fill: 0xFFFF00 }); mangoPriceText.anchor.set(1, 0.5); mangoPriceText.x = 300; mangoButton.addChild(mangoPriceText); var mangoDescText = new Text2('Sells: $350 (25% chance for $330)', { size: 30, fill: 0x666666 }); mangoDescText.anchor.set(0.5, 0); mangoDescText.y = 30; mangoButton.addChild(mangoDescText); mangoButton.down = function () { if (money >= 335) { selectedSeed = 'mango'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(mangoButton); // Heaven Mango item var heavenMangoButton = new Container(); heavenMangoButton.x = 0; heavenMangoButton.y = 320; var heavenMangoIcon = heavenMangoButton.attachAsset('heavenMango_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); heavenMangoIcon.x = -350; var heavenMangoNameText = new Text2('Heaven Mango', { size: 50, fill: 0x000000 }); heavenMangoNameText.anchor.set(0, 0.5); heavenMangoNameText.x = -250; heavenMangoButton.addChild(heavenMangoNameText); var heavenMangoPriceText = new Text2('$650', { size: 50, fill: 0xFFFF00 }); heavenMangoPriceText.anchor.set(1, 0.5); heavenMangoPriceText.x = 300; heavenMangoButton.addChild(heavenMangoPriceText); var heavenMangoDescText = new Text2('Sells: $700 (10% chance for $670)', { size: 30, fill: 0x666666 }); heavenMangoDescText.anchor.set(0.5, 0); heavenMangoDescText.y = 30; heavenMangoButton.addChild(heavenMangoDescText); heavenMangoButton.down = function () { if (money >= 650) { selectedSeed = 'heavenMango'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(heavenMangoButton); // Mystery item var mysteryButton = new Container(); mysteryButton.x = 0; mysteryButton.y = 440; var mysteryIcon = mysteryButton.attachAsset('mystery_icon', { anchorX: 0.5, anchorY: 0.5, scaleX: 1.2, scaleY: 1.2 }); mysteryIcon.x = -350; var mysteryNameText = new Text2('??? Mystery', { size: 50, fill: 0x000000 }); mysteryNameText.anchor.set(0, 0.5); mysteryNameText.x = -250; mysteryButton.addChild(mysteryNameText); var mysteryPriceText = new Text2('$1000', { size: 50, fill: 0xFFFF00 }); mysteryPriceText.anchor.set(1, 0.5); mysteryPriceText.x = 300; mysteryButton.addChild(mysteryPriceText); var mysteryDescText = new Text2('Sells: $1050 (10% chance for $700)', { size: 30, fill: 0x666666 }); mysteryDescText.anchor.set(0.5, 0); mysteryDescText.y = 30; mysteryButton.addChild(mysteryDescText); mysteryButton.down = function () { if (money >= 1000) { selectedSeed = 'mystery'; self.visible = false; LK.getSound('Buy').play(); } }; self.addChild(mysteryButton); var closeButton = new Button('CLOSE', function () { self.visible = false; }); closeButton.y = 600; closeButton.scaleX = 1.5; closeButton.scaleY = 1.5; self.addChild(closeButton); return self; }); var Sprinkler = Container.expand(function (x, y) { var self = Container.call(this); self.x = x; self.y = y; self.type = 'regular'; var sprinklerGraphics = self.attachAsset('sprinkler', { anchorX: 0.5, anchorY: 0.5 }); // Add pulsing animation to show it's active function animateSprinkler() { tween(sprinklerGraphics, { scaleX: 1.2, scaleY: 1.2, alpha: 0.7 }, { duration: 1000, easing: tween.easeInOut, onFinish: function onFinish() { tween(sprinklerGraphics, { scaleX: 1.0, scaleY: 1.0, alpha: 1.0 }, { duration: 1000, easing: tween.easeInOut, onFinish: animateSprinkler }); } }); } animateSprinkler(); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x228B22 }); /**** * Game Code ****/ // Add grass background var grassBackground = game.attachAsset('grass_bg', { anchorX: 0, anchorY: 0, x: 0, y: 0 }); var money = 0; var inventory = {}; var selectedSeed = null; var selectedSprinkler = false; var selectedFish = false; var selectedFish2 = false; var sprinklers = []; var seedPrices = { cactus: 100, atlas_cactus: 250, blueberry: 10, nectarine: 55, pineapple: 110, cherry: 165, kiwi: 225, mango: 335, heavenMango: 650, mystery: 1000 }; var sellPrices = { fish: 110, fish2: 75, choco_fish: 440, choco_fish2: 720, cactus: 150, atlas_cactus: 265, colorful_cactus: 450, colorful_atlas_cactus: 795, choco_cactus: 600, choco_atlas_cactus: 1060, blueberry: 15, nectarine: 60, pineapple: 115, cherry: 170, kiwi: 230, mango: 350, heavenMango: 700, mystery: 1050, colorful_blueberry: 45, colorful_nectarine: 180, colorful_pineapple: 345, colorful_cherry: 510, colorful_kiwi: 690, colorful_mango: 1050, colorful_heavenMango: 2100, colorful_mystery: 3150 }; // Create plant spots in a grid - start with 64 lands arranged in a grid (32 top + 32 bottom) var plantSpots = []; var spacing = 220; var landsPerRow = 8; var totalRows = 8; // 4 rows for top + 4 rows for bottom var totalWidth = (landsPerRow - 1) * spacing; var startX = (2048 - totalWidth) / 2; // Center horizontally on screen var startY = 600; // Move starting Y up to accommodate bottom section // Create 32 initial plant spots in 8 columns, 4 rows (top section) for (var i = 0; i < 32; i++) { var col = i % 8; var row = Math.floor(i / 8); var spot = new PlantSpot(startX + col * spacing, startY + row * spacing); plantSpots.push(spot); game.addChild(spot); } // Create another 32 plant spots at the bottom (8 columns, 4 rows) var bottomStartY = startY + 4 * spacing + 100; // Add gap between top and bottom sections for (var i = 0; i < 32; i++) { var col = i % 8; var row = Math.floor(i / 8); var spot; // Make the bottom 16 spots (last 2 rows) aquatic if (i >= 16) { spot = new AquaticPlantSpot(startX + col * spacing, bottomStartY + row * spacing); } else { spot = new PlantSpot(startX + col * spacing, bottomStartY + row * spacing); } plantSpots.push(spot); game.addChild(spot); } // UI Elements var moneyText = new Text2('Money: $0', { size: 50, fill: 0x000000 }); moneyText.anchor.set(0, 0); moneyText.x = 150; moneyText.y = 50; LK.gui.topLeft.addChild(moneyText); var inventoryText = new Text2('Inventory: Empty', { size: 50, fill: 0x000000 }); inventoryText.anchor.set(0, 1); inventoryText.x = 100; inventoryText.y = -200; LK.gui.bottomLeft.addChild(inventoryText); // Make inventory alive with pulsing animation function animateInventory() { tween(inventoryText, { scaleX: 1.1, scaleY: 1.1 }, { duration: 1000, easing: tween.easeInOut, onFinish: function onFinish() { tween(inventoryText, { scaleX: 1.0, scaleY: 1.0 }, { duration: 1000, easing: tween.easeInOut, onFinish: animateInventory }); } }); } animateInventory(); var sellButton = new Button('SELL ALL', function () { var totalSale = 0; // Check if we get the 10% price boost (30% chance) var priceBoost = Math.random() < 0.3 ? 1.1 : 1.0; for (var itemType in inventory) { if (inventory[itemType] > 0) { var basePrice; basePrice = sellPrices[itemType]; // 35% chance for fish2 to sell for 85 instead of 75 if (itemType === 'fish2' && Math.random() < 0.35) { basePrice = 85; } // 0.3% chance for cactus to sell for 450 instead of 150 if (itemType === 'cactus' && Math.random() < 0.003) { basePrice = 450; } // 0.5% chance for atlas_cactus to sell for 500 instead of 265 if (itemType === 'atlas_cactus' && Math.random() < 0.005) { basePrice = 500; } // 25% chance for fruits to sell at reduced price if (itemType === 'blueberry' && Math.random() < 0.25) { basePrice = 10; } if (itemType === 'nectarine' && Math.random() < 0.25) { basePrice = 30; } if (itemType === 'pineapple' && Math.random() < 0.25) { basePrice = 65; } if (itemType === 'cherry' && Math.random() < 0.25) { basePrice = 115; } if (itemType === 'kiwi' && Math.random() < 0.25) { basePrice = 165; } if (itemType === 'mango' && Math.random() < 0.25) { basePrice = 330; } // 10% chance for special fruits to sell at reduced price if (itemType === 'heavenMango' && Math.random() < 0.1) { basePrice = 670; } if (itemType === 'mystery' && Math.random() < 0.1) { basePrice = 700; } basePrice *= priceBoost; totalSale += inventory[itemType] * basePrice; inventory[itemType] = 0; } } if (totalSale > 0) { money += totalSale; updateMoneyDisplay(); updateInventoryDisplay(); LK.getSound('sell').play(); } }); sellButton.x = 600; sellButton.y = 100; sellButton.scaleX = 1.3; sellButton.scaleY = 1.3; LK.gui.topLeft.addChild(sellButton); var seedButton = new Button('SEEDS', function () { seedShop.visible = true; }); seedButton.x = 900; seedButton.y = 100; seedButton.scaleX = 1.3; seedButton.scaleY = 1.3; LK.gui.topLeft.addChild(seedButton); var freeCoinsButton = new Button('FREE COINS', function () { money += 500; updateMoneyDisplay(); }); freeCoinsButton.x = 1200; freeCoinsButton.y = 100; freeCoinsButton.scaleX = 1.3; freeCoinsButton.scaleY = 1.3; LK.gui.topLeft.addChild(freeCoinsButton); var gearButton = new Button('GEAR SHOP', function () { gearShop.visible = true; }); gearButton.x = 600; gearButton.y = 250; gearButton.scaleX = 1.3; gearButton.scaleY = 1.3; LK.gui.topLeft.addChild(gearButton); var fishButton = new Button('DESERT SHOP', function () { fishShop.visible = true; }); fishButton.x = 900; fishButton.y = 250; fishButton.scaleX = 1.3; fishButton.scaleY = 1.3; LK.gui.topLeft.addChild(fishButton); var seedShop = new SeedShop(); seedShop.x = 1024; seedShop.y = 1366; seedShop.visible = false; game.addChild(seedShop); var gearShop = new GearShop(); gearShop.x = 1024; gearShop.y = 1366; gearShop.visible = false; game.addChild(gearShop); var fishShop = new DesertShop(); fishShop.x = 1024; fishShop.y = 1366; fishShop.visible = false; game.addChild(fishShop); // Button sliding variables var topButtons = [sellButton, seedButton, freeCoinsButton, gearButton, fishButton]; var buttonBasePositions = [600, 900, 1200, 600, 900]; var slideOffset = 0; var maxSlideOffset = 400; // Maximum pixels to slide // Sliding functions function slideButtonsLeft() { slideOffset = Math.min(slideOffset + 100, maxSlideOffset); updateButtonPositions(); } function slideButtonsRight() { slideOffset = Math.max(slideOffset - 100, -maxSlideOffset); updateButtonPositions(); } function updateButtonPositions() { for (var i = 0; i < topButtons.length; i++) { tween(topButtons[i], { x: buttonBasePositions[i] + slideOffset }, { duration: 300, easing: tween.easeOut }); } } function updateMoneyDisplay() { moneyText.setText('Money: $' + money); } function updateInventoryDisplay() { var inventoryStr = 'Inventory: '; var hasItems = false; for (var itemType in inventory) { if (inventory[itemType] > 0) { if (hasItems) inventoryStr += ', '; inventoryStr += itemType + ' x' + inventory[itemType]; hasItems = true; } } if (!hasItems) { inventoryStr += 'Empty'; } inventoryText.setText(inventoryStr); } function expandLands(targetCount) { var currentCount = plantSpots.length; if (targetCount === 12 && currentCount === 6) { // Expand from 6 to 12 lands - add 6 more in 3 columns, 4 rows total for (var i = currentCount; i < targetCount; i++) { var col = i % 3; var row = Math.floor(i / 3); var newSpot = new PlantSpot(startX + col * spacing, startY + row * spacing); plantSpots.push(newSpot); game.addChild(newSpot); } } else if (targetCount === 18 && currentCount === 12) { // Expand from 12 to 18 lands - rearrange to left column and add right column var leftStartY = 800; // First, move existing 12 lands to left side (3 columns, up to 4 rows) for (var i = 0; i < currentCount; i++) { var spot = plantSpots[i]; var newX = startX + i % 3 * spacing; var newY = leftStartY + Math.floor(i / 3) * spacing; tween(spot, { x: newX, y: newY }, { duration: 1000, easing: tween.easeInOut }); } // Add 6 new lands to the right side var rightStartX = startX + 4 * spacing; for (var i = currentCount; i < targetCount; i++) { var rightIndex = i - currentCount; var col = rightIndex % 3; var row = Math.floor(rightIndex / 3); var newSpot = new PlantSpot(rightStartX + col * spacing, leftStartY + row * spacing); plantSpots.push(newSpot); game.addChild(newSpot); } } } function expandLandsForDragonFruit() { var currentCount = plantSpots.length; // Calculate center positioning for all lands var totalLands = currentCount + 12; // Current lands + 12 new lands var landsPerRow = 6; // 6 lands per row for better centering var totalRows = Math.ceil(totalLands / landsPerRow); var totalWidth = (landsPerRow - 1) * spacing; var totalHeight = (totalRows - 1) * spacing; var centerStartX = (2048 - totalWidth) / 2; // Center horizontally on screen var centerStartY = 800; // Move all existing lands to center positions for (var i = 0; i < currentCount; i++) { var spot = plantSpots[i]; var col = i % landsPerRow; var row = Math.floor(i / landsPerRow); var newX = centerStartX + col * spacing; var newY = centerStartY + row * spacing; tween(spot, { x: newX, y: newY }, { duration: 1000, easing: tween.easeInOut }); } // Add 12 new lands continuing from center positions for (var i = 0; i < 12; i++) { var landIndex = currentCount + i; var col = landIndex % landsPerRow; var row = Math.floor(landIndex / landsPerRow); var newX = centerStartX + col * spacing; var newY = centerStartY + row * spacing; var newSpot = new PlantSpot(newX, newY); plantSpots.push(newSpot); game.addChild(newSpot); } } // Play background music LK.playMusic('Music'); // Touch controls for sliding buttons var touchStartX = 0; var isDraggingButtons = false; game.down = function (x, y, obj) { // Check if touch is in the top button area if (y < 200) { touchStartX = x; isDraggingButtons = true; } }; game.up = function (x, y, obj) { if (isDraggingButtons) { var deltaX = x - touchStartX; if (Math.abs(deltaX) > 50) { // Minimum swipe distance if (deltaX > 0) { slideButtonsLeft(); } else { slideButtonsRight(); } } isDraggingButtons = false; } }; game.update = function () { // Plant spots update automatically through their update methods };
===================================================================
--- original.js
+++ change.js
@@ -26,9 +26,8 @@
var plantGraphics = null;
self.plantSeed = function (seedType) {
if (self.planted) return false;
self.planted = true;
- self.isFromSeedPack = false;
// Handle cactus planting
if (seedType === 'cactus' || seedType === 'atlas_cactus') {
self.plantType = seedType;
self.plantTime = LK.ticks;
@@ -263,26 +262,8 @@
// Don't plant other fruit seeds in sand - this is for cactus only
// No planting action will occur, but we can provide feedback
selectedSeed = null;
seedShop.visible = false;
- } else if (!self.planted && selectedSeedPack) {
- // Plant random seed from seed pack in aquatic spots
- var aquaticSeeds = ['cactus', 'atlas_cactus'];
- var availableAquaticSeeds = [];
- for (var i = 0; i < aquaticSeeds.length; i++) {
- if (inventory[aquaticSeeds[i]] && inventory[aquaticSeeds[i]] > 0) {
- availableAquaticSeeds.push(aquaticSeeds[i]);
- }
- }
- if (availableAquaticSeeds.length > 0) {
- var randomSeedType = availableAquaticSeeds[Math.floor(Math.random() * availableAquaticSeeds.length)];
- if (self.plantSeed(randomSeedType)) {
- self.isFromSeedPack = true;
- inventory[randomSeedType]--;
- updateInventoryDisplay();
- selectedSeedPack = null;
- }
- }
}
};
return self;
});
@@ -486,9 +467,8 @@
self.plantType = seedType;
self.plantTime = LK.ticks;
self.grown = false;
self.isColorful = false;
- self.isFromSeedPack = false;
// 5% chance for colorful fruit (3x price)
if (Math.random() < 0.05) {
self.isColorful = true;
self.plantType = 'colorful_' + seedType;
@@ -728,146 +708,12 @@
} else if (!self.planted && (selectedSeed === 'cactus' || selectedSeed === 'atlas_cactus')) {
// Block cactus and atlas cactus planting in dirt spots - these can only be planted in sand
selectedSeed = null;
seedShop.visible = false;
- } else if (!self.planted && selectedSeedPack) {
- // Plant random seed from seed pack
- var availableSeeds = [];
- for (var seedType in inventory) {
- if (inventory[seedType] > 0 && seedType !== 'cactus' && seedType !== 'atlas_cactus') {
- availableSeeds.push(seedType);
- }
- }
- if (availableSeeds.length > 0) {
- var randomSeedType = availableSeeds[Math.floor(Math.random() * availableSeeds.length)];
- if (self.plantSeed(randomSeedType)) {
- self.isFromSeedPack = true;
- inventory[randomSeedType]--;
- updateInventoryDisplay();
- selectedSeedPack = null;
- }
- }
}
};
return self;
});
-var SeedPackShop = Container.expand(function () {
- var self = Container.call(this);
- var background = self.attachAsset('seedShopBg', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- var titleText = new Text2('SEED PACK SHOP', {
- size: 80,
- fill: 0x000000
- });
- titleText.anchor.set(0.5, 0.5);
- titleText.y = -600;
- self.addChild(titleText);
- // Basic Seed Pack item
- var basicPackButton = new Container();
- basicPackButton.x = 0;
- basicPackButton.y = -300;
- var basicPackIcon = basicPackButton.attachAsset('seedpack', {
- anchorX: 0.5,
- anchorY: 0.5,
- scaleX: 1.5,
- scaleY: 1.5
- });
- basicPackIcon.x = -300;
- var basicPackNameText = new Text2('Basic Pack', {
- size: 70,
- fill: 0x000000
- });
- basicPackNameText.anchor.set(0, 0.5);
- basicPackNameText.x = -200;
- basicPackButton.addChild(basicPackNameText);
- var basicPackPriceText = new Text2('$200', {
- size: 70,
- fill: 0xFFFF00
- });
- basicPackPriceText.anchor.set(1, 0.5);
- basicPackPriceText.x = 300;
- basicPackButton.addChild(basicPackPriceText);
- var basicPackDescText = new Text2('Contains 3 random seeds', {
- size: 40,
- fill: 0x666666
- });
- basicPackDescText.anchor.set(0.5, 0);
- basicPackDescText.y = 50;
- basicPackButton.addChild(basicPackDescText);
- basicPackButton.down = function () {
- if (money >= 200) {
- money -= 200;
- updateMoneyDisplay();
- // Give 3 random seeds
- var seedTypes = ['blueberry', 'nectarine', 'pineapple', 'cherry', 'kiwi', 'mango'];
- for (var i = 0; i < 3; i++) {
- var randomSeed = seedTypes[Math.floor(Math.random() * seedTypes.length)];
- inventory[randomSeed] = (inventory[randomSeed] || 0) + 1;
- }
- updateInventoryDisplay();
- self.visible = false;
- LK.getSound('Buy').play();
- }
- };
- self.addChild(basicPackButton);
- // Premium Seed Pack item
- var premiumPackButton = new Container();
- premiumPackButton.x = 0;
- premiumPackButton.y = -150;
- var premiumPackIcon = premiumPackButton.attachAsset('seedpack', {
- anchorX: 0.5,
- anchorY: 0.5,
- scaleX: 1.5,
- scaleY: 1.5,
- tint: 0xFFD700
- });
- premiumPackIcon.x = -300;
- var premiumPackNameText = new Text2('Premium Pack', {
- size: 70,
- fill: 0x000000
- });
- premiumPackNameText.anchor.set(0, 0.5);
- premiumPackNameText.x = -200;
- premiumPackButton.addChild(premiumPackNameText);
- var premiumPackPriceText = new Text2('$800', {
- size: 70,
- fill: 0xFFFF00
- });
- premiumPackPriceText.anchor.set(1, 0.5);
- premiumPackPriceText.x = 300;
- premiumPackButton.addChild(premiumPackPriceText);
- var premiumPackDescText = new Text2('Contains 5 random high-value seeds', {
- size: 40,
- fill: 0x666666
- });
- premiumPackDescText.anchor.set(0.5, 0);
- premiumPackDescText.y = 50;
- premiumPackButton.addChild(premiumPackDescText);
- premiumPackButton.down = function () {
- if (money >= 800) {
- money -= 800;
- updateMoneyDisplay();
- // Give 5 random high-value seeds
- var premiumSeeds = ['cherry', 'kiwi', 'mango', 'heavenMango', 'mystery'];
- for (var i = 0; i < 5; i++) {
- var randomSeed = premiumSeeds[Math.floor(Math.random() * premiumSeeds.length)];
- inventory[randomSeed] = (inventory[randomSeed] || 0) + 1;
- }
- updateInventoryDisplay();
- self.visible = false;
- LK.getSound('Buy').play();
- }
- };
- self.addChild(premiumPackButton);
- var closeButton = new Button('CLOSE', function () {
- self.visible = false;
- });
- closeButton.y = 200;
- self.addChild(closeButton);
- return self;
-});
var SeedShop = Container.expand(function () {
var self = Container.call(this);
var background = self.attachAsset('seedShopBg', {
anchorX: 0.5,
@@ -1266,9 +1112,8 @@
var selectedSeed = null;
var selectedSprinkler = false;
var selectedFish = false;
var selectedFish2 = false;
-var selectedSeedPack = null;
var sprinklers = [];
var seedPrices = {
cactus: 100,
atlas_cactus: 250,
@@ -1356,20 +1201,8 @@
inventoryText.anchor.set(0, 1);
inventoryText.x = 100;
inventoryText.y = -200;
LK.gui.bottomLeft.addChild(inventoryText);
-var plantSeedPackButton = new Button('PLANT SEED PACK', function () {
- selectedSeedPack = true;
- selectedSeed = null;
- selectedSprinkler = false;
- selectedFish = false;
- selectedFish2 = false;
-});
-plantSeedPackButton.x = 100;
-plantSeedPackButton.y = -100;
-plantSeedPackButton.scaleX = 1.2;
-plantSeedPackButton.scaleY = 1.2;
-LK.gui.bottomLeft.addChild(plantSeedPackButton);
// Make inventory alive with pulsing animation
function animateInventory() {
tween(inventoryText, {
scaleX: 1.1,
@@ -1469,16 +1302,8 @@
freeCoinsButton.y = 100;
freeCoinsButton.scaleX = 1.3;
freeCoinsButton.scaleY = 1.3;
LK.gui.topLeft.addChild(freeCoinsButton);
-var seedPackButton = new Button('SEED PACK', function () {
- seedPackShop.visible = true;
-});
-seedPackButton.x = 1200;
-seedPackButton.y = 250;
-seedPackButton.scaleX = 1.3;
-seedPackButton.scaleY = 1.3;
-LK.gui.topLeft.addChild(seedPackButton);
var gearButton = new Button('GEAR SHOP', function () {
gearShop.visible = true;
});
gearButton.x = 600;
@@ -1508,16 +1333,11 @@
fishShop.x = 1024;
fishShop.y = 1366;
fishShop.visible = false;
game.addChild(fishShop);
-var seedPackShop = new SeedPackShop();
-seedPackShop.x = 1024;
-seedPackShop.y = 1366;
-seedPackShop.visible = false;
-game.addChild(seedPackShop);
// Button sliding variables
-var topButtons = [sellButton, seedButton, freeCoinsButton, gearButton, fishButton, seedPackButton];
-var buttonBasePositions = [600, 900, 1200, 600, 900, 1200];
+var topButtons = [sellButton, seedButton, freeCoinsButton, gearButton, fishButton];
+var buttonBasePositions = [600, 900, 1200, 600, 900];
var slideOffset = 0;
var maxSlideOffset = 400; // Maximum pixels to slide
// Sliding functions
function slideButtonsLeft() {
background grass 8 bit. In-Game asset. 2d. High contrast. No shadows
Stone 8 bit. No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
Neon
Choco
Choco but all parts of the carrot are visible and only the carrot is painted brown
Blueberry 8 bit. In-Game asset. 2d. High contrast. No shadows
Delete stones, 2d
Cactus 8 bit. In-Game asset. 2d. High contrast. No shadows
8 bit nectarine tree. In-Game asset. 2d. High contrast. No shadows
Cherry tree 8 bit. In-Game asset. 2d. High contrast. No shadows
8 bit pineapple. In-Game asset. 2d. High contrast. No shadows
Kiwi tree 8bit. In-Game asset. 2d. High contrast. No shadows
make trees leaves orange
fruits are black with purple leaves and particles around them
8 bit cherry seed. In-Game asset. 2d. High contrast. No shadows
8bit kiwi seed. In-Game asset. 2d. High contrast. No shadows
Mango seed 8bit. In-Game asset. 2d. High contrast. No shadows
winged and white
make the leaves of the tree white
8 bit pineapple seed. In-Game asset. 2d. High contrast. No shadows
purple black mysterious unknown fruit seed 8bit. In-Game asset. 2d. High contrast. No shadows
8 bit blueberry seed. In-Game asset. 2d. High contrast. No shadows
cactus with pink spines and a small pink flower on top 8bit. In-Game asset. 2d. High contrast. No shadows
Neon
Neon
Neon