Code edit (1 edits merged)
Please save this source code
User prompt
Fix it
User prompt
Please fix the bug: 'TypeError: Cannot set properties of undefined (setting 'fill')' in or related to this line: 'ref.textObj.style.fill = 0x666666;' Line Number: 638
User prompt
Please fix the bug: 'TypeError: Cannot set properties of undefined (setting 'fill')' in or related to this line: 'ref.textObj.style.fill = 0x666666;' Line Number: 637
User prompt
Please fix the bug: 'TypeError: setTimeout is not a function' in or related to this line: 'setTimeout(function () {' Line Number: 75
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'p.lastX = ore.parent.x + ore.x;' Line Number: 317
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'p.x = ore.parent.x + ore.x;' Line Number: 317
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: setTimeout is not a function' in or related to this line: 'setTimeout(function () {' Line Number: 75
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'y')' in or related to this line: 'p.y = ore.y + ore.parent.y;' Line Number: 325
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'p.x = ore.x + ore.parent.x; // because ore is offset in the cluster' Line Number: 324
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'p.x = ore.x + ore.parent.x; // because ore is offset in the cluster' Line Number: 320
User prompt
Please fix the bug: 'TypeError: Cannot set properties of undefined (setting 'fill')' in or related to this line: 'ref.textObj.style.fill = 0x666666;' Line Number: 650
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'p.x = ore.x + ore.parent.x; // because ore is offset in the cluster' Line Number: 316
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'p.x = ore.x + ore.parent.x; // because ore is offset in the cluster' Line Number: 310
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'elapsed')' in or related to this line: 'self.y += Math.sin(LK.time.elapsed / 250) * 0.5;' Line Number: 70
User prompt
Please fix the bug: 'TypeError: setTimeout is not a function' in or related to this line: 'setTimeout(function () {' Line Number: 151
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'elapsed')' in or related to this line: 'self.y += Math.sin(LK.time.elapsed / 250) * 0.5;' Line Number: 69
Code edit (1 edits merged)
Please save this source code
User prompt
Make the buy buttons be behind each text in the buy menu
User prompt
Make the text inside of buy menu Black and Bold with a Black outline
User prompt
Move the cancel button to the left and down 200 pixels
User prompt
Move the cancel button to the upper right of menu background
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Miner class var Miner = Container.expand(function () { var self = Container.call(this); self.attachAsset('miner', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.currentTarget = null; self.miningRange = 25; self.miningCooldown = 0; self.miningRate = 30; self.miningDamage = 1; self.update = function () { self.findNewTarget(); if (self.currentTarget) { var dx = self.currentTarget.x - self.x; var dy = self.currentTarget.y - self.y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance > self.miningRange) { self.x += dx / distance * self.speed; self.y += dy / distance * self.speed; } else { self.mineOre(self.currentTarget); } } else { self.y += Math.sin(LK.time.elapsed / 250) * 0.5; } }; self.findNewTarget = function () { var validOres = ores.filter(function (ore) { return ore.health > 0 && ore.tier <= gameState.currentTier; }); if (validOres.length === 0) { return; } self.currentTarget = validOres.sort(function (a, b) { if (a.tier !== b.tier) { return b.tier - a.tier; } return Math.hypot(a.x - self.x, a.y - self.y) - Math.hypot(b.x - self.x, b.y - self.y); })[0]; }; self.mineOre = function (ore) { if (self.miningCooldown > 0) { self.miningCooldown--; return; } ore.health -= self.miningDamage * gameState.pickaxeLevel; self.miningCooldown = self.miningRate; if (ore.health <= 0) { gameState.money += ore.getValue(); ore.respawn(); updateUI(); self.findNewTarget(); } for (var i = 0; i < 5; i++) { var p = LK.getAsset('mining_particle', { anchorX: 0.5, anchorY: 0.5 }); p.x = ore.x; p.y = ore.y; p.vx = (Math.random() - 0.5) * 10; p.vy = (Math.random() - 0.5) * 10; p.alpha = 1; tween(p, { alpha: 0, y: p.y - 50 }, { duration: 1000, onFinish: function onFinish() { return p.destroy(); } }); game.addChild(p); } }; return self; }); // Ore class var Ore = Container.expand(function (type) { var self = Container.call(this); self.type = type; self.tier = ['coal', 'iron', 'gold', 'diamond'].indexOf(type) + 1; self.baseValue = 5 * self.tier; self.attachAsset(type + '_ore', { anchorX: 0.5, anchorY: 0.5 }); self.getValue = function () { return self.baseValue * gameState.oreMultipliers[type]; }; self.respawn = function () { self.health = 10; self.visible = true; self.x = 100 + Math.random() * (2048 - 200); self.y = 100 + Math.random() * (2732 - 200); var indicator = LK.getAsset('glowing_line_asset', { width: 100, height: 100 }); indicator.x = self.x; indicator.y = self.y; game.addChild(indicator); tween(indicator, { alpha: 0 }, { duration: 1000, onFinish: function onFinish() { return indicator.destroy(); } }); }; self.healthBar = LK.getAsset('rectangle', { width: 60, height: 5, fill: 0x00FF00 }); self.healthBar.y = -40; self.addChild(self.healthBar); self.respawn(); return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1a1a1a }); /**** * Game Code ****/ var upgradeMenu = new Container(); var tooltip = new Text2('', { size: 40, fill: 0xFFFFFF }); var upgrades = [{ id: 'coal_expert', name: "Coal Expertise", cost: 100, effect: "Double coal value", tier: 1, action: function action() { return gameState.oreMultipliers.coal *= 2; } }, { id: 'unlock_iron', name: "Iron Mining", cost: 500, effect: "Unlock iron mining", tier: 2, action: function action() { return gameState.currentTier = 2; } }, { id: 'iron_expert', name: "Iron Expertise", cost: 2000, effect: "Triple iron value", tier: 2, requires: 'unlock_iron', action: function action() { return gameState.oreMultipliers.iron *= 3; } }, { id: 'unlock_gold', name: "Gold Mining", cost: 5000, effect: "Unlock gold mining", tier: 3, action: function action() { return gameState.currentTier = 3; } }, { id: 'gold_expert', name: "Gold Expertise", cost: 10000, effect: "Quadruple gold value", tier: 3, requires: 'unlock_gold', action: function action() { return gameState.oreMultipliers.gold *= 4; } }, { id: 'unlock_diamond', name: "Diamond Mining", cost: 20000, effect: "Unlock diamond mining", tier: 4, action: function action() { return gameState.currentTier = 4; } }]; var gameState = { money: 0, pickaxeLevel: 1, currentTier: 1, oreMultipliers: { coal: 1, iron: 1, gold: 1, diamond: 1 } }; var miner = game.addChild(new Miner()); miner.x = 2048 / 2; miner.y = 2732 / 2; // Create ores var ores = ['coal', 'iron', 'gold', 'diamond'].map(function (type) { var ore = new Ore(type); game.addChild(ore); return ore; }); // Background var background = LK.getAsset('background', { anchorX: 0.5, anchorY: 0.5 }); background.x = 2048 / 2; background.y = 2732 / 2; game.addChildAt(background, 0); // UI Elements var moneyDisplay = new Text2('$0', { size: 80, fill: 0xFFFFFF, fontWeight: 'bold', stroke: 0x000000, strokeThickness: 5 }); moneyDisplay.x = 2048 / 2 - moneyDisplay.width / 2; moneyDisplay.y = 50; var shopButton = LK.getAsset('buy_button', { anchorX: 0.5, anchorY: 0.5 }); shopButton.x = 2048 - 150; shopButton.y = 2732 - 150; shopButton.down = function () { createUpgradeMenu(); game.addChild(upgradeMenu); }; game.addChild(moneyDisplay); game.addChild(shopButton); game.addChild(tooltip); function createUpgradeMenu() { upgradeMenu.removeChildren(); // Menu background var menuBg = LK.getAsset('rectangle', { width: 1600, height: 1800, color: 0x2a2a2a, anchorX: 0.5, anchorY: 0.5 }); menuBg.x = 2048 / 2; menuBg.y = 2732 / 2; upgradeMenu.addChild(menuBg); // Upgrades upgrades.forEach(function (upgrade, i) { var _upgrades$find; var y = 2732 / 2 - 500 + i * 200; var btn = LK.getAsset('buy_button', { anchorX: 0.5, anchorY: 0.5 }); btn.x = 2048 / 2; btn.y = y; var canBuy = !upgrade.purchased && gameState.money >= upgrade.cost && (!upgrade.requires || ((_upgrades$find = upgrades.find(function (u) { return u.id === upgrade.requires; })) === null || _upgrades$find === void 0 ? void 0 : _upgrades$find.purchased)); var text = new Text2("".concat(upgrade.name, "\n").concat(upgrade.effect, "\n$").concat(upgrade.cost), { size: 40, fill: canBuy ? 0xFFFFFF : 0x666666 }); text.anchor.set(0.5); btn.addChild(text); btn.down = function () { if (canBuy) { gameState.money -= upgrade.cost; upgrade.purchased = true; upgrade.action(); createUpgradeMenu(); updateUI(); } }; upgradeMenu.addChild(btn); }); // Close button var closeBtn = LK.getAsset('cancelButton', { anchorX: 0.5, anchorY: 0.5 }); closeBtn.x = 2048 / 2 + 600; closeBtn.y = 2732 / 2 - 700; closeBtn.down = function () { return game.removeChild(upgradeMenu); }; upgradeMenu.addChild(closeBtn); } function updateUI() { moneyDisplay.setText("$".concat(gameState.money.toLocaleString(), "\n") + "Multipliers: C".concat(gameState.oreMultipliers.coal, "x ") + "I".concat(gameState.oreMultipliers.iron, "x ") + "G".concat(gameState.oreMultipliers.gold, "x ") + "D".concat(gameState.oreMultipliers.diamond, "x")); moneyDisplay.x = 2048 / 2 - moneyDisplay.width / 2; } game.update = function () { miner.update(); ores.forEach(function (ore) { if (ore.health > 0) { ore.healthBar.width = 60 * (ore.health / 10); ore.healthBar.fill = interpolateColor(0xFF0000, 0x00FF00, ore.health / 10); } }); }; // Helper functions function interpolateColor(color1, color2, factor) { var r1 = color1 >> 16 & 0xff; var g1 = color1 >> 8 & 0xff; var b1 = color1 & 0xff; var r2 = color2 >> 16 & 0xff; var g2 = color2 >> 8 & 0xff; var b2 = color2 & 0xff; return Math.round(r1 + factor * (r2 - r1)) << 16 | Math.round(g1 + factor * (g2 - g1)) << 8 | Math.round(b1 + factor * (b2 - b1)); } // Save system LK.saveGame = function () { return gameState; }; LK.loadGame = function (data) { gameState = data; updateUI(); }; // Initial setup updateUI();
===================================================================
--- original.js
+++ change.js
@@ -301,10 +301,10 @@
var closeBtn = LK.getAsset('cancelButton', {
anchorX: 0.5,
anchorY: 0.5
});
- closeBtn.x = 2048 / 2 + 800;
- closeBtn.y = 2732 / 2 - 900;
+ closeBtn.x = 2048 / 2 + 600;
+ closeBtn.y = 2732 / 2 - 700;
closeBtn.down = function () {
return game.removeChild(upgradeMenu);
};
upgradeMenu.addChild(closeBtn);
drone_shot
Sound effect
mine_coal
Sound effect
mine_iron
Sound effect
mine_gold
Sound effect
mine_diamond
Sound effect
mine_sapphire
Sound effect
mine_emerald
Sound effect
mine_ruby
Sound effect
mine_chronostone
Sound effect
mine_quantumshard
Sound effect
ore_destroy_coal
Sound effect
ore_destroy_iron
Sound effect
ore_destroy_gold
Sound effect
ore_destroy_diamond
Sound effect
ore_destroy_sapphire
Sound effect
ore_destroy_emerald
Sound effect
ore_destroy_ruby
Sound effect
mine_coal_1
Sound effect
mine_coal_2
Sound effect
mine_coal_3
Sound effect
mine_diamond1
Sound effect
mine_diamond2
Sound effect
mine_diamond3
Sound effect
mine_emerald1
Sound effect
mine_emerald2
Sound effect
mine_emerald3
Sound effect
mine_gold1
Sound effect
mine_gold2
Sound effect
mine_gold3
Sound effect
mine_iron1
Sound effect
mine_iron2
Sound effect
mine_iron3
Sound effect
mine_ruby1
Sound effect
mine_ruby2
Sound effect
mine_ruby3
Sound effect
mine_sapphire1
Sound effect
mine_sapphire2
Sound effect
mine_sapphire3
Sound effect
song1
Music
song2
Music
song3
Music
song4
Music
song5
Music
song6
Music
song7
Music
song8
Music
song9
Music
song10
Music
song11
Music
song12
Music
song1a
Music
song1b
Music
song2a
Music
song2b
Music
song3a
Music
song3b
Music
song4a
Music
song4b
Music
song5a
Music
song5b
Music
song6a
Music
song6b
Music
song7a
Music
song7b
Music
song8a
Music
song8b
Music
song9a
Music
song9b
Music
song10a
Music
song10b
Music
song11a
Music
song11b
Music
song12a
Music
song12b
Music