From d9c5dc71d3bfc9188cb64415f8f20f5e37bfb1f3 Mon Sep 17 00:00:00 2001 From: /home/neo <158327205+neoapps-dev@users.noreply.github.com> Date: Wed, 24 Jun 2026 19:29:05 +0300 Subject: [PATCH] fix --- .00plugins/lce-clicker/main.js | 251 ++++++++++++++++++++++++++++----- 1 file changed, 213 insertions(+), 38 deletions(-) diff --git a/.00plugins/lce-clicker/main.js b/.00plugins/lce-clicker/main.js index 393bda0..0f023be 100644 --- a/.00plugins/lce-clicker/main.js +++ b/.00plugins/lce-clicker/main.js @@ -1,3 +1,5 @@ +//Hi there! it appears someone likes looking at source code OwO + (function () { var STORAGE_KEY = "lceclicker_blocks"; @@ -26,6 +28,9 @@ var save = loadData(); + // ========================= + // CORE + // ========================= var blocksState = useState(save ? save.blocks : 0); var blocks = blocksState[0]; var setBlocks = blocksState[1]; @@ -34,6 +39,13 @@ var clickPower = clickPowerState[0]; var setClickPower = clickPowerState[1]; + var tabState = useState("shop"); + var tab = tabState[0]; + var setTab = tabState[1]; + + // ========================= + // ORES + // ========================= var woodLevelState = useState(save ? save.woodLevel : 0); var woodLevel = woodLevelState[0]; var setWoodLevel = woodLevelState[1]; @@ -54,6 +66,9 @@ var diamondLevel = diamondLevelState[0]; var setDiamondLevel = diamondLevelState[1]; + // ========================= + // CPS BUILDINGS + // ========================= var villagerLevelState = useState(save ? save.villagerLevel : 0); var villagerLevel = villagerLevelState[0]; var setVillagerLevel = villagerLevelState[1]; @@ -74,10 +89,9 @@ var mainframeLevel = mainframeLevelState[0]; var setMainframeLevel = mainframeLevelState[1]; - function saveAll(data) { - saveData(data); - } - + // ========================= + // SAVE HELPERS + // ========================= function buildSave() { return { blocks, @@ -97,6 +111,13 @@ }; } + function saveAll(extra) { + saveData(extra || buildSave()); + } + + // ========================= + // CLICK + // ========================= function clickBlock() { var newBlocks = blocks + clickPower; setBlocks(newBlocks); @@ -107,18 +128,115 @@ }); } + // ========================= + // COSTS + // ========================= var woodCost = Math.floor(10 * Math.pow(1.15, woodLevel)); var stoneCost = Math.floor(25 * Math.pow(1.18, stoneLevel)); - var ironCost = Math.floor(50 * Math.pow(1.2, ironLevel)); + var ironCost = Math.floor(50 * Math.pow(1.20, ironLevel)); var goldCost = Math.floor(150 * Math.pow(1.22, goldLevel)); var diamondCost = Math.floor(500 * Math.pow(1.28, diamondLevel)); var villagerCost = Math.floor(50 * Math.pow(1.15, villagerLevel)); var ravineCost = Math.floor(250 * Math.pow(1.17, ravineLevel)); - var smelterCost = Math.floor(1000 * Math.pow(1.2, smelterLevel)); + var smelterCost = Math.floor(1000 * Math.pow(1.20, smelterLevel)); var excavatorCost = Math.floor(5000 * Math.pow(1.25, excavatorLevel)); - var mainframeCost = Math.floor(25000 * Math.pow(1.3, mainframeLevel)); + var mainframeCost = Math.floor(25000 * Math.pow(1.30, mainframeLevel)); + // ========================= + // BUY ORES + // ========================= + function buyWood() { + if (blocks < woodCost) return; + var b = blocks - woodCost; + setBlocks(b); + setClickPower(clickPower + 1); + setWoodLevel(woodLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyStone() { + if (blocks < stoneCost) return; + var b = blocks - stoneCost; + setBlocks(b); + setClickPower(clickPower + 2); + setStoneLevel(stoneLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyIron() { + if (blocks < ironCost) return; + var b = blocks - ironCost; + setBlocks(b); + setClickPower(clickPower + 3); + setIronLevel(ironLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyGold() { + if (blocks < goldCost) return; + var b = blocks - goldCost; + setBlocks(b); + setClickPower(clickPower + 5); + setGoldLevel(goldLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyDiamond() { + if (blocks < diamondCost) return; + var b = blocks - diamondCost; + setBlocks(b); + setClickPower(clickPower + 10); + setDiamondLevel(diamondLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + // ========================= + // BUY CPS + // ========================= + function buyVillager() { + if (blocks < villagerCost) return; + var b = blocks - villagerCost; + setBlocks(b); + setVillagerLevel(villagerLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyRavine() { + if (blocks < ravineCost) return; + var b = blocks - ravineCost; + setBlocks(b); + setRavineLevel(ravineLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buySmelter() { + if (blocks < smelterCost) return; + var b = blocks - smelterCost; + setBlocks(b); + setSmelterLevel(smelterLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyExcavator() { + if (blocks < excavatorCost) return; + var b = blocks - excavatorCost; + setBlocks(b); + setExcavatorLevel(excavatorLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + function buyMainframe() { + if (blocks < mainframeCost) return; + var b = blocks - mainframeCost; + setBlocks(b); + setMainframeLevel(mainframeLevel + 1); + saveAll({ ...buildSave(), blocks: b }); + } + + // ========================= + // CPS CALC + // ========================= var cps = villagerLevel * 1 + ravineLevel * 5 + @@ -126,6 +244,9 @@ excavatorLevel * 100 + mainframeLevel * 500; + // ========================= + // TICK + // ========================= useEffect(function () { var interval = setInterval(function () { if (cps > 0) { @@ -147,34 +268,39 @@ }; }, [cps]); - function btn(text, onClick, disabled) { - return h( - "button", - { - onClick: onClick, - disabled: disabled, - className: - "w-full px-2 py-1 text-white mc-text-shadow cursor-pointer border border-[#555] bg-black/40 hover:bg-black/60" - }, - text - ); - } - + // ========================= + // UI + // ========================= return h( "div", { className: "w-full max-w-5xl mx-auto p-4 flex flex-col gap-4" }, + // BACK BUTTON + h( + "button", + { + className: + "text-sm text-[#A0A0A0] hover:text-[#FFFF55] mc-text-shadow cursor-pointer", + onClick: function () { + api.views.navigate("settings"); + } + }, + "← Back" + ), + + // TITLE h( "div", { className: "text-2xl font-bold mc-text-shadow" }, "LCE Block Clicker" ), + // MAIN LAYOUT h( "div", { className: "flex gap-4" }, - // LEFT PANEL + // LEFT h( "div", { className: "flex-1 flex flex-col gap-4" }, @@ -183,18 +309,18 @@ "div", { className: "border border-[#555] bg-black/40 p-3 text-center" }, h("div", { className: "text-xs text-[#888]" }, "Blocks"), - h("div", { className: "text-2xl font-bold mc-text-shadow" }, blocks.toLocaleString()) + h("div", { className: "text-2xl font-bold" }, blocks.toLocaleString()) ), - h("div", { className: "text-sm text-[#aaa]" }, "Click Power: " + clickPower), - h("div", { className: "text-sm text-[#aaa]" }, "CPS: " + cps), + h("div", {}, "Click Power: " + clickPower), + h("div", {}, "CPS: " + cps), h( "button", { - onClick: clickBlock, className: "px-2 py-2 text-white mc-text-shadow cursor-pointer border border-[#555] bg-black/40 hover:bg-black/60", + onClick: clickBlock, style: { backgroundImage: "url('/images/Button_Background.png')", backgroundSize: "100% 100%", @@ -206,29 +332,78 @@ ) ), - // RIGHT PANEL + // RIGHT h( "div", { className: "w-64 border border-[#555] bg-black/40 p-3 flex flex-col gap-2" }, - h("div", { className: "text-xs text-[#888] uppercase tracking-widest" }, "Shop"), + h( + "div", + { className: "flex gap-2 mb-2" }, - btn("Wood - " + woodCost, function () {}), - btn("Stone - " + stoneCost), - btn("Iron - " + ironCost), - btn("Gold - " + goldCost), - btn("Diamond - " + diamondCost), + h( + "button", + { + className: "flex-1 px-2 py-1 border border-[#555] bg-black/40", + onClick: function () { + setTab("shop"); + } + }, + "Shop" + ), - h("div", { className: "text-xs text-[#888] uppercase tracking-widest mt-2" }, "CPS"), + h( + "button", + { + className: "flex-1 px-2 py-1 border border-[#555] bg-black/40", + onClick: function () { + setTab("stats"); + } + }, + "Stats" + ) + ), - btn("Villager - " + villagerCost), - btn("Ravine - " + ravineCost), - btn("Super Smelter - " + smelterCost), - btn("LCE Excavator - " + excavatorCost), - btn("LCE Mainframe - " + mainframeCost) + tab === "shop" + ? h( + "div", + {}, + h("div", {}, "ORES"), + btn("Wood - " + woodCost, buyWood), + btn("Stone - " + stoneCost, buyStone), + btn("Iron - " + ironCost, buyIron), + btn("Gold - " + goldCost, buyGold), + btn("Diamond - " + diamondCost, buyDiamond), + + h("div", { className: "mt-2" }, "CPS"), + btn("Villager - " + villagerCost, buyVillager), + btn("Ravine - " + ravineCost, buyRavine), + btn("Super Smelter - " + smelterCost, buySmelter), + btn("LCE Excavator - " + excavatorCost, buyExcavator), + btn("LCE Mainframe - " + mainframeCost, buyMainframe) + ) + : h( + "div", + {}, + h("div", {}, "Blocks: " + blocks.toLocaleString()), + h("div", {}, "Click: " + clickPower), + h("div", {}, "CPS: " + cps) + ) ) ) ); + + function btn(text, fn) { + return h( + "button", + { + onClick: fn, + className: + "w-full px-2 py-1 border border-[#555] bg-black/40 text-white hover:bg-black/60 mc-text-shadow" + }, + text + ); + } }; }, { label: "LCE Block Clicker" }