User prompt
enlarge text and buttons
Code edit (1 edits merged)
Please save this source code
User prompt
Money Clicker Tycoon
Initial prompt
Make me a money clicker simulator, let's have improvements, let's save our score to the cloud, let's have Money Farm, Money Factory and similar things in our improvements
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
var storage = LK.import("@upit/storage.v1", {
money: 0,
farmCount: 0,
factoryCount: 0,
farmLevel: 1,
factoryLevel: 1,
highScore: 0
});
/****
* Classes
****/
// Money Button (Tap to earn)
var MoneyBtn = Container.expand(function () {
var self = Container.call(this);
var btn = self.attachAsset('moneyBtn', {
anchorX: 0.5,
anchorY: 0.5
});
// Animate on tap
self.tapAnim = function () {
tween(self, {
scaleX: 1.15,
scaleY: 1.15
}, {
duration: 80,
easing: tween.easeOut,
onFinish: function onFinish() {
tween(self, {
scaleX: 1,
scaleY: 1
}, {
duration: 120,
easing: tween.easeIn
});
}
});
};
return self;
});
// Upgrade Button (for farms/factories)
var UpgradeBtn = Container.expand(function () {
var self = Container.call(this);
var btn = self.attachAsset('upgradeBtn', {
anchorX: 0.5,
anchorY: 0.5
});
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x222222
});
/****
* Game Code
****/
// Upgrade button
// Money Factory icon
// Money Farm icon
// Money icon (main tap button)
// --- Persistent State ---
var money = storage.money || 0;
var farmCount = storage.farmCount || 0;
var factoryCount = storage.factoryCount || 0;
var farmLevel = storage.farmLevel || 1;
var factoryLevel = storage.factoryLevel || 1;
var highScore = storage.highScore || 0;
// --- Constants ---
var FARM_BASE_COST = 50;
var FACTORY_BASE_COST = 500;
var FARM_BASE_INCOME = 2;
var FACTORY_BASE_INCOME = 20;
var FARM_UPGRADE_COST = 100;
var FACTORY_UPGRADE_COST = 1000;
var FARM_UPGRADE_MULT = 1.5;
var FACTORY_UPGRADE_MULT = 1.5;
// --- UI Elements ---
var moneyBtn = new MoneyBtn();
moneyBtn.x = 2048 / 2;
moneyBtn.y = 1100;
game.addChild(moneyBtn);
var moneyTxt = new Text2('', {
size: 120,
fill: "#fff"
});
moneyTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(moneyTxt);
var highScoreTxt = new Text2('', {
size: 48,
fill: 0xFFD700
});
highScoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(highScoreTxt);
highScoreTxt.y = 120;
// --- Farm Section ---
var farmIcon = LK.getAsset('farmIcon', {
anchorX: 0.5,
anchorY: 0.5
});
farmIcon.x = 600;
farmIcon.y = 1800;
game.addChild(farmIcon);
var farmCountTxt = new Text2('', {
size: 60,
fill: "#fff"
});
farmCountTxt.anchor.set(0.5, 0.5);
farmCountTxt.x = farmIcon.x;
farmCountTxt.y = farmIcon.y + 120;
game.addChild(farmCountTxt);
var farmBuyBtn = new UpgradeBtn();
farmBuyBtn.x = farmIcon.x;
farmBuyBtn.y = farmIcon.y + 300;
game.addChild(farmBuyBtn);
var farmBuyTxt = new Text2('', {
size: 44,
fill: "#fff"
});
farmBuyTxt.anchor.set(0.5, 0.5);
farmBuyTxt.x = farmBuyBtn.x;
farmBuyTxt.y = farmBuyBtn.y;
game.addChild(farmBuyTxt);
var farmUpgradeBtn = new UpgradeBtn();
farmUpgradeBtn.x = farmIcon.x;
farmUpgradeBtn.y = farmBuyBtn.y + 120;
game.addChild(farmUpgradeBtn);
var farmUpgradeTxt = new Text2('', {
size: 38,
fill: "#fff"
});
farmUpgradeTxt.anchor.set(0.5, 0.5);
farmUpgradeTxt.x = farmUpgradeBtn.x;
farmUpgradeTxt.y = farmUpgradeBtn.y;
game.addChild(farmUpgradeTxt);
// --- Factory Section ---
var factoryIcon = LK.getAsset('factoryIcon', {
anchorX: 0.5,
anchorY: 0.5
});
factoryIcon.x = 1448;
factoryIcon.y = 1800;
game.addChild(factoryIcon);
var factoryCountTxt = new Text2('', {
size: 60,
fill: "#fff"
});
factoryCountTxt.anchor.set(0.5, 0.5);
factoryCountTxt.x = factoryIcon.x;
factoryCountTxt.y = factoryIcon.y + 120;
game.addChild(factoryCountTxt);
var factoryBuyBtn = new UpgradeBtn();
factoryBuyBtn.x = factoryIcon.x;
factoryBuyBtn.y = factoryIcon.y + 300;
game.addChild(factoryBuyBtn);
var factoryBuyTxt = new Text2('', {
size: 44,
fill: "#fff"
});
factoryBuyTxt.anchor.set(0.5, 0.5);
factoryBuyTxt.x = factoryBuyBtn.x;
factoryBuyTxt.y = factoryBuyBtn.y;
game.addChild(factoryBuyTxt);
var factoryUpgradeBtn = new UpgradeBtn();
factoryUpgradeBtn.x = factoryIcon.x;
factoryUpgradeBtn.y = factoryBuyBtn.y + 120;
game.addChild(factoryUpgradeBtn);
var factoryUpgradeTxt = new Text2('', {
size: 38,
fill: "#fff"
});
factoryUpgradeTxt.anchor.set(0.5, 0.5);
factoryUpgradeTxt.x = factoryUpgradeBtn.x;
factoryUpgradeTxt.y = factoryUpgradeBtn.y;
game.addChild(factoryUpgradeTxt);
// --- Helper Functions ---
function formatMoney(val) {
if (val >= 1e9) return (val / 1e9).toFixed(2) + "B";
if (val >= 1e6) return (val / 1e6).toFixed(2) + "M";
if (val >= 1e3) return (val / 1e3).toFixed(2) + "K";
return Math.floor(val) + "";
}
function getFarmCost() {
return Math.floor(FARM_BASE_COST * Math.pow(1.15, farmCount));
}
function getFactoryCost() {
return Math.floor(FACTORY_BASE_COST * Math.pow(1.18, factoryCount));
}
function getFarmIncome() {
return farmCount * FARM_BASE_INCOME * farmLevel;
}
function getFactoryIncome() {
return factoryCount * FACTORY_BASE_INCOME * factoryLevel;
}
function getFarmUpgradeCost() {
return Math.floor(FARM_UPGRADE_COST * Math.pow(FARM_UPGRADE_MULT, farmLevel - 1));
}
function getFactoryUpgradeCost() {
return Math.floor(FACTORY_UPGRADE_COST * Math.pow(FACTORY_UPGRADE_MULT, factoryLevel - 1));
}
function saveState() {
storage.money = money;
storage.farmCount = farmCount;
storage.factoryCount = factoryCount;
storage.farmLevel = farmLevel;
storage.factoryLevel = factoryLevel;
if (money > highScore) {
highScore = money;
storage.highScore = highScore;
}
}
// --- UI Update ---
function updateUI() {
moneyTxt.setText("Money: $" + formatMoney(money));
highScoreTxt.setText("High Score: $" + formatMoney(highScore));
farmCountTxt.setText("Farms: " + farmCount + "\nIncome: $" + formatMoney(getFarmIncome()) + "/s");
farmBuyTxt.setText("Buy Farm\n$" + formatMoney(getFarmCost()));
farmUpgradeTxt.setText("Upgrade Farm\nLvl " + farmLevel + " ($" + formatMoney(getFarmUpgradeCost()) + ")");
factoryCountTxt.setText("Factories: " + factoryCount + "\nIncome: $" + formatMoney(getFactoryIncome()) + "/s");
factoryBuyTxt.setText("Buy Factory\n$" + formatMoney(getFactoryCost()));
factoryUpgradeTxt.setText("Upgrade Factory\nLvl " + factoryLevel + " ($" + formatMoney(getFactoryUpgradeCost()) + ")");
}
// --- Money Button Tap ---
moneyBtn.down = function (x, y, obj) {
var add = 1 + farmLevel + factoryLevel;
money += add;
if (money > highScore) {
highScore = money;
storage.highScore = highScore;
}
moneyBtn.tapAnim();
updateUI();
saveState();
};
// --- Farm Buy ---
farmBuyBtn.down = function (x, y, obj) {
var cost = getFarmCost();
if (money >= cost) {
money -= cost;
farmCount += 1;
updateUI();
saveState();
// Animate farm icon
tween(farmIcon, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 100,
onFinish: function onFinish() {
tween(farmIcon, {
scaleX: 1,
scaleY: 1
}, {
duration: 120
});
}
});
}
};
// --- Farm Upgrade ---
farmUpgradeBtn.down = function (x, y, obj) {
var cost = getFarmUpgradeCost();
if (money >= cost) {
money -= cost;
farmLevel += 1;
updateUI();
saveState();
// Animate farm icon
tween(farmIcon, {
tint: 0xA5D6A7
}, {
duration: 200,
onFinish: function onFinish() {
tween(farmIcon, {
tint: 0x4CAF50
}, {
duration: 200
});
}
});
}
};
// --- Factory Buy ---
factoryBuyBtn.down = function (x, y, obj) {
var cost = getFactoryCost();
if (money >= cost) {
money -= cost;
factoryCount += 1;
updateUI();
saveState();
// Animate factory icon
tween(factoryIcon, {
scaleX: 1.2,
scaleY: 1.2
}, {
duration: 100,
onFinish: function onFinish() {
tween(factoryIcon, {
scaleX: 1,
scaleY: 1
}, {
duration: 120
});
}
});
}
};
// --- Factory Upgrade ---
factoryUpgradeBtn.down = function (x, y, obj) {
var cost = getFactoryUpgradeCost();
if (money >= cost) {
money -= cost;
factoryLevel += 1;
updateUI();
saveState();
// Animate factory icon
tween(factoryIcon, {
tint: 0x90CAF9
}, {
duration: 200,
onFinish: function onFinish() {
tween(factoryIcon, {
tint: 0x2196F3
}, {
duration: 200
});
}
});
}
};
// --- Passive Income Timer ---
var incomeTimer = LK.setInterval(function () {
var farmIncome = getFarmIncome() / 10; // 10x per second
var factoryIncome = getFactoryIncome() / 10;
var total = farmIncome + factoryIncome;
if (total > 0) {
money += total;
if (money > highScore) {
highScore = money;
storage.highScore = highScore;
}
updateUI();
saveState();
}
}, 100);
// --- Save every 5 seconds for redundancy ---
var saveTimer = LK.setInterval(function () {
saveState();
}, 5000);
// --- Initial UI Update ---
updateUI(); ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,358 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+var storage = LK.import("@upit/storage.v1", {
+ money: 0,
+ farmCount: 0,
+ factoryCount: 0,
+ farmLevel: 1,
+ factoryLevel: 1,
+ highScore: 0
+});
+
+/****
+* Classes
+****/
+// Money Button (Tap to earn)
+var MoneyBtn = Container.expand(function () {
+ var self = Container.call(this);
+ var btn = self.attachAsset('moneyBtn', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Animate on tap
+ self.tapAnim = function () {
+ tween(self, {
+ scaleX: 1.15,
+ scaleY: 1.15
+ }, {
+ duration: 80,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ tween(self, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 120,
+ easing: tween.easeIn
+ });
+ }
+ });
+ };
+ return self;
+});
+// Upgrade Button (for farms/factories)
+var UpgradeBtn = Container.expand(function () {
+ var self = Container.call(this);
+ var btn = self.attachAsset('upgradeBtn', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x222222
+});
+
+/****
+* Game Code
+****/
+// Upgrade button
+// Money Factory icon
+// Money Farm icon
+// Money icon (main tap button)
+// --- Persistent State ---
+var money = storage.money || 0;
+var farmCount = storage.farmCount || 0;
+var factoryCount = storage.factoryCount || 0;
+var farmLevel = storage.farmLevel || 1;
+var factoryLevel = storage.factoryLevel || 1;
+var highScore = storage.highScore || 0;
+// --- Constants ---
+var FARM_BASE_COST = 50;
+var FACTORY_BASE_COST = 500;
+var FARM_BASE_INCOME = 2;
+var FACTORY_BASE_INCOME = 20;
+var FARM_UPGRADE_COST = 100;
+var FACTORY_UPGRADE_COST = 1000;
+var FARM_UPGRADE_MULT = 1.5;
+var FACTORY_UPGRADE_MULT = 1.5;
+// --- UI Elements ---
+var moneyBtn = new MoneyBtn();
+moneyBtn.x = 2048 / 2;
+moneyBtn.y = 1100;
+game.addChild(moneyBtn);
+var moneyTxt = new Text2('', {
+ size: 120,
+ fill: "#fff"
+});
+moneyTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(moneyTxt);
+var highScoreTxt = new Text2('', {
+ size: 48,
+ fill: 0xFFD700
+});
+highScoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(highScoreTxt);
+highScoreTxt.y = 120;
+// --- Farm Section ---
+var farmIcon = LK.getAsset('farmIcon', {
+ anchorX: 0.5,
+ anchorY: 0.5
+});
+farmIcon.x = 600;
+farmIcon.y = 1800;
+game.addChild(farmIcon);
+var farmCountTxt = new Text2('', {
+ size: 60,
+ fill: "#fff"
+});
+farmCountTxt.anchor.set(0.5, 0.5);
+farmCountTxt.x = farmIcon.x;
+farmCountTxt.y = farmIcon.y + 120;
+game.addChild(farmCountTxt);
+var farmBuyBtn = new UpgradeBtn();
+farmBuyBtn.x = farmIcon.x;
+farmBuyBtn.y = farmIcon.y + 300;
+game.addChild(farmBuyBtn);
+var farmBuyTxt = new Text2('', {
+ size: 44,
+ fill: "#fff"
+});
+farmBuyTxt.anchor.set(0.5, 0.5);
+farmBuyTxt.x = farmBuyBtn.x;
+farmBuyTxt.y = farmBuyBtn.y;
+game.addChild(farmBuyTxt);
+var farmUpgradeBtn = new UpgradeBtn();
+farmUpgradeBtn.x = farmIcon.x;
+farmUpgradeBtn.y = farmBuyBtn.y + 120;
+game.addChild(farmUpgradeBtn);
+var farmUpgradeTxt = new Text2('', {
+ size: 38,
+ fill: "#fff"
+});
+farmUpgradeTxt.anchor.set(0.5, 0.5);
+farmUpgradeTxt.x = farmUpgradeBtn.x;
+farmUpgradeTxt.y = farmUpgradeBtn.y;
+game.addChild(farmUpgradeTxt);
+// --- Factory Section ---
+var factoryIcon = LK.getAsset('factoryIcon', {
+ anchorX: 0.5,
+ anchorY: 0.5
+});
+factoryIcon.x = 1448;
+factoryIcon.y = 1800;
+game.addChild(factoryIcon);
+var factoryCountTxt = new Text2('', {
+ size: 60,
+ fill: "#fff"
+});
+factoryCountTxt.anchor.set(0.5, 0.5);
+factoryCountTxt.x = factoryIcon.x;
+factoryCountTxt.y = factoryIcon.y + 120;
+game.addChild(factoryCountTxt);
+var factoryBuyBtn = new UpgradeBtn();
+factoryBuyBtn.x = factoryIcon.x;
+factoryBuyBtn.y = factoryIcon.y + 300;
+game.addChild(factoryBuyBtn);
+var factoryBuyTxt = new Text2('', {
+ size: 44,
+ fill: "#fff"
+});
+factoryBuyTxt.anchor.set(0.5, 0.5);
+factoryBuyTxt.x = factoryBuyBtn.x;
+factoryBuyTxt.y = factoryBuyBtn.y;
+game.addChild(factoryBuyTxt);
+var factoryUpgradeBtn = new UpgradeBtn();
+factoryUpgradeBtn.x = factoryIcon.x;
+factoryUpgradeBtn.y = factoryBuyBtn.y + 120;
+game.addChild(factoryUpgradeBtn);
+var factoryUpgradeTxt = new Text2('', {
+ size: 38,
+ fill: "#fff"
+});
+factoryUpgradeTxt.anchor.set(0.5, 0.5);
+factoryUpgradeTxt.x = factoryUpgradeBtn.x;
+factoryUpgradeTxt.y = factoryUpgradeBtn.y;
+game.addChild(factoryUpgradeTxt);
+// --- Helper Functions ---
+function formatMoney(val) {
+ if (val >= 1e9) return (val / 1e9).toFixed(2) + "B";
+ if (val >= 1e6) return (val / 1e6).toFixed(2) + "M";
+ if (val >= 1e3) return (val / 1e3).toFixed(2) + "K";
+ return Math.floor(val) + "";
+}
+function getFarmCost() {
+ return Math.floor(FARM_BASE_COST * Math.pow(1.15, farmCount));
+}
+function getFactoryCost() {
+ return Math.floor(FACTORY_BASE_COST * Math.pow(1.18, factoryCount));
+}
+function getFarmIncome() {
+ return farmCount * FARM_BASE_INCOME * farmLevel;
+}
+function getFactoryIncome() {
+ return factoryCount * FACTORY_BASE_INCOME * factoryLevel;
+}
+function getFarmUpgradeCost() {
+ return Math.floor(FARM_UPGRADE_COST * Math.pow(FARM_UPGRADE_MULT, farmLevel - 1));
+}
+function getFactoryUpgradeCost() {
+ return Math.floor(FACTORY_UPGRADE_COST * Math.pow(FACTORY_UPGRADE_MULT, factoryLevel - 1));
+}
+function saveState() {
+ storage.money = money;
+ storage.farmCount = farmCount;
+ storage.factoryCount = factoryCount;
+ storage.farmLevel = farmLevel;
+ storage.factoryLevel = factoryLevel;
+ if (money > highScore) {
+ highScore = money;
+ storage.highScore = highScore;
+ }
+}
+// --- UI Update ---
+function updateUI() {
+ moneyTxt.setText("Money: $" + formatMoney(money));
+ highScoreTxt.setText("High Score: $" + formatMoney(highScore));
+ farmCountTxt.setText("Farms: " + farmCount + "\nIncome: $" + formatMoney(getFarmIncome()) + "/s");
+ farmBuyTxt.setText("Buy Farm\n$" + formatMoney(getFarmCost()));
+ farmUpgradeTxt.setText("Upgrade Farm\nLvl " + farmLevel + " ($" + formatMoney(getFarmUpgradeCost()) + ")");
+ factoryCountTxt.setText("Factories: " + factoryCount + "\nIncome: $" + formatMoney(getFactoryIncome()) + "/s");
+ factoryBuyTxt.setText("Buy Factory\n$" + formatMoney(getFactoryCost()));
+ factoryUpgradeTxt.setText("Upgrade Factory\nLvl " + factoryLevel + " ($" + formatMoney(getFactoryUpgradeCost()) + ")");
+}
+// --- Money Button Tap ---
+moneyBtn.down = function (x, y, obj) {
+ var add = 1 + farmLevel + factoryLevel;
+ money += add;
+ if (money > highScore) {
+ highScore = money;
+ storage.highScore = highScore;
+ }
+ moneyBtn.tapAnim();
+ updateUI();
+ saveState();
+};
+// --- Farm Buy ---
+farmBuyBtn.down = function (x, y, obj) {
+ var cost = getFarmCost();
+ if (money >= cost) {
+ money -= cost;
+ farmCount += 1;
+ updateUI();
+ saveState();
+ // Animate farm icon
+ tween(farmIcon, {
+ scaleX: 1.2,
+ scaleY: 1.2
+ }, {
+ duration: 100,
+ onFinish: function onFinish() {
+ tween(farmIcon, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 120
+ });
+ }
+ });
+ }
+};
+// --- Farm Upgrade ---
+farmUpgradeBtn.down = function (x, y, obj) {
+ var cost = getFarmUpgradeCost();
+ if (money >= cost) {
+ money -= cost;
+ farmLevel += 1;
+ updateUI();
+ saveState();
+ // Animate farm icon
+ tween(farmIcon, {
+ tint: 0xA5D6A7
+ }, {
+ duration: 200,
+ onFinish: function onFinish() {
+ tween(farmIcon, {
+ tint: 0x4CAF50
+ }, {
+ duration: 200
+ });
+ }
+ });
+ }
+};
+// --- Factory Buy ---
+factoryBuyBtn.down = function (x, y, obj) {
+ var cost = getFactoryCost();
+ if (money >= cost) {
+ money -= cost;
+ factoryCount += 1;
+ updateUI();
+ saveState();
+ // Animate factory icon
+ tween(factoryIcon, {
+ scaleX: 1.2,
+ scaleY: 1.2
+ }, {
+ duration: 100,
+ onFinish: function onFinish() {
+ tween(factoryIcon, {
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 120
+ });
+ }
+ });
+ }
+};
+// --- Factory Upgrade ---
+factoryUpgradeBtn.down = function (x, y, obj) {
+ var cost = getFactoryUpgradeCost();
+ if (money >= cost) {
+ money -= cost;
+ factoryLevel += 1;
+ updateUI();
+ saveState();
+ // Animate factory icon
+ tween(factoryIcon, {
+ tint: 0x90CAF9
+ }, {
+ duration: 200,
+ onFinish: function onFinish() {
+ tween(factoryIcon, {
+ tint: 0x2196F3
+ }, {
+ duration: 200
+ });
+ }
+ });
+ }
+};
+// --- Passive Income Timer ---
+var incomeTimer = LK.setInterval(function () {
+ var farmIncome = getFarmIncome() / 10; // 10x per second
+ var factoryIncome = getFactoryIncome() / 10;
+ var total = farmIncome + factoryIncome;
+ if (total > 0) {
+ money += total;
+ if (money > highScore) {
+ highScore = money;
+ storage.highScore = highScore;
+ }
+ updateUI();
+ saveState();
+ }
+}, 100);
+// --- Save every 5 seconds for redundancy ---
+var saveTimer = LK.setInterval(function () {
+ saveState();
+}, 5000);
+// --- Initial UI Update ---
+updateUI();
\ No newline at end of file