Code edit (8 edits merged)
Please save this source code
User prompt
Please fix the bug: 'recipesScreen is not defined' in or related to this line: 'recipesScreen.addChild(blueSwordsText);' Line Number: 791
User prompt
Please fix the bug: 'Uncaught ReferenceError: blueSwordsText is not defined' in or related to this line: 'blueSwordsText.setText('0');' Line Number: 1292
Code edit (5 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'coords')' in or related to this line: 'if (helparray[storage.help].coords[0] < 2048 / 2) {' Line Number: 516
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: quest.destroy is not a function' in or related to this line: 'quest.destroy();' Line Number: 890
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: quest.destroy is not a function' in or related to this line: 'quest.destroy();' Line Number: 892
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: elf is not defined' in or related to this line: 'elf.down = function (x, y, obj) {' Line Number: 343
User prompt
Please fix the bug: 'Uncaught ReferenceError: elf is not defined' in or related to this line: 'elf.down = function (x, y, obj) {' Line Number: 343
Code edit (1 edits merged)
Please save this source code
Code edit (13 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'color')' in or related to this line: 'quest = new Text2(' QUEST\n' + questtext, {' Line Number: 596
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'text')' in or related to this line: 'var questtext = helparray[storage.help].text;' Line Number: 590
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'coords')' in or related to this line: 'helpObj.x = helparray[storage.help].coords[0];' Line Number: 516
Code edit (1 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught ReferenceError: redCrystalTwoHandedSwordsText is not defined' in or related to this line: 'redCrystalTwoHandedSwordsText.setText('0'); // Предполагается, что redCrystalTwoHandedSwordsText определён глобально' Line Number: 1293
User prompt
Please fix the bug: 'Uncaught ReferenceError: greenAxesText is not defined' in or related to this line: 'greenAxesText.setText('0'); // Предполагается, что greenAxesText определён глобально' Line Number: 1281
Code edit (1 edits merged)
Please save this source code
User prompt
анимацию goldstore тоже добавь в это условие
Code edit (1 edits merged)
Please save this source code
User prompt
добавь это условие к sellweapons (if (storage.blueSwords > 0 || storage.greenAxes > 0 || storage.redCrystalTwoHandedSwords > 0) { LK.getSound('gold').play(); for (var i = 0; i < 5; i++) {/* анимация монет */} })
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1", { forgingSkill: 0, growthRate: 0, blueCrystallScore: 0, greenCrystalIngotScore: 0, blueSwords: 0, greenAxes: 0, redCrystalTwoHandedSwords: 0, blueswordsclick: 0, greenAxeClicks: 0, redCrystalTwoHandedSwordClicks: 0, automineblueCrystallClicked: false, autominegreenCrystallClicked: false, autogrowthRateClicked: false, multiclickupgrade: false, theBlacksmithsApprentice: false, automineredCrystallClicked: false, lastgametime: 0, help: 0, goldScore: 0, greenCrystallScore: 0, redCrystallScore: 0, redCrystalIngotScore: 0 }); /**** * Classes ****/ var Anvil = Container.expand(function () { var self = Container.call(this); var anvilGraphics = self.attachAsset('anvil', { anchorX: 0.6, anchorY: 0.6, alpha: 0.0 }); self.clickCounter = storage.forgingSkill; self.interactive = true; self.down = function (x, y, obj) { self.clickCounter++; var shans = 0.02; if (storage.multiclickupgrade) { shans += 0.02; } if (Math.random() < shans) { self.clickCounter += 5; var newAsset = game.addChild(LK.getAsset('multyclick', { anchorX: 0.5, anchorY: 0.5 })); newAsset.x = 2048 / 2; newAsset.y = 2732 / 2; tween(newAsset, { scaleX: 2, scaleY: 2 }, { duration: 500, easing: tween.easeInOut, onFinish: function onFinish() { newAsset.destroy(); } }); } counterText.setText('Forging skill: ' + self.clickCounter); storage.forgingSkill = self.clickCounter; if (self.clickCounter >= 1000 && self.clickCounter < 2000) { counterText.tint = 0x00FF00; } else if (self.clickCounter >= 2000 && self.clickCounter < 15000) { counterText.tint = 0x0000FF; } else if (self.clickCounter >= 15000 && self.clickCounter < 30000) { counterText.tint = 0x800080; } else if (self.clickCounter >= 30000) { counterText.tint = 0xcc7c04; } if (storage.forgingSkill >= 100 && storage.help == 1) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; setHelp(1); } }; }); var BlueCristal = Container.expand(function () { var self = Container.call(this); var blueCristalGraphics = self.attachAsset('blueCristal', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { blueCrystallScore += 1; if (blueCrystallScore >= 100 && storage.help == 6) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 7; setHelp(7); } LK.setScore(blueCrystallScore); storage.blueCrystallScore = blueCrystallScore; scoreTxt.setText('Blue Crystall: ' + LK.getScore()); scoreTxt.visible = true; }; }); var BlueCrystalIngot = Container.expand(function () { var self = Container.call(this); var blueCrystalIngotGraphics = self.attachAsset('blueCrystalIngot', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { if (blueCrystallScore >= 10) { blueCrystalIngotScore += 1; storage.growthRate += 10; growthRateText.setText('Growth rate: ' + storage.growthRate); blueCrystalIngotScoreTxt.setText('BlueCrystalIngot: ' + blueCrystalIngotScore); storage.blueCrystalIngotScore = blueCrystalIngotScore; blueCrystallScore -= 10; if (blueCrystallScore < 0) { blueCrystallScore = 0; } storage.blueCrystallScore = blueCrystallScore; LK.setScore(blueCrystallScore); scoreTxt.setText('Blue Crystall: ' + LK.getScore()); if (blueCrystalIngotScore >= 10 && storage.help == 9) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 10; setHelp(10); } } }; }); var BlueCrystalSword = Container.expand(function () { var self = Container.call(this); var blueCrystalSwordGraphics = self.attachAsset('bluecrystalswordrecipe', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { if (storage.forgingSkill >= 100 && storage.blueCrystalIngotScore >= 10) { storage.blueswordsclick += 1; if (storage.blueswordsclick >= 100) { storage.blueswordsclick = 0; storage.blueSwords += 1; blueSwordsText.setText(storage.blueSwords.toString()); storage.forgingSkill += 100; counterText.setText('Forging skill: ' + storage.forgingSkill); storage.blueCrystalIngotScore -= 10; blueCrystalIngotScore = storage.blueCrystalIngotScore; blueCrystalIngotScoreTxt.setText('BlueCrystalIngot: ' + blueCrystalIngotScore); if (storage.blueSwords >= 1 && storage.help == 11) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 12; setHelp(12); } } blueCrystalSwordClicks.setText('(current ' + storage.blueswordsclick + ')'); } }; }); var Door = Container.expand(function () { var self = Container.call(this); var doorGraphics = self.attachAsset('Door', { anchorX: 0.5, anchorY: 0.5 }); self.interactive = true; self.down = function (x, y, obj) { if (storage.help == 2 || storage.help == 8) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; } LK.getSound('doors').play(); hammer.destroy(); game.magicNursery = game.addChild(new Container()); var magicNurseryBackground = game.magicNursery.attachAsset('magicNurseryBackground', { anchorX: 0.5, anchorY: 0.5, interactive: false, scaleX: 2, scaleY: 2 }); magicNurseryBackground.x = 2048 / 2; magicNurseryBackground.y = 2732 / 2; var forgeOfMatter = game.magicNursery.attachAsset('growthRate', { anchorX: 0.5, anchorY: 0.5, interactive: true, scaleX: 3, scaleY: 3, alpha: 0.0 }); var blueCrystalIngot = game.magicNursery.addChild(new BlueCrystalIngot()); blueCrystalIngot.x = 200 + blueCrystalIngot.width / 2; blueCrystalIngot.y = 2500 - blueCrystalIngot.height / 2; var redCrystalIngot = game.magicNursery.addChild(new RedCrystalIngot()); redCrystalIngot.x = 1300 / 2 + 350; redCrystalIngot.y = 4820 / 2; var greenCrystalIngotInstance = game.magicNursery.addChild(new GreenCrystalIngot()); greenCrystalIngotInstance.x = blueCrystalIngot.x + blueCrystalIngot.width + greenCrystalIngotInstance.width / 2 + 40; greenCrystalIngotInstance.y = blueCrystalIngot.y; var growthRate = game.magicNursery.addChild(LK.getAsset('growthRate', { anchorX: 0.7, anchorY: 0.7 })); growthRate.x = 780; growthRate.y = 1500; forgeOfMatter.down = function (x, y, obj) { storage.growthRate++; growthRateText.setText('Growth rate: ' + storage.growthRate); if (storage.growthRate >= 50 && storage.help == 3) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 4; setHelp(4); } }; forgeOfMatter.x = 1100 / 1.5; forgeOfMatter.y = 2000 / 1.5; gameScreen.visible = false; counterText.visible = true; map.visible = false; var door2 = game.magicNursery.addChild(new Door2()); door2.x = 2048 * 0.75; door2.y = 2732 * 0.9; setHelp(2); setHelp(8); hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; }); var Door2 = Container.expand(function () { var self = Container.call(this); var doorGraphics = self.attachAsset('Door', { anchorX: 0.5, anchorY: 0.5 }); self.interactive = true; self.down = function (x, y, obj) { LK.getSound('doors').play(); hammer.destroy(); gameScreen.visible = true; map.visible = true; counterText.visible = true; game.magicNursery.visible = false; growthRateText.visible = true; setHelp(0); setHelp(1); setHelp(3); setHelp(9); hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; }); var GreenAxe = Container.expand(function () { var self = Container.call(this); var greenAxeGraphics = self.attachAsset('axeOfGreenCrystalsRecipe', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { if (storage.forgingSkill >= 4000 && storage.greenCrystalIngotScore >= 15) { greenAxeClicks += 1; if (greenAxeClicks >= 150) { greenAxeClicks = 0; storage.greenAxes += 1; greenAxesText.setText(storage.greenAxes.toString()); storage.forgingSkill += 150; counterText.setText('Forging skill: ' + storage.forgingSkill); storage.greenCrystalIngotScore -= 15; greenCrystalIngotScore = storage.greenCrystalIngotScore; greenCrystalIngotScoreTxt.setText('GreenCrystalIngot: ' + greenCrystalIngotScore); } greenAxeClicksText.setText('(current ' + greenAxeClicks + ')'); storage.greenAxeClicks = greenAxeClicks; } }; }); var GreenCristal = Container.expand(function () { var self = Container.call(this); var greenCristalGraphics = self.attachAsset('greenCristal', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { greenCrystallScore += 1; LK.setScore(greenCrystallScore); storage.greenCrystallScore = greenCrystallScore; greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore); greenScoreTxt.visible = true; }; }); var GreenCrystalIngot = Container.expand(function () { var self = Container.call(this); var greenCrystalIngotGraphics = self.attachAsset('greenCrystalIngot', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { if (storage.growthRate >= 3000 && greenCrystallScore >= 15) { storage.growthRate += 10; growthRateText.setText('Growth rate: ' + storage.growthRate); greenCrystalIngotScore += 1; greenCrystalIngotScoreTxt.setText('GreenCrystalIngot: ' + greenCrystalIngotScore); storage.greenCrystalIngotScore = greenCrystalIngotScore; greenCrystallScore -= 15; if (greenCrystallScore < 0) { greenCrystallScore = 0; } storage.greenCrystallScore = greenCrystallScore; greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore); } }; }); var Help = Container.expand(function () { var self = Container.call(this); var helpGraphics = self.attachAsset('help', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) {}; }); var RedCristal = Container.expand(function () { var self = Container.call(this); var redCristalGraphics = self.attachAsset('redCristal', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { redCrystallScore += 1; LK.setScore(redCrystallScore); storage.redCrystallScore = redCrystallScore; redScoreTxt.setText('Red Crystall: ' + redCrystallScore); redScoreTxt.visible = true; }; }); var RedCrystalIngot = Container.expand(function () { var self = Container.call(this); var redCrystalIngotGraphics = self.attachAsset('redCristalIngot', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { if (storage.growthRate >= 9000 && redCrystallScore >= 20) { storage.growthRate += 20; growthRateText.setText('Growth rate: ' + storage.growthRate); redCrystalIngotScore += 1; redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + redCrystalIngotScore); storage.redCrystalIngotScore = redCrystalIngotScore; redCrystallScore -= 20; if (redCrystallScore < 0) { redCrystallScore = 0; } storage.redCrystallScore = redCrystallScore; redScoreTxt.setText('Red Crystall: ' + redCrystallScore); } }; }); var RedCrystalTwoHandedSword = Container.expand(function () { var self = Container.call(this); var redCrystalTwoHandedSwordGraphics = self.attachAsset('redcrystaltwo-handedswordrecipe', { anchorX: 0.5, anchorY: 0.5, interactive: true }); self.down = function (x, y, obj) { if (storage.forgingSkill >= 10000 && storage.redCrystalIngotScore >= 75) { redCrystalTwoHandedSwordClicks += 1; if (redCrystalTwoHandedSwordClicks >= 200) { redCrystalTwoHandedSwordClicks = 0; storage.redCrystalTwoHandedSwords += 1; redCrystalTwoHandedSwordsText.setText(storage.redCrystalTwoHandedSwords.toString()); storage.forgingSkill += 210; counterText.setText('Forging skill: ' + storage.forgingSkill); storage.redCrystalIngotScore -= 75; redCrystalIngotScore = storage.redCrystalIngotScore; redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + redCrystalIngotScore); } redCrystalTwoHandedSwordClicksText.setText('(current ' + redCrystalTwoHandedSwordClicks + ')'); storage.redCrystalTwoHandedSwordClicks = redCrystalTwoHandedSwordClicks; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ var helpObj = false; var helpText = false; var substrate = false; var quest = false; function setHelp(idhelp) { if (idhelp < storage.help && helpObj) { helpObj.destroy(); substrate.destroy(); helpText.destroy(); } if (storage.help == idhelp && !quest) { if (helpObj) { helpObj.destroy(); substrate.destroy(); helpText.destroy(); } helpObj = new Help(); helpObj.x = helparray[storage.help].coords[0]; helpObj.y = helparray[storage.help].coords[1]; helpText = new Text2(helparray[storage.help].text, { size: 50, fill: helparray[storage.help].color }); if (helparray[storage.help].coords[0] < 2048 / 2) { helpText.x = helparray[storage.help].coords[0] + helpObj.width / 2 + 10; } else { helpText.x = helparray[storage.help].coords[0] - helpObj.width / 2 - 10 - helpText.width; } if (helparray[storage.help].coords[1] < 2732 / 2) { helpText.y = helparray[storage.help].coords[1] + helpObj.height / 2 + 10; } else { helpText.y = helparray[storage.help].coords[1] - helpObj.height / 2 - 10; } var questtext = helparray[storage.help].text; if (typeof helparray[storage.help].quest != 'undefined') { questtext = helparray[storage.help].quest; } quest = new Text2(' QUEST\n' + questtext, { size: 50, fill: helparray[storage.help].color }); quest.x = 625; quest.y = 100; game.addChild(quest); substrate = game.attachAsset('substrate', { anchorX: 0.5, anchorY: 0.5, alpha: helparray[storage.help].substrate.alfa }); substrate.x = helpText.x + helpText.width / 2; substrate.y = helpText.y + helpText.height / 2; substrate.width = helpText.width; substrate.height = helparray[storage.help].substrate.height; game.addChild(helpObj); var _animateHelp = function animateHelp(helpObj) { tween(helpObj, { scaleX: 0.5, scaleY: 0.5 }, { duration: 1500, easing: tween.easeInOut, onFinish: function onFinish() { tween(helpObj, { scaleX: 1, scaleY: 1 }, { duration: 1500, easing: tween.easeInOut, onFinish: function onFinish() { _animateHelp(helpObj); } }); } }); }; _animateHelp(helpObj); game.addChild(substrate); game.addChild(helpText); helpObj.down = function (x, y, obj) { storage.help++; helpObj.destroy(); substrate.destroy(); helpText.destroy(); if (storage.help <= 14) { setHelp(storage.help); } }; return helpObj; } } function setquest() { if (storage.help > 1 && !quest) { var questtext = helparray[storage.help].text; if (typeof helparray[storage.help].quest != 'undefined') { questtext = helparray[storage.help].quest; } quest = new Text2(' QUEST\n' + questtext, { size: 50, fill: helparray[storage.help].color }); quest.x = 625; quest.y = 100; game.addChild(quest); } } var helparray = [{ 'coords': [850, 2732 / 2 + 450], 'text': 'Click on the anvil to improve \nyour Forging skill by 100!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 110 } }, { 'coords': [2048 * 0.75, 2732 * 0.9], 'text': 'Now go to the foundry!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 55 } }, { 'coords': [720, 2732 / 2 + 100], 'text': 'Click on the foundry and raise the \nGrowth rate to 50!\nThen go out to the forge!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 110 } }, { 'coords': [390, 2732 - 300], 'text': 'This is a map you can use to \ntravel the world!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 110 } }, { 'coords': [885, 1220], 'text': 'Go to the crystal mine\n for resources!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 55 } }, { 'coords': [1100, 1000], 'text': 'There are three types of \ncrystals growing in \nthe mine, now we need to \nget 100 blue crystals to forge \nour first sword!', 'color': 'white', 'substrate': { 'alfa': 0.6, 'height': 275 } }, { 'coords': [1030, 1350], 'text': 'Go back to the forge!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 55 } }, { 'coords': [2048 * 0.75, 2732 * 0.9], 'text': "It's time to melt the crystals!", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 55 } }, { 'coords': [310, 2732 - 320], 'text': "Click to melt the crystals! \npay attention to the counters on top! \nMelting crystals increases your Growth rate! \nCome back to the forge when you've smelted \n10 blue crystalingots.", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 275 } }, { 'coords': [980, 2732 - 300], 'text': "This is your blacksmith's book!", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 55 } }, { 'coords': [630, 1050], 'text': 'Follow the recipe and click on the sword to forge it! \nThen explore other recipes and return to the map!', 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 110 } }, { 'coords': [780, 1500], 'text': "Let's go to the city to sell our sword! \nThe main thing is not to get lost on the way!", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 110 } }, { 'coords': [1500, 1300], 'text': "Wow, you're already here! Come to the store!", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 55 } }, { 'coords': [1028, 2732 - 280], 'text': "Click here and you will \nsell all forged weapons! \nConvenient, isn't it!? \nYou'll find something else \ninteresting to wear in the store.", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 275 } }, { 'coords': [1024, 1800], 'text': "Improve your skills! Forge \ndifferent weapons! become the most \nfamous blacksmith in these parts, \nand the richest of course!", 'color': 'white', 'substrate': { 'alfa': 0.5, 'height': 220 } }]; var goldScore = storage.goldScore || 0; var goldScoreTxt = new Text2('Gold: ' + goldScore, { size: 50, fill: 0xFFFFFF }); goldScoreTxt.anchor.set(0, 0); goldScoreTxt.y = 0; goldScoreTxt.x = 550; LK.gui.topLeft.addChild(goldScoreTxt); var redCrystalIngotScore = storage.redCrystalIngotScore || 0; var redCrystalIngotScoreTxt = new Text2('RedCrystalIngot: ' + redCrystalIngotScore, { size: 50, fill: 0xFFFFFF }); redCrystalIngotScoreTxt.anchor.set(1, 0); redCrystalIngotScoreTxt.y = 100; LK.gui.topRight.addChild(redCrystalIngotScoreTxt); var redCrystalTwoHandedSwordsText = new Text2(storage.redCrystalTwoHandedSwords.toString(), { size: 50, fill: 0x000000 }); redCrystalTwoHandedSwordsText.anchor.set(0.5, 0.5); redCrystalTwoHandedSwordsText.x = 1248 / 2; redCrystalTwoHandedSwordsText.y = 2732 / 2 + 300; LK.gui.topLeft.addChild(redCrystalTwoHandedSwordsText); var greenAxesText = new Text2(storage.greenAxes.toString(), { size: 50, fill: 0x000000 }); greenAxesText.anchor.set(0.5, 0.5); greenAxesText.x = 2848 / 2; greenAxesText.y = 2732 / 2 + 480; LK.gui.topLeft.addChild(greenAxesText); var blueSwordsText = new Text2(storage.blueSwords.toString(), { size: 50, fill: 0x000000 }); blueSwordsText.anchor.set(0.5, 0.5); blueSwordsText.x = 1248 / 2; blueSwordsText.y = 2732 / 2 + 480; LK.gui.topLeft.addChild(blueSwordsText); var mineInsideBackground; var blueCrystallScore = storage.blueCrystallScore || 0; var automineblueCrystallClicked = storage.automineblueCrystallClicked; var autominegreenCrystallClicked = storage.autominegreenCrystallClicked; var automineredCrystallClicked = storage.automineredCrystallClicked; var autogrowthRateClicked = storage.autogrowthRateClicked; var scoreTxt = new Text2('Blue Crystall: ' + blueCrystallScore, { size: 50, fill: 0xFFFFFF }); scoreTxt.anchor.set(0, 0); scoreTxt.y = 100; LK.gui.topLeft.addChild(scoreTxt); var greenCrystallScore = storage.greenCrystallScore || 0; var greenScoreTxt = new Text2('Green Crystall: ' + greenCrystallScore, { size: 50, fill: 0xFFFFFF }); greenScoreTxt.anchor.set(0, 0); greenScoreTxt.y = 150; LK.gui.topLeft.addChild(greenScoreTxt); var greenCrystalIngotScore = storage.greenCrystalIngotScore || 0; var greenCrystalIngotScoreTxt = new Text2('GreenCrystalIngot: ' + greenCrystalIngotScore, { size: 50, fill: 0xFFFFFF }); greenCrystalIngotScoreTxt.anchor.set(1, 0); greenCrystalIngotScoreTxt.y = 50; LK.gui.topRight.addChild(greenCrystalIngotScoreTxt); var blueCristal; var greenCristal; var redCristal; var blueCrystalIngotScore = storage.blueCrystalIngotScore || 0; var redCrystallScore = storage.redCrystallScore || 0; var blueCrystalIngotScoreTxt = new Text2('BlueCrystalIngot: ' + blueCrystalIngotScore, { size: 50, fill: 0xFFFFFF }); blueCrystalIngotScoreTxt.anchor.set(1, 0); blueCrystalIngotScoreTxt.y = 0; LK.gui.topRight.addChild(blueCrystalIngotScoreTxt); var redScoreTxt = new Text2('Red Crystall: ' + redCrystallScore, { size: 50, fill: 0xFFFFFF }); redScoreTxt.anchor.set(0, 0); redScoreTxt.y = 200; LK.gui.topLeft.addChild(redScoreTxt); var map = game.addChild(LK.getAsset('Map', { anchorX: 0.5, anchorY: 0.5 })); map.x = 400; map.y = 2450; map.visible = false; map.interactive = true; map.down = function (x, y, obj) { setHelp(-1); hammer.destroy(); if (storage.forgingSkill >= 10 && storage.help == 4) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 5; setHelp(5); } LK.getSound('mapaudio').play(); map.visible = false; if (mineInsideBackground) { mineInsideBackground.visible = false; mineInsideBackground.destroy(); } if (redCristal) { redCristal.visible = false; redCristal.destroy(); } if (blueCristal) { blueCristal.visible = false; blueCristal.destroy(); } if (greenCristal) { greenCristal.visible = false; greenCristal.destroy(); } var mapScreen = game.addChild(new Container()); var mapBackground = mapScreen.attachAsset('mapbackground', { anchorX: 0.5, anchorY: 0.5, interactive: false }); var cityMap = mapScreen.attachAsset('citymap', { anchorX: 0.5, anchorY: 0.5, interactive: true }); cityMap.x = -250; cityMap.y = 160; cityMap.down = function (x, y, obj) { hammer.destroy(); setHelp(-1); var isolatedScreen = game.addChild(new Container()); mapScreen.visible = false; var cityBackground = isolatedScreen.attachAsset('citybackground', { anchorX: 0.5, anchorY: 0.5 }); cityBackground.x = 0; cityBackground.y = 0; var mapAsset = isolatedScreen.attachAsset('Map', { anchorX: 0.5, anchorY: 0.5, interactive: true }); mapAsset.x = -650; mapAsset.y = 1100; mapAsset.down = function (x, y, obj) { isolatedScreen.visible = false; mapScreen.visible = true; cityBackground.visible = false; mapBackground.visible = true; }; var shop = isolatedScreen.attachAsset('shop', { anchorX: 0.5, anchorY: 0.5, interactive: true }); shop.x = 490; shop.y = -20; setHelp(12); shop.down = function (x, y, obj) { hammer.destroy(); LK.getSound('shopin').play(); var shopScreen = game.addChild(new Container()); isolatedScreen.visible = false; shopScreen.x = 2048 / 2; shopScreen.y = 2732 / 2; var newTools = shopScreen.attachAsset('newTools', { anchorX: 0.5, anchorY: 0.5 }); newTools.x = -650; newTools.y = 1100; newTools.interactive = true; newTools.down = function (x, y, obj) { hammer.destroy(); setHelp(-1); var isolatedScreen = game.addChild(new Container()); var newToolsBackground = isolatedScreen.attachAsset('newToolsBackground', { anchorX: 0.5, anchorY: 0.5 }); newToolsBackground.x = 0; newToolsBackground.y = 0; if (!storage.theBlacksmithsApprentice) { var theBlacksmithsApprentice = isolatedScreen.attachAsset('Theblacksmithsapprentice', { anchorX: 0.5, anchorY: 0.5, interactive: true }); theBlacksmithsApprentice.x = 400; theBlacksmithsApprentice.y = 200; theBlacksmithsApprentice.clicked = storage.theBlacksmithsApprentice; theBlacksmithsApprentice.down = function (x, y, obj) { if (goldScore >= 1500 && !theBlacksmithsApprentice.clicked) { goldScore -= 1500; goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; theBlacksmithsApprentice.clicked = true; var intervalId = LK.setInterval(function () { storage.forgingSkill += 1; counterText.setText('Forging skill: ' + storage.forgingSkill); }, 1000); theBlacksmithsApprentice.intervalId = intervalId; storage.theBlacksmithsApprentice = true; theBlacksmithsApprentice.visible = false; apprenticeText.visible = false; apprenticeCostText.visible = false; } }; var apprenticeText = new Text2("The blacksmith's \napprentice +1", { size: 50, fill: 0x030303 }); apprenticeText.anchor.set(0.5, 0.5); apprenticeText.x = theBlacksmithsApprentice.x; apprenticeText.y = theBlacksmithsApprentice.y + 170; isolatedScreen.addChild(apprenticeText); var apprenticeCostText = new Text2('1500G', { size: 50, fill: 0x030303 }); apprenticeCostText.anchor.set(0.5, 0.5); apprenticeCostText.x = apprenticeText.x; apprenticeCostText.y = apprenticeText.y + 70; isolatedScreen.addChild(apprenticeCostText); } var newToolsOut = isolatedScreen.attachAsset('newToolsout', { anchorX: 0.5, anchorY: 0.5 }); newToolsOut.x = 0; newToolsOut.y = 1100; newToolsOut.interactive = true; if (!storage.automineblueCrystallClicked) { var automineblueCrystall = isolatedScreen.attachAsset('automineblueCrystall', { anchorX: 0.5, anchorY: 0.5, interactive: true }); automineblueCrystall.x = -400; automineblueCrystall.y = -600; automineblueCrystall.clicked = storage.automineblueCrystallClicked; automineblueCrystall.down = function (x, y, obj) { if (goldScore >= 500 && !automineblueCrystall.clicked) { automineblueCrystall.clicked = true; goldScore -= 500; goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; var intervalId = LK.setInterval(function () { blueCrystallScore += 1; LK.setScore(blueCrystallScore); storage.blueCrystallScore = blueCrystallScore; scoreTxt.setText('Blue Crystall: ' + LK.getScore()); }, 1000); automineblueCrystall.intervalId = intervalId; storage.automineblueCrystallClicked = true; automineblueCrystall.visible = false; mineBlueCrystallText.visible = false; mineBlueCrystallCostText.visible = false; } }; var mineBlueCrystallText = new Text2('Mine Blue Crystall +1', { size: 50, fill: 0x030303 }); mineBlueCrystallText.anchor.set(0.5, 0.5); mineBlueCrystallText.x = automineblueCrystall.x; mineBlueCrystallText.y = automineblueCrystall.y + 150; isolatedScreen.addChild(mineBlueCrystallText); var mineBlueCrystallCostText = new Text2('500G', { size: 50, fill: 0x030303 }); mineBlueCrystallCostText.anchor.set(0.5, 0.5); mineBlueCrystallCostText.x = mineBlueCrystallText.x; mineBlueCrystallCostText.y = mineBlueCrystallText.y + 50; isolatedScreen.addChild(mineBlueCrystallCostText); } if (!storage.autominegreenCrystallClicked) { var autominegreenCrystall = isolatedScreen.attachAsset('autominegreenCrystall', { anchorX: 0.5, anchorY: 0.5, interactive: true }); autominegreenCrystall.x = -400; autominegreenCrystall.y = -200; autominegreenCrystall.clicked = storage.autominegreenCrystallClicked; autominegreenCrystall.down = function (x, y, obj) { if (goldScore >= 1000 && !autominegreenCrystall.clicked) { autominegreenCrystall.clicked = true; goldScore -= 1000; goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; var intervalId = LK.setInterval(function () { greenCrystallScore += 1; storage.greenCrystallScore = greenCrystallScore; greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore); }, 1000); autominegreenCrystall.intervalId = intervalId; storage.autominegreenCrystallClicked = true; autominegreenCrystall.visible = false; mineGreenCrystallText.visible = false; mineGreenCrystallCostText.visible = false; } }; var mineGreenCrystallText = new Text2('Mine Green Crystall +1', { size: 50, fill: 0x030303 }); mineGreenCrystallText.anchor.set(0.5, 0.5); mineGreenCrystallText.x = autominegreenCrystall.x; mineGreenCrystallText.y = autominegreenCrystall.y + 150; isolatedScreen.addChild(mineGreenCrystallText); var mineGreenCrystallCostText = new Text2('1000G', { size: 50, fill: 0x030303 }); mineGreenCrystallCostText.anchor.set(0.5, 0.5); mineGreenCrystallCostText.x = mineGreenCrystallText.x; mineGreenCrystallCostText.y = mineGreenCrystallText.y + 50; isolatedScreen.addChild(mineGreenCrystallCostText); } if (!storage.automineredCrystallClicked) { var automineredCrystall = isolatedScreen.attachAsset('automineredCrystall', { anchorX: 0.5, anchorY: 0.5, interactive: true }); automineredCrystall.x = -400; automineredCrystall.y = 200; automineredCrystall.clicked = storage.automineredCrystallClicked; automineredCrystall.down = function (x, y, obj) { if (goldScore >= 2000 && !automineredCrystall.clicked) { automineredCrystall.clicked = true; goldScore -= 2000; goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; var intervalId = LK.setInterval(function () { redCrystallScore += 1; storage.redCrystallScore = redCrystallScore; redScoreTxt.setText('Red Crystall: ' + redCrystallScore); }, 1000); automineredCrystall.intervalId = intervalId; storage.automineredCrystallClicked = true; automineredCrystall.visible = false; mineRedCrystallText.visible = false; mineRedCrystallCostText.visible = false; } }; var mineRedCrystallText = new Text2('Mine Red Crystall +1', { size: 50, fill: 0x030303 }); mineRedCrystallText.anchor.set(0.5, 0.5); mineRedCrystallText.x = automineredCrystall.x; mineRedCrystallText.y = automineredCrystall.y + 140; isolatedScreen.addChild(mineRedCrystallText); var mineRedCrystallCostText = new Text2('2000G', { size: 50, fill: 0x030303 }); mineRedCrystallCostText.anchor.set(0.5, 0.5); mineRedCrystallCostText.x = mineRedCrystallText.x; mineRedCrystallCostText.y = mineRedCrystallText.y + 50; isolatedScreen.addChild(mineRedCrystallCostText); } if (!storage.multiclickupgrade) { var multiclickupgrade = isolatedScreen.attachAsset('multiclickupgrade', { anchorX: 0.5, anchorY: 0.5, interactive: true }); multiclickupgrade.x = 400; multiclickupgrade.y = -200; multiclickupgrade.down = function (x, y, obj) { if (goldScore >= 700 && !storage.multiclickupgrade) { goldScore -= 700; goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; storage.multiclickupgrade = true; multiclickupgrade.visible = false; increasedChanceText.visible = false; increasedChanceCostText.visible = false; } }; var increasedChanceText = new Text2('Increased chance of \nsuccessful forging +5%', { size: 50, fill: 0x030303 }); increasedChanceText.anchor.set(0.5, 0.5); increasedChanceText.x = multiclickupgrade.x; increasedChanceText.y = multiclickupgrade.y + 170; isolatedScreen.addChild(increasedChanceText); var increasedChanceCostText = new Text2('700G', { size: 50, fill: 0x030303 }); increasedChanceCostText.anchor.set(0.5, 0.5); increasedChanceCostText.x = increasedChanceText.x; increasedChanceCostText.y = increasedChanceText.y + 70; isolatedScreen.addChild(increasedChanceCostText); } if (!storage.autogrowthRateClicked) { var autogrowthRate = isolatedScreen.attachAsset('autogrowthRate', { anchorX: 0.5, anchorY: 0.5, interactive: true }); autogrowthRate.x = 400; autogrowthRate.y = -600; autogrowthRate.clicked = storage.autogrowthRateClicked; autogrowthRate.down = function (x, y, obj) { if (goldScore >= 2000 && !autogrowthRate.clicked) { autogrowthRate.clicked = true; goldScore -= 2000; goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; var intervalId = LK.setInterval(function () { growthRateCounter += 1; growthRateText.setText('Growth rate: ' + growthRateCounter); storage.growthRate = growthRateCounter; }, 1000); autogrowthRate.intervalId = intervalId; storage.autogrowthRateClicked = true; autogrowthRate.visible = false; automaticMeltingText.visible = false; automaticMeltingCostText.visible = false; } }; var automaticMeltingText = new Text2('Automatic melting +1', { size: 50, fill: 0x030303 }); automaticMeltingText.anchor.set(0.5, 0.5); automaticMeltingText.x = autogrowthRate.x; automaticMeltingText.y = autogrowthRate.y + 150; isolatedScreen.addChild(automaticMeltingText); var automaticMeltingCostText = new Text2('2000G', { size: 50, fill: 0x030303 }); automaticMeltingCostText.anchor.set(0.5, 0.5); automaticMeltingCostText.x = automaticMeltingText.x; automaticMeltingCostText.y = automaticMeltingText.y + 50; isolatedScreen.addChild(automaticMeltingCostText); } newToolsOut.down = function (x, y, obj) { LK.getSound('booksaudio').play(); isolatedScreen.visible = false; shopScreen.visible = true; }; shopScreen.visible = false; isolatedScreen.x = 2048 / 2; isolatedScreen.y = 2732 / 2; hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; var shopBackground = shopScreen.attachAsset('shopbackground', { anchorX: 0.5, anchorY: 0.5 }); shopBackground.x = 0; shopBackground.y = 0; var newBuildings = shopScreen.attachAsset('sellweapons', { anchorX: 0.5, anchorY: 0.5, interactive: true }); newBuildings.down = function (x, y, obj) { var initialBlueSwords = storage.blueSwords; var initialGreenAxes = storage.greenAxes; var initialRedTwoHandedSwords = storage.redCrystalTwoHandedSwords; goldScore += storage.blueSwords * 50; storage.blueSwords = 0; blueSwordsText.setText('0'); goldScore += storage.greenAxes * 150; storage.greenAxes = 0; greenAxesText.setText('0'); goldScore += storage.redCrystalTwoHandedSwords * 600; storage.redCrystalTwoHandedSwords = 0; redCrystalTwoHandedSwordsText.setText('0'); goldScoreTxt.setText('Gold: ' + goldScore); storage.goldScore = goldScore; if (initialBlueSwords > 0 || initialGreenAxes > 0 || initialRedTwoHandedSwords > 0) { LK.getSound('gold').play(); for (var i = 0; i < 5; i++) { var goldAsset = game.addChild(LK.getAsset('goldstore', { anchorX: 0.5, anchorY: 0.5 })); goldAsset.x = shopScreen.x + newBuildings.x + (Math.random() * 50 - 25); goldAsset.y = shopScreen.y + newBuildings.y; (function (goldAsset) { var speed = 3 + Math.random() * 3; goldAsset.update = function () { goldAsset.y -= speed; }; LK.setTimeout(function () { goldAsset.destroy(); }, 1000); })(goldAsset); } if (storage.help == 13) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 14; setHelp(14); } } }; newBuildings.x = 0; newBuildings.y = 1100; var shopOut = shopScreen.attachAsset('shopout', { anchorX: 0.5, anchorY: 0.5, interactive: true }); shopOut.x = 650; shopOut.y = 1100; shopOut.down = function (x, y, obj) { setHelp(14); LK.getSound('doors').play(); shopScreen.visible = false; mapBackground.visible = false; mapScreen.visible = true; isolatedScreen.visible = true; }; setHelp(13); hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; isolatedScreen.x = 2048 / 2; isolatedScreen.y = 2732 / 2; hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; var anvilMap = mapScreen.attachAsset('anvilmap', { anchorX: 0.5, anchorY: 0.5, interactive: true }); var mine = mapScreen.attachAsset('mine', { anchorX: 0.5, anchorY: 0.5, interactive: true }); mine.x -= 150; mine.y -= 150; mine.down = function (x, y, obj) { if (storage.help == 5) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 6; setHelp(6); } hammer.destroy(); setHelp(-1); var mineScreen = game.addChild(new Container()); map.visible = true; mapScreen.visible = false; background.visible = false; mineInsideBackground = mineScreen.attachAsset('mineinsidebackground', { anchorX: 0.5, anchorY: 0.5, interactive: false, zIndex: -1 }); setHelp(5); redCristal = mineScreen.addChild(new RedCristal()); redCristal.x -= 510; redCristal.y += 490; greenCristal = mineScreen.addChild(new GreenCristal()); greenCristal.x -= -510; greenCristal.y += 10; blueCristal = mineScreen.addChild(new BlueCristal()); blueCristal.x += 490; blueCristal.y += -60; blueCristal.x -= 410; blueCristal.y -= 310; mineScreen.x = 2048 / 2; mineScreen.y = 2732 / 2; hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; anvilMap.down = function (x, y, obj) { if (storage.help == 7) { if (quest && typeof quest.destroy === 'function') { quest.destroy(); } quest = false; storage.help = 8; setHelp(8); } setHelp(-1); gameScreen.visible = true; map.visible = true; gameScreenBackground = gameScreen.attachAsset('gameScreenBackground', { anchorX: 0.5, anchorY: 0.5 }); setHelp(0); setHelp(1); setHelp(7); setHelp(10); var recipes = gameScreenBackground.attachAsset('recipes', { anchorX: 0.5, anchorY: 0.5 }); recipes.x = gameScreenBackground.width / 2 - 1050; recipes.y = gameScreenBackground.height / 2 + 150; if (mineInsideBackground) { mineInsideBackground.visible = false; mineInsideBackground.destroy(); } if (blueCristal) { blueCristal.visible = false; blueCristal.destroy(); } if (greenCristal) { greenCristal.visible = false; greenCristal.destroy(); } if (redCristal) { redCristal.visible = false; redCristal.destroy(); } mapScreen.visible = false; counterText.visible = true; growthRateText.visible = true; }; setHelp(-1); gameScreen.visible = false; background.visible = false; mapScreen.x = 2048 / 2; mapScreen.y = 2732 / 2; setHelp(3); setHelp(4); setHelp(6); setHelp(11); hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; var growthRateText; var growthRateCounter = storage.growthRate; var background = game.addChild(new Container()); background.width = 2048; background.height = 2732; background.x = 2048 / 2; background.y = 2732 / 2; var backgroundGraphics = background.attachAsset('background', { anchorX: 0.5, anchorY: 0.5 }); var gameScreen = game.addChild(new Container()); var newGame = game.addChild(new Container()); newGame.x = 2650 / 2 + 100; newGame.y = 2680 * 4.2 / 5; var title = game.addChild(LK.getAsset('title', { anchorX: 0.5, anchorY: 0.5 })); title.x = 2048 / 2; title.y = 3200 / 5; var newGameText = newGame.attachAsset('newGameText', { anchorX: 0.5, anchorY: 0.5, stroke: 0xFFFFFF, strokeThickness: 5 }); var continueText = game.addChild(LK.getAsset('continueText', { anchorX: 0.5, anchorY: 0.5 })); continueText.x = newGame.x - newGame.width - 500; continueText.y = newGame.y; continueText.interactive = true; continueText.down = function (x, y, obj) { startgame(); }; var greenAxeClicks = storage.greenAxeClicks; var redCrystalTwoHandedSwordClicks = storage.redCrystalTwoHandedSwordClicks; function startgame() { setquest(); title.destroy(); hammer.destroy(); gameScreen = game.addChild(new Container()); gameScreen.x = 2048 / 2; gameScreen.y = 2732 / 2; gameScreenBackground = gameScreen.attachAsset('gameScreenBackground', { anchorX: 0.5, anchorY: 0.5 }); var recipes = gameScreenBackground.attachAsset('recipes', { anchorX: 0.5, anchorY: 0.5, interactive: true }); recipes.down = function (x, y, obj) { setHelp(-1); hammer.destroy(); LK.getSound('booksaudio').play(); var recipesScreen = game.addChild(new Container()); map.visible = false; var recipesBackground = recipesScreen.attachAsset('recipesbackground', { anchorX: 0.5, anchorY: 0.5 }); recipesBackground.x = 2048 / 2; recipesBackground.y = 2732 / 2; var blueCrystalSword = recipesScreen.addChild(new BlueCrystalSword()); blueCrystalSword.x = 1248 / 2; blueCrystalSword.y = 2132 / 2; setHelp(10); var swordsInStockText = new Text2('Swords in stock', { size: 50, fill: 0x000000 }); swordsInStockText.anchor.set(0.5, 0.5); swordsInStockText.x = 1248 / 2; swordsInStockText.y = 2732 / 2 + 400; var axeInStockText = new Text2('Axe in stock', { size: 50, fill: 0x000000 }); axeInStockText.anchor.set(0.5, 0.5); axeInStockText.x = 2848 / 2; axeInStockText.y = 2732 / 2 + 400; recipesScreen.addChild(axeInStockText); recipesScreen.addChild(swordsInStockText); blueSwordsText.x = 1248 / 2; blueSwordsText.y = swordsInStockText.y + 80; recipesScreen.addChild(blueSwordsText); var greenAxe = recipesScreen.addChild(new GreenAxe()); greenAxe.x = 2848 / 2; greenAxe.y = 2132 / 2; greenAxesText.x = 2848 / 2; greenAxesText.y = swordsInStockText.y + 80; recipesScreen.addChild(greenAxesText); var greenAxeClicksText = new Text2('(current ' + greenAxeClicks + ')', { size: 50, fill: 0x000000, alpha: 0.5 }); greenAxeClicksText.anchor.set(0.5, 0.5); greenAxeClicksText.x = 2848 / 2 - 150; greenAxeClicksText.y = 2732 / 2 + 330; recipesScreen.addChild(greenAxeClicksText); var blueCrystalSwordDescription = new Text2('"Blue Crystal Sword"\n Forging Skill 100.\n 10 blue crystal ingots +\n 100 clicks on the recipe', { size: 50, fill: 0x000000, alpha: 0.5 }); blueCrystalSwordDescription.anchor.set(0.5, 0.5); blueCrystalSwordDescription.x = 1248 / 2; blueCrystalSwordDescription.y = 2732 / 2 + 200; recipesScreen.addChild(blueCrystalSwordDescription); var blueCrystalSwordClicks = new Text2('(current ' + storage.blueswordsclick + ')', { size: 50, fill: 0x000000, alpha: 0.5 }); blueCrystalSwordClicks.anchor.set(0.5, 0.5); blueCrystalSwordClicks.x = 1248 / 2 - 150; blueCrystalSwordClicks.y = 2732 / 2 + 330; recipesScreen.addChild(blueCrystalSwordClicks); var axeOfGreenCrystalsDescription = new Text2('"Axe of Green Crystals"\n Forging Skill 4k.\n 15 green crystal ingots +\n 150 clicks on the recipe', { size: 50, fill: 0x000000, alpha: 0.5 }); axeOfGreenCrystalsDescription.anchor.set(0.5, 0.5); axeOfGreenCrystalsDescription.x = 2848 / 2; axeOfGreenCrystalsDescription.y = 2732 / 2 + 200; recipesScreen.addChild(axeOfGreenCrystalsDescription); var recipesNext = recipesScreen.attachAsset('recipesnext', { anchorX: 0.5, anchorY: 0.5, interactive: true }); recipesNext.x = 3248 / 2; recipesNext.y = 5000 / 2; recipesNext.down = function (x, y, obj) { var nextScreen = game.addChild(new Container()); LK.getSound('paper').play(); recipesScreen.visible = false; var recipesNextBackgr1 = nextScreen.attachAsset('recipesnextbackgr1', { anchorX: 0.5, anchorY: 0.5 }); recipesNextBackgr1.x = 2048 / 2; recipesNextBackgr1.y = 2732 / 2; hammer.destroy(); var recipesPrev = nextScreen.attachAsset('recipesprev', { anchorX: 0.5, anchorY: 0.5, interactive: true }); recipesPrev.x = 888 / 2; recipesPrev.y = 5000 / 2; recipesPrev.down = function (x, y, obj) { LK.getSound('paper').play(); nextScreen.visible = false; recipesScreen.visible = true; }; var blueingotrecipe = nextScreen.attachAsset('blueingotrecipe', { anchorX: 0.5, anchorY: 0.5 }); blueingotrecipe.x = 1450; blueingotrecipe.y = 750; var blueIngotRecipeText = new Text2('"BlueCrystalIngot"\n Growth rate 100.\n 10 Blue Crystal', { size: 50, fill: 0x000000 }); blueIngotRecipeText.anchor.set(0.5, 0.5); blueIngotRecipeText.x = blueingotrecipe.x; blueIngotRecipeText.y = blueingotrecipe.y + 150; nextScreen.addChild(blueIngotRecipeText); var greeningotrecipe = nextScreen.attachAsset('greeningotrecipe', { anchorX: 0.5, anchorY: 0.5 }); greeningotrecipe.x = 1450; greeningotrecipe.y = 1150; var greeningotrecipeText = new Text2('"Greeningotrecipe"\n Growth rate 2000.\n 10 Green Crystal', { size: 50, fill: 0x000000 }); greeningotrecipeText.anchor.set(0.5, 0.5); greeningotrecipeText.x = greeningotrecipe.x; greeningotrecipeText.y = greeningotrecipe.y + 160; nextScreen.addChild(greeningotrecipeText); var redingotrecipe = nextScreen.attachAsset('redingotrecipe', { anchorX: 0.5, anchorY: 0.5 }); redingotrecipe.x = 1450; redingotrecipe.y = 1500; var redingotrecipeText = new Text2('"Redingotrecipe"\n Growth rate 7000.\n 10 Red Crystal', { size: 50, fill: 0x000000 }); redingotrecipeText.anchor.set(0.5, 0.5); redingotrecipeText.x = redingotrecipe.x; redingotrecipeText.y = redingotrecipe.y + 150; nextScreen.addChild(redingotrecipeText); var redCrystalTwoHandedSword = nextScreen.addChild(new RedCrystalTwoHandedSword()); redCrystalTwoHandedSword.x = 1248 / 2; redCrystalTwoHandedSword.y = 2132 / 2; var twoHandSwordsInStockText = new Text2('Two-hand Swords in stock', { size: 50, fill: 0x000000 }); twoHandSwordsInStockText.anchor.set(0.5, 0.5); twoHandSwordsInStockText.x = 1248 / 2; twoHandSwordsInStockText.y = 2732 / 2 + 400; nextScreen.addChild(twoHandSwordsInStockText); redCrystalTwoHandedSwordsText.x = 1248 / 2; redCrystalTwoHandedSwordsText.y = twoHandSwordsInStockText.y + 80; nextScreen.addChild(redCrystalTwoHandedSwordsText); var redCrystalTwoHandedSwordDescription = new Text2('"Redcrystaltwo-\n handedswordrecipe"\n Forging Skill 10k.\n 75 red crystal ingots +\n 200 clicks on the anvil', { size: 50, fill: 0x000000 }); redCrystalTwoHandedSwordDescription.anchor.set(0.5, 0.5); redCrystalTwoHandedSwordDescription.x = 1248 / 2; redCrystalTwoHandedSwordDescription.y = 2732 / 2 + 200; nextScreen.addChild(redCrystalTwoHandedSwordDescription); var redCrystalTwoHandedSwordClicksText = new Text2('(current ' + redCrystalTwoHandedSwordClicks + ')', { size: 50, fill: 0x000000, alpha: 0.5 }); redCrystalTwoHandedSwordClicksText.anchor.set(0.5, 0.5); redCrystalTwoHandedSwordClicksText.x = 1248 / 2 - 135; redCrystalTwoHandedSwordClicksText.y = 2732 / 2 + 330; nextScreen.addChild(redCrystalTwoHandedSwordClicksText); hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); }; var recipesOutGraphics = recipesScreen.attachAsset('recipesout', { anchorX: 0.5, anchorY: 0.5, interactive: true }); recipesOutGraphics.x = 2048 / 2; recipesOutGraphics.y = 2732 / 2 + 1100; recipesOutGraphics.down = function (x, y, obj) { recipesOutGraphics.visible = false; gameScreen.visible = true; map.visible = true; recipesScreen.visible = false; setHelp(0); setHelp(1); setHelp(3); setHelp(7); if (storage.blueSwords >= 1 && storage.help == 11) { setHelp(11); } }; gameScreen.visible = false; }; recipes.x = gameScreenBackground.width / 2 - 1050; recipes.y = gameScreenBackground.height / 2 + 150; map.visible = true; newGame.visible = false; continueText.visible = false; background.visible = false; var anvil = gameScreen.addChild(new Anvil()); anvil.clickCounter = storage.forgingSkill; counterText.setText('Forging skill: ' + anvil.clickCounter); anvil.x = gameScreenBackground.x - 100; anvil.y = gameScreenBackground.y + 500; var magicNursery = gameScreen.addChild(new Door()); magicNursery.x = 2048 / 4; magicNursery.y = 2732 / 2.5; setHelp(0); setHelp(1); setHelp(3); setHelp(7); setHelp(9); hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); } newGame.interactive = true; newGame.down = function (x, y, obj) { if (newgameclearInterval.length > 0) { for (var i = 0; i < newgameclearInterval.length; i++) { LK.clearInterval(newgameclearInterval[i]); } } storage.automineblueCrystallClicked = false; storage.autominegreenCrystallClicked = false; storage.automineredCrystallClicked = false; storage.autogrowthRateClicked = false; storage.theBlacksmithsApprentice = false; storage.multiclickupgrade = false; storage.help = 0; storage.forgingSkill = 0; storage.growthRate = 0; storage.blueCrystalIngotScore = 0; storage.blueCrystallScore = 0; storage.greenCrystalIngotScore = 0; storage.redCrystallScore = 0; storage.redCrystalIngotScore = 0; storage.greenCrystallScore = 0; storage.blueSwords = 0; storage.goldScore = 0; storage.blueswordsclick = 0; storage.greenAxeClicks = 0; storage.redCrystalTwoHandedSwordClicks = 0; redCrystalIngotScore = 0; blueCrystallScore = 0; greenCrystallScore = 0; greenCrystalIngotScore = 0; blueCrystalIngotScore = 0; redCrystallScore = 0; growthRateCounter = 0; goldScore = 0; growthRateText.setText('Growth rate: ' + storage.growthRate); counterText.setText('Forging skill: ' + storage.forgingSkill); scoreTxt.setText('Blue Crystall: ' + blueCrystallScore); greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore); redScoreTxt.setText('Red Crystall: ' + redCrystallScore); blueCrystalIngotScoreTxt.setText('BlueCrystalIngot: ' + storage.blueCrystalIngotScore); greenCrystalIngotScoreTxt.setText('GreenCrystalIngot: ' + storage.greenCrystalIngotScore); redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + storage.redCrystallScore); goldScoreTxt.setText('Gold: ' + goldScore); startgame(); }; var counterText = new Text2('Forging skill: ' + storage.forgingSkill, { size: 50, fill: 0xFFFFFF }); counterText.anchor.set(0, 0); LK.gui.topLeft.addChild(counterText); counterText.y = 0; counterText.x = 0; growthRateText = new Text2('Growth rate: ' + growthRateCounter, { size: 50, fill: 0xFFFFFF }); growthRateText.anchor.set(0, 0); LK.gui.topLeft.addChild(growthRateText); growthRateText.y = counterText.height - 6; growthRateText.x = 0; var hammer = game.addChild(LK.getAsset('hammer', { anchorX: 0.5, anchorY: 0.5, scaleX: -1 })); function updateHammerPosition(x, y) { if (hammer) { hammer.x = x; hammer.y = y; } } var newgameclearInterval = []; if (automineblueCrystallClicked) { var intervalId = LK.setInterval(function () { blueCrystallScore += 1; LK.setScore(blueCrystallScore); storage.blueCrystallScore = blueCrystallScore; scoreTxt.setText('Blue Crystall: ' + LK.getScore()); }, 1000); newgameclearInterval.push(intervalId); } if (autominegreenCrystallClicked) { var intervalId = LK.setInterval(function () { greenCrystallScore += 1; storage.greenCrystallScore = greenCrystallScore; greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore); }, 1000); newgameclearInterval.push(intervalId); } if (automineredCrystallClicked) { var intervalId = LK.setInterval(function () { redCrystallScore += 1; storage.redCrystallScore = redCrystallScore; redScoreTxt.setText('Red Crystall: ' + redCrystallScore); }, 1000); newgameclearInterval.push(intervalId); } if (autogrowthRateClicked) { var intervalId = LK.setInterval(function () { growthRateCounter += 1; growthRateText.setText('Growth rate: ' + growthRateCounter); storage.growthRate = growthRateCounter; }, 1000); newgameclearInterval.push(intervalId); } if (storage.theBlacksmithsApprentice) { var intervalId = LK.setInterval(function () { storage.forgingSkill += 1; counterText.setText('Forging skill: ' + storage.forgingSkill); }, 1000); newgameclearInterval.push(intervalId); } var seconds = Math.floor(Date.now() / 1000) - storage.lastgametime; if (seconds * 60 * 5 > 18000) { seconds = 18000; } if (seconds > 0) { if (storage.automineblueCrystallClicked) { blueCrystallScore += seconds; storage.blueCrystallScore += seconds; } if (storage.autominegreenCrystallClicked) { greenCrystallScore += seconds; storage.greenCrystallScore += seconds; } if (storage.automineredCrystallClicked) { redCrystallScore += seconds; storage.redCrystallScore += seconds; } if (storage.autogrowthRateClicked) { growthRateCounter += seconds; storage.growthRate += seconds; } if (storage.theBlacksmithsApprentice) { storage.forgingSkill += seconds; } } var intervalId = LK.setInterval(function () { storage.lastgametime = Math.floor(Date.now() / 1000); }, 1000); game.move = function (x, y, obj) { updateHammerPosition(x, y); }; game.down = function (x, y, obj) { LK.getSound('hammer').play(); tween(hammer, { rotation: -Math.PI / 2 }, { duration: 125, easing: tween.easeInOut, onFinish: function onFinish() { for (var i = 0; i < 5; i++) { var star = game.addChild(LK.getAsset('star', { anchorX: 0.5, anchorY: 0.5 })); star.x = hammer.x - hammer.width / 2 + Math.random() * 100 - 25; star.y = hammer.y + hammer.height / 2 + Math.random() * 100 - 25; (function (star) { star.update = function () { star.y -= 5; if (star.x < hammer.x) { star.x += 2; } else { star.x -= 2; } }; LK.setTimeout(function () { star.destroy(); }, 250); })(star); } tween(hammer, { rotation: 0 }, { duration: 125, easing: tween.easeInOut }); } }); };
===================================================================
--- original.js
+++ change.js
@@ -19,71 +19,62 @@
multiclickupgrade: false,
theBlacksmithsApprentice: false,
automineredCrystallClicked: false,
lastgametime: 0,
- help: 0
+ help: 0,
+ goldScore: 0,
+ greenCrystallScore: 0,
+ redCrystallScore: 0,
+ redCrystalIngotScore: 0
});
/****
* Classes
****/
-// Create a new class for the anvil object
var Anvil = Container.expand(function () {
var self = Container.call(this);
- // Attach 'anvil' asset to the 'Anvil' object
var anvilGraphics = self.attachAsset('anvil', {
anchorX: 0.6,
anchorY: 0.6,
- alpha: 0.0 // Make the anvil fully transparent
+ alpha: 0.0
});
- // Initialize the click counter
self.clickCounter = storage.forgingSkill;
- // Make the 'Anvil' object interactive
self.interactive = true;
- // Define the 'down' event handler
self.down = function (x, y, obj) {
- // Increment the click counter
self.clickCounter++;
- // Add a 5% chance for a multi-click event to increase forging skill by 5
var shans = 0.02;
if (storage.multiclickupgrade) {
shans += 0.02;
}
- if (Math.random() < 0.02) {
+ if (Math.random() < shans) {
self.clickCounter += 5;
- // Create a new asset at the center of the screen
var newAsset = game.addChild(LK.getAsset('multyclick', {
anchorX: 0.5,
anchorY: 0.5
}));
- // Position the new asset at the center of the screen
newAsset.x = 2048 / 2;
newAsset.y = 2732 / 2;
- // Animate the scaling of the new asset
tween(newAsset, {
scaleX: 2,
scaleY: 2
}, {
duration: 500,
easing: tween.easeInOut,
onFinish: function onFinish() {
- newAsset.destroy(); // Remove the asset after the animation
+ newAsset.destroy();
}
});
}
- // Update the text object with the click counter and label
counterText.setText('Forging skill: ' + self.clickCounter);
- // Persist the click counter
storage.forgingSkill = self.clickCounter;
- // Change the color of the counter text based on the click counter
if (self.clickCounter >= 1000 && self.clickCounter < 2000) {
- counterText.tint = 0x00FF00; // Green
+ counterText.tint = 0x00FF00;
} else if (self.clickCounter >= 2000 && self.clickCounter < 15000) {
- counterText.tint = 0x0000FF; // Blue
+ counterText.tint = 0x0000FF;
} else if (self.clickCounter >= 15000 && self.clickCounter < 30000) {
- counterText.tint = 0x800080; // Purple
+ counterText.tint = 0x800080;
} else if (self.clickCounter >= 30000) {
- counterText.tint = 0xcc7c04; // Purple
+ counterText.tint = 0xcc7c04;
}
if (storage.forgingSkill >= 100 && storage.help == 1) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
@@ -92,35 +83,31 @@
setHelp(1);
}
};
});
-// Create a new class for the BlueCristal object
var BlueCristal = Container.expand(function () {
var self = Container.call(this);
- // Attach 'blueCristal' asset to the 'BlueCristal' object
var blueCristalGraphics = self.attachAsset('blueCristal', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the blueCristal interactive
+ interactive: true
});
- // Define the 'down' event handler for blueCristal
self.down = function (x, y, obj) {
- // Increment the score by 1
blueCrystallScore += 1;
if (blueCrystallScore >= 100 && storage.help == 6) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
}
quest = false;
+ storage.help = 7;
+ setHelp(7);
}
LK.setScore(blueCrystallScore);
storage.blueCrystallScore = blueCrystallScore;
- // Update the score text
scoreTxt.setText('Blue Crystall: ' + LK.getScore());
- scoreTxt.visible = true; // Ensure the score text remains visible
+ scoreTxt.visible = true;
};
});
-// Create a new class for the BlueCrystalIngot object
var BlueCrystalIngot = Container.expand(function () {
var self = Container.call(this);
var blueCrystalIngotGraphics = self.attachAsset('blueCrystalIngot', {
anchorX: 0.5,
@@ -140,119 +127,118 @@
}
storage.blueCrystallScore = blueCrystallScore;
LK.setScore(blueCrystallScore);
scoreTxt.setText('Blue Crystall: ' + LK.getScore());
- // Проверка завершения квеста 9
if (blueCrystalIngotScore >= 10 && storage.help == 9) {
if (quest && typeof quest.destroy === 'function') {
- quest.destroy(); // Уничтожаем квест 9
+ quest.destroy();
}
quest = false;
- storage.help = 10; // Явно устанавливаем шаг 10
- setHelp(10); // Вызываем подсказку 10
+ storage.help = 10;
+ setHelp(10);
}
}
};
});
-// Create a new class for the Door object
+var BlueCrystalSword = Container.expand(function () {
+ var self = Container.call(this);
+ var blueCrystalSwordGraphics = self.attachAsset('bluecrystalswordrecipe', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ interactive: true
+ });
+ self.down = function (x, y, obj) {
+ if (storage.forgingSkill >= 100 && storage.blueCrystalIngotScore >= 10) {
+ storage.blueswordsclick += 1;
+ if (storage.blueswordsclick >= 100) {
+ storage.blueswordsclick = 0;
+ storage.blueSwords += 1;
+ blueSwordsText.setText(storage.blueSwords.toString());
+ storage.forgingSkill += 100;
+ counterText.setText('Forging skill: ' + storage.forgingSkill);
+ storage.blueCrystalIngotScore -= 10;
+ blueCrystalIngotScore = storage.blueCrystalIngotScore;
+ blueCrystalIngotScoreTxt.setText('BlueCrystalIngot: ' + blueCrystalIngotScore);
+ if (storage.blueSwords >= 1 && storage.help == 11) {
+ if (quest && typeof quest.destroy === 'function') {
+ quest.destroy();
+ }
+ quest = false;
+ storage.help = 12;
+ setHelp(12);
+ }
+ }
+ blueCrystalSwordClicks.setText('(current ' + storage.blueswordsclick + ')');
+ }
+ };
+});
var Door = Container.expand(function () {
var self = Container.call(this);
- // Attach 'Door' asset to the 'Door' object
var doorGraphics = self.attachAsset('Door', {
anchorX: 0.5,
anchorY: 0.5
});
- // Make the 'Door' object interactive
self.interactive = true;
- // Define the 'down' event handler
self.down = function (x, y, obj) {
- if (storage.help == 2) {
+ if (storage.help == 2 || storage.help == 8) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
}
quest = false;
}
- if (storage.help == 8) {
- if (quest && typeof quest.destroy === 'function') {
- quest.destroy();
- }
- quest = false;
- }
LK.getSound('doors').play();
- // Remove the existing hammer
hammer.destroy();
- // Create a new screen
game.magicNursery = game.addChild(new Container());
- // Attach 'magicNurseryBackground' asset to the 'magicNursery' object
var magicNurseryBackground = game.magicNursery.attachAsset('magicNurseryBackground', {
anchorX: 0.5,
anchorY: 0.5,
interactive: false,
- // Disable interactivity to prevent blurring on click
scaleX: 2,
- // Double the size horizontally
- scaleY: 2 // Double the size vertically
+ scaleY: 2
});
- // Recreate the hammer asset
magicNurseryBackground.x = 2048 / 2;
magicNurseryBackground.y = 2732 / 2;
- // Attach 'ForgeOfMatter' asset to the 'magicNursery' object
- var forgeOfMatter = game.magicNursery.attachAsset('ForgeOfMatter', {
+ var forgeOfMatter = game.magicNursery.attachAsset('growthRate', {
anchorX: 0.5,
anchorY: 0.5,
interactive: true,
scaleX: 3,
- // Increase the size horizontally
scaleY: 3,
- // Increase the size vertically
- alpha: 0.0 // Make the ForgeOfMatter fully transparent
+ alpha: 0.0
});
- // Create and add a new instance of the BlueCrystalIngot class
- var blueCrystalIngot = game.magicNursery.addChild(new BlueCrystalIngot()); //{P.1}
- // Position the blueCrystalIngot asset in the bottom-left corner
+ var blueCrystalIngot = game.magicNursery.addChild(new BlueCrystalIngot());
blueCrystalIngot.x = 200 + blueCrystalIngot.width / 2;
blueCrystalIngot.y = 2500 - blueCrystalIngot.height / 2;
- // Create and add a new instance of the RedCrystalIngot class
var redCrystalIngot = game.magicNursery.addChild(new RedCrystalIngot());
- // Center the redCrystalIngot asset in the magicNursery screen
- redCrystalIngot.x = 1300 / 2 + 350; // Move the redCristalIngot asset 100 pixels to the right
+ redCrystalIngot.x = 1300 / 2 + 350;
redCrystalIngot.y = 4820 / 2;
- // Create and add a new instance of the GreenCrystalIngot class
var greenCrystalIngotInstance = game.magicNursery.addChild(new GreenCrystalIngot());
- // Position the greenCrystalIngotInstance asset to the right of the blueCrystalIngot asset
greenCrystalIngotInstance.x = blueCrystalIngot.x + blueCrystalIngot.width + greenCrystalIngotInstance.width / 2 + 40;
greenCrystalIngotInstance.y = blueCrystalIngot.y;
- // Center the growthRate asset in the magicNursery screen
var growthRate = game.magicNursery.addChild(LK.getAsset('growthRate', {
anchorX: 0.7,
anchorY: 0.7
}));
growthRate.x = 780;
growthRate.y = 1500;
- // Define the 'down' event handler for ForgeOfMatter
forgeOfMatter.down = function (x, y, obj) {
- // Increment the click counter
storage.growthRate++;
- // Update the text object with the click counter and label
growthRateText.setText('Growth rate: ' + storage.growthRate);
if (storage.growthRate >= 50 && storage.help == 3) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
}
quest = false;
+ storage.help = 4;
+ setHelp(4);
}
};
forgeOfMatter.x = 1100 / 1.5;
forgeOfMatter.y = 2000 / 1.5;
- // Hide the game screen
gameScreen.visible = false;
- // Show the forging skill counter when transitioning to magicNursery
counterText.visible = true;
- // Hide the map when switching to the magic nursery screen
map.visible = false;
- // Add a new object 'Door2'
var door2 = game.magicNursery.addChild(new Door2());
- // Position 'Door2' to the right, between the center and the edge of the screen
door2.x = 2048 * 0.75;
door2.y = 2732 * 0.9;
setHelp(2);
setHelp(8);
@@ -262,89 +248,93 @@
scaleX: -1
}));
};
});
-// Create a new class for the Door2 object
var Door2 = Container.expand(function () {
var self = Container.call(this);
- // Attach 'Door' asset to the 'Door2' object
var doorGraphics = self.attachAsset('Door', {
anchorX: 0.5,
anchorY: 0.5
});
- // Make the 'Door2' object interactive
self.interactive = true;
- // Define the 'down' event handler
self.down = function (x, y, obj) {
LK.getSound('doors').play();
- // Remove the existing hammer
hammer.destroy();
- // Show the Anvil screen
gameScreen.visible = true;
- // Show the map only on the anvil screen
map.visible = true;
- // Show the counter display
counterText.visible = true;
- // Hide the Magic Nursery screen
game.magicNursery.visible = false;
- // Show the Growth rate counter when transitioning to anvil
growthRateText.visible = true;
setHelp(0);
setHelp(1);
setHelp(3);
setHelp(9);
- // Recreate the hammer asset
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
});
-// Create a new class for the GreenCristal object
+var GreenAxe = Container.expand(function () {
+ var self = Container.call(this);
+ var greenAxeGraphics = self.attachAsset('axeOfGreenCrystalsRecipe', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ interactive: true
+ });
+ self.down = function (x, y, obj) {
+ if (storage.forgingSkill >= 4000 && storage.greenCrystalIngotScore >= 15) {
+ greenAxeClicks += 1;
+ if (greenAxeClicks >= 150) {
+ greenAxeClicks = 0;
+ storage.greenAxes += 1;
+ greenAxesText.setText(storage.greenAxes.toString());
+ storage.forgingSkill += 150;
+ counterText.setText('Forging skill: ' + storage.forgingSkill);
+ storage.greenCrystalIngotScore -= 15;
+ greenCrystalIngotScore = storage.greenCrystalIngotScore;
+ greenCrystalIngotScoreTxt.setText('GreenCrystalIngot: ' + greenCrystalIngotScore);
+ }
+ greenAxeClicksText.setText('(current ' + greenAxeClicks + ')');
+ storage.greenAxeClicks = greenAxeClicks;
+ }
+ };
+});
var GreenCristal = Container.expand(function () {
var self = Container.call(this);
- // Attach 'greenCristal' asset to the 'GreenCristal' object
var greenCristalGraphics = self.attachAsset('greenCristal', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the greenCristal interactive
+ interactive: true
});
- // Define the 'down' event handler for greenCristal
self.down = function (x, y, obj) {
- // Increment the score by 1
greenCrystallScore += 1;
LK.setScore(greenCrystallScore);
storage.greenCrystallScore = greenCrystallScore;
- // Update the score text
greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore);
- greenScoreTxt.visible = true; // Ensure the score text remains visible
+ greenScoreTxt.visible = true;
};
});
-// Create a new class for the GreenCrystalIngot object
var GreenCrystalIngot = Container.expand(function () {
var self = Container.call(this);
- // Attach 'greenCrystalIngot' asset to the 'GreenCrystalIngot' object
var greenCrystalIngotGraphics = self.attachAsset('greenCrystalIngot', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the greenCrystalIngot interactive
+ interactive: true
});
- // Define the 'down' event handler for greenCrystalIngot
self.down = function (x, y, obj) {
if (storage.growthRate >= 3000 && greenCrystallScore >= 15) {
- storage.growthRate += 10; // Increment growth rate by 10
- growthRateText.setText('Growth rate: ' + storage.growthRate); // Update the growth rate display
- // Increment the GreenCrystalIngot score by 1
+ storage.growthRate += 10;
+ growthRateText.setText('Growth rate: ' + storage.growthRate);
greenCrystalIngotScore += 1;
greenCrystalIngotScoreTxt.setText('GreenCrystalIngot: ' + greenCrystalIngotScore);
storage.greenCrystalIngotScore = greenCrystalIngotScore;
- // Decrement the GreenCristal score by 100
greenCrystallScore -= 15;
if (greenCrystallScore < 0) {
greenCrystallScore = 0;
}
- storage.greenCrystallScore = greenCrystallScore; // Persist the decrement
+ storage.greenCrystallScore = greenCrystallScore;
greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore);
}
};
});
@@ -356,79 +346,82 @@
interactive: true
});
self.down = function (x, y, obj) {};
});
-// Create a new class for the RecipesScreen object
-var RecipesScreen = Container.expand(function () {
- var self = Container.call(this);
-});
-// Create a new class for the RedCristal object
var RedCristal = Container.expand(function () {
var self = Container.call(this);
- // Attach 'redCristal' asset to the 'RedCristal' object
var redCristalGraphics = self.attachAsset('redCristal', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the redCristal interactive
+ interactive: true
});
- // Define the 'down' event handler for redCristal
self.down = function (x, y, obj) {
- // Increment the score by 1
redCrystallScore += 1;
LK.setScore(redCrystallScore);
storage.redCrystallScore = redCrystallScore;
- // Update the score text
redScoreTxt.setText('Red Crystall: ' + redCrystallScore);
- redScoreTxt.visible = true; // Ensure the score text remains visible
+ redScoreTxt.visible = true;
};
});
-// Create a new class for the RedCrystalIngot object
var RedCrystalIngot = Container.expand(function () {
var self = Container.call(this);
- // Attach 'redCristalIngot' asset to the 'RedCrystalIngot' object
var redCrystalIngotGraphics = self.attachAsset('redCristalIngot', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the redCrystalIngot interactive
+ interactive: true
});
- // Define the 'down' event handler for redCrystalIngot
self.down = function (x, y, obj) {
- // Decrement the RedCristal score by 100
if (storage.growthRate >= 9000 && redCrystallScore >= 20) {
- // Increment the RedCrystalIngot score by 1
+ storage.growthRate += 20;
+ growthRateText.setText('Growth rate: ' + storage.growthRate);
redCrystalIngotScore += 1;
- storage.growthRate += 20; // Increment growth rate by 20
- growthRateText.setText('Growth rate: ' + storage.growthRate); // Update the growth rate display
redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + redCrystalIngotScore);
storage.redCrystalIngotScore = redCrystalIngotScore;
redCrystallScore -= 20;
- storage.redCrystallScore = redCrystallScore; // Persist the decrement
+ if (redCrystallScore < 0) {
+ redCrystallScore = 0;
+ }
+ storage.redCrystallScore = redCrystallScore;
redScoreTxt.setText('Red Crystall: ' + redCrystallScore);
}
};
});
var RedCrystalTwoHandedSword = Container.expand(function () {
var self = Container.call(this);
- // Attach 'redcrystaltwo-handedswordrecipe' asset to the 'RedCrystalTwoHandedSword' object
var redCrystalTwoHandedSwordGraphics = self.attachAsset('redcrystaltwo-handedswordrecipe', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the redCrystalTwoHandedSword interactive
+ interactive: true
});
+ self.down = function (x, y, obj) {
+ if (storage.forgingSkill >= 10000 && storage.redCrystalIngotScore >= 75) {
+ redCrystalTwoHandedSwordClicks += 1;
+ if (redCrystalTwoHandedSwordClicks >= 200) {
+ redCrystalTwoHandedSwordClicks = 0;
+ storage.redCrystalTwoHandedSwords += 1;
+ redCrystalTwoHandedSwordsText.setText(storage.redCrystalTwoHandedSwords.toString());
+ storage.forgingSkill += 210;
+ counterText.setText('Forging skill: ' + storage.forgingSkill);
+ storage.redCrystalIngotScore -= 75;
+ redCrystalIngotScore = storage.redCrystalIngotScore;
+ redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + redCrystalIngotScore);
+ }
+ redCrystalTwoHandedSwordClicksText.setText('(current ' + redCrystalTwoHandedSwordClicks + ')');
+ storage.redCrystalTwoHandedSwordClicks = redCrystalTwoHandedSwordClicks;
+ }
+ };
});
/****
* Initialize Game
****/
-// Create a new text object to display the click counter
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
-//{0.1}
var helpObj = false;
var helpText = false;
var substrate = false;
var quest = false;
@@ -510,8 +503,11 @@
storage.help++;
helpObj.destroy();
substrate.destroy();
helpText.destroy();
+ if (storage.help <= 14) {
+ setHelp(storage.help);
+ }
};
return helpObj;
}
}
@@ -597,9 +593,8 @@
}, {
'coords': [310, 2732 - 320],
'text': "Click to melt the crystals! \npay attention to the counters on top! \nMelting crystals increases your Growth rate! \nCome back to the forge when you've smelted \n10 blue crystalingots.",
'color': 'white',
- //'quest': 'go 10 crystal',
'substrate': {
'alfa': 0.5,
'height': 275
}
@@ -658,83 +653,75 @@
fill: 0xFFFFFF
});
goldScoreTxt.anchor.set(0, 0);
goldScoreTxt.y = 0;
-if (typeof counterText !== 'undefined') {
- goldScoreTxt.x = counterText.width + 10; // Position to the right of the Forging skill counter
-} else {
- goldScoreTxt.x = 550; // Default position if counterText is undefined
-}
+goldScoreTxt.x = 550;
LK.gui.topLeft.addChild(goldScoreTxt);
var redCrystalIngotScore = storage.redCrystalIngotScore || 0;
var redCrystalIngotScoreTxt = new Text2('RedCrystalIngot: ' + redCrystalIngotScore, {
size: 50,
fill: 0xFFFFFF
});
redCrystalIngotScoreTxt.anchor.set(1, 0);
-redCrystalIngotScoreTxt.y = 100; // Position below the GreenCrystalIngot score
+redCrystalIngotScoreTxt.y = 100;
LK.gui.topRight.addChild(redCrystalIngotScoreTxt);
-//{0.1}
var redCrystalTwoHandedSwordsText = new Text2(storage.redCrystalTwoHandedSwords.toString(), {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
redCrystalTwoHandedSwordsText.anchor.set(0.5, 0.5);
redCrystalTwoHandedSwordsText.x = 1248 / 2;
-redCrystalTwoHandedSwordsText.y = 2732 / 2 + 300; // Position below the 'Two-hand Swords in stock' text
+redCrystalTwoHandedSwordsText.y = 2732 / 2 + 300;
LK.gui.topLeft.addChild(redCrystalTwoHandedSwordsText);
-// Define greenAxesText globally to fix the reference error
var greenAxesText = new Text2(storage.greenAxes.toString(), {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
greenAxesText.anchor.set(0.5, 0.5);
greenAxesText.x = 2848 / 2;
-greenAxesText.y = 2732 / 2 + 480; // Position below the 'Axe in stock' text
+greenAxesText.y = 2732 / 2 + 480;
LK.gui.topLeft.addChild(greenAxesText);
-// Removed the 'current underfiend' text from the screen
var blueSwordsText = new Text2(storage.blueSwords.toString(), {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
blueSwordsText.anchor.set(0.5, 0.5);
blueSwordsText.x = 1248 / 2;
-blueSwordsText.y = 2732 / 2 + 480; // Position below the 'Swords in stock' text
+blueSwordsText.y = 2732 / 2 + 480;
LK.gui.topLeft.addChild(blueSwordsText);
var mineInsideBackground;
var blueCrystallScore = storage.blueCrystallScore || 0;
var automineblueCrystallClicked = storage.automineblueCrystallClicked;
var autominegreenCrystallClicked = storage.autominegreenCrystallClicked;
-var autominegreenCrystallClicked = storage.autominegreenCrystallClicked;
var automineredCrystallClicked = storage.automineredCrystallClicked;
var autogrowthRateClicked = storage.autogrowthRateClicked;
var scoreTxt = new Text2('Blue Crystall: ' + blueCrystallScore, {
size: 50,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0, 0);
-scoreTxt.y = 100; // Move the score text 100 pixels down
+scoreTxt.y = 100;
LK.gui.topLeft.addChild(scoreTxt);
var greenCrystallScore = storage.greenCrystallScore || 0;
var greenScoreTxt = new Text2('Green Crystall: ' + greenCrystallScore, {
size: 50,
fill: 0xFFFFFF
});
greenScoreTxt.anchor.set(0, 0);
-greenScoreTxt.y = 150; // Position below the Blue Crystall score
+greenScoreTxt.y = 150;
LK.gui.topLeft.addChild(greenScoreTxt);
var greenCrystalIngotScore = storage.greenCrystalIngotScore || 0;
var greenCrystalIngotScoreTxt = new Text2('GreenCrystalIngot: ' + greenCrystalIngotScore, {
size: 50,
fill: 0xFFFFFF
});
greenCrystalIngotScoreTxt.anchor.set(1, 0);
-greenCrystalIngotScoreTxt.y = 50; // Position below the BlueCrystalIngot score
+greenCrystalIngotScoreTxt.y = 50;
LK.gui.topRight.addChild(greenCrystalIngotScoreTxt);
-var blueCristal; // Define blueCristal in the global scope to fix the reference error
-var greenCristal; // Define greenCristal in the global scope to fix the reference error
-var redCristal; // Define redCristal in the global scope to fix the reference error
-var blueCrystalIngotScore = storage.blueCrystalIngotScore || 0; //{1Z.1}
+var blueCristal;
+var greenCristal;
+var redCristal;
+var blueCrystalIngotScore = storage.blueCrystalIngotScore || 0;
var redCrystallScore = storage.redCrystallScore || 0;
var blueCrystalIngotScoreTxt = new Text2('BlueCrystalIngot: ' + blueCrystalIngotScore, {
size: 50,
fill: 0xFFFFFF
@@ -746,152 +733,126 @@
size: 50,
fill: 0xFFFFFF
});
redScoreTxt.anchor.set(0, 0);
-redScoreTxt.y = 200; // Position below the Green Crystall score
+redScoreTxt.y = 200;
LK.gui.topLeft.addChild(redScoreTxt);
var map = game.addChild(LK.getAsset('Map', {
anchorX: 0.5,
anchorY: 0.5
}));
map.x = 400;
map.y = 2450;
-map.visible = false; // Initialize the map as invisible
-// Make the map interactive
+map.visible = false;
map.interactive = true;
-// Define the 'down' event handler for the map
map.down = function (x, y, obj) {
setHelp(-1);
hammer.destroy();
if (storage.forgingSkill >= 10 && storage.help == 4) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
}
quest = false;
+ storage.help = 5;
+ setHelp(5);
}
- // Hide the map asset when transitioning to the map screen
LK.getSound('mapaudio').play();
map.visible = false;
- // Hide the mineInsideBackground if it exists
if (mineInsideBackground) {
mineInsideBackground.visible = false;
- mineInsideBackground.destroy(); // Ensure it is completely removed
+ mineInsideBackground.destroy();
}
if (redCristal) {
- redCristal.visible = false; //{1Z.1}
- redCristal.destroy(); // Ensure it is completely removed
- } //{1Z.3}
+ redCristal.visible = false;
+ redCristal.destroy();
+ }
if (blueCristal) {
- blueCristal.visible = false; //{1X.1}
- blueCristal.destroy(); // Ensure it is completely removed
- } //{1X.3}
+ blueCristal.visible = false;
+ blueCristal.destroy();
+ }
if (greenCristal) {
- greenCristal.visible = false; //{1Y.1}
- greenCristal.destroy(); // Ensure it is completely removed
- } //{1Y.3}
+ greenCristal.visible = false;
+ greenCristal.destroy();
+ }
var mapScreen = game.addChild(new Container());
- // Attach 'mapbackground' asset to the mapScreen
var mapBackground = mapScreen.attachAsset('mapbackground', {
anchorX: 0.5,
- //{1h.1}
anchorY: 0.5,
- //{1h.2}
- interactive: false // Ensure mapbackground does not block cursor interaction
- }); //{1h.3}
- // Add 'citymap' asset to the center of the screen
+ interactive: false
+ });
var cityMap = mapScreen.attachAsset('citymap', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the 'citymap' asset interactive
+ interactive: true
});
cityMap.x = -250;
cityMap.y = 160;
- // Define the 'down' event handler for cityMap
cityMap.down = function (x, y, obj) {
hammer.destroy();
setHelp(-1);
- // Create a new screen without background
var isolatedScreen = game.addChild(new Container());
- // Hide the current map screen
mapScreen.visible = false;
- // Add 'citybackground' asset to the center of the isolatedScreen
var cityBackground = isolatedScreen.attachAsset('citybackground', {
anchorX: 0.5,
anchorY: 0.5
});
cityBackground.x = 0;
cityBackground.y = 0;
- // Add 'map' asset to the isolatedScreen
var mapAsset = isolatedScreen.attachAsset('Map', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the 'map' asset interactive
+ interactive: true
});
mapAsset.x = -650;
mapAsset.y = 1100;
- // Define the 'down' event handler for mapAsset
mapAsset.down = function (x, y, obj) {
- // Transition back to the citymap screen
- isolatedScreen.visible = false; // Hide the current isolated screen
- mapScreen.visible = true; // Show the citymap screen
- cityBackground.visible = false; // Ensure citybackground is hidden
+ isolatedScreen.visible = false;
+ mapScreen.visible = true;
+ cityBackground.visible = false;
mapBackground.visible = true;
};
- // Add 'shop' asset to the center of the isolatedScreen
var shop = isolatedScreen.attachAsset('shop', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the 'shop' asset interactive
+ interactive: true
});
shop.x = 490;
shop.y = -20;
setHelp(12);
- // Define the 'down' event handler for shop
shop.down = function (x, y, obj) {
hammer.destroy();
LK.getSound('shopin').play();
- // Create a new screen without background
var shopScreen = game.addChild(new Container());
- // Hide the current isolated screen
isolatedScreen.visible = false;
- // Position the shopScreen at the center
shopScreen.x = 2048 / 2;
shopScreen.y = 2732 / 2;
- // Add 'new tools' asset to the center of the shopScreen
var newTools = shopScreen.attachAsset('newTools', {
anchorX: 0.5,
anchorY: 0.5
});
newTools.x = -650;
newTools.y = 1100;
- newTools.interactive = true; // Make the newTools asset interactive
+ newTools.interactive = true;
newTools.down = function (x, y, obj) {
hammer.destroy();
setHelp(-1);
- // Create a new isolated screen without a background
var isolatedScreen = game.addChild(new Container());
- // Attach 'newToolsBackground' asset to the isolatedScreen
var newToolsBackground = isolatedScreen.attachAsset('newToolsBackground', {
anchorX: 0.5,
anchorY: 0.5
});
newToolsBackground.x = 0;
newToolsBackground.y = 0;
if (!storage.theBlacksmithsApprentice) {
- // Attach 'Theblacksmithsapprentice' asset to the center of the isolatedScreen
var theBlacksmithsApprentice = isolatedScreen.attachAsset('Theblacksmithsapprentice', {
anchorX: 0.5,
- //{4C.1}
anchorY: 0.5,
- //{4C.2}
- interactive: true // Make the Theblacksmithsapprentice interactive
- }); //{4C.3}
+ interactive: true
+ });
theBlacksmithsApprentice.x = 400;
theBlacksmithsApprentice.y = 200;
theBlacksmithsApprentice.clicked = storage.theBlacksmithsApprentice;
- // Define the 'down' event handler for theBlacksmithsApprentice
theBlacksmithsApprentice.down = function (x, y, obj) {
- // Increment forgingSkill by 1 every second
if (goldScore >= 1500 && !theBlacksmithsApprentice.clicked) {
goldScore -= 1500;
goldScoreTxt.setText('Gold: ' + goldScore);
storage.goldScore = goldScore;
@@ -899,58 +860,49 @@
var intervalId = LK.setInterval(function () {
storage.forgingSkill += 1;
counterText.setText('Forging skill: ' + storage.forgingSkill);
}, 1000);
- // Store the intervalId in the theBlacksmithsApprentice object for potential future use
theBlacksmithsApprentice.intervalId = intervalId;
storage.theBlacksmithsApprentice = true;
theBlacksmithsApprentice.visible = false;
apprenticeText.visible = false;
apprenticeCostText.visible = false;
}
};
- // Add text "The blacksmith's apprentice +1" below the Theblacksmithsapprentice asset
var apprenticeText = new Text2("The blacksmith's \napprentice +1", {
size: 50,
fill: 0x030303
});
apprenticeText.anchor.set(0.5, 0.5);
apprenticeText.x = theBlacksmithsApprentice.x;
- apprenticeText.y = theBlacksmithsApprentice.y + 170; // Position below the Theblacksmithsapprentice asset
+ apprenticeText.y = theBlacksmithsApprentice.y + 170;
isolatedScreen.addChild(apprenticeText);
- // Add text "1500G" below the 'The blacksmith's apprentice +1' text
var apprenticeCostText = new Text2('1500G', {
size: 50,
fill: 0x030303
});
apprenticeCostText.anchor.set(0.5, 0.5);
apprenticeCostText.x = apprenticeText.x;
- apprenticeCostText.y = apprenticeText.y + 70; // Position below the 'The blacksmith's apprentice +1' text
+ apprenticeCostText.y = apprenticeText.y + 70;
isolatedScreen.addChild(apprenticeCostText);
}
- // Attach 'newToolsout' asset to the center of the isolatedScreen
var newToolsOut = isolatedScreen.attachAsset('newToolsout', {
anchorX: 0.5,
anchorY: 0.5
});
newToolsOut.x = 0;
newToolsOut.y = 1100;
- newToolsOut.interactive = true; // Make the newToolsOut asset interactive//{4F.1}
+ newToolsOut.interactive = true;
if (!storage.automineblueCrystallClicked) {
- // Attach 'automineblueCrystall' asset to the center of the isolatedScreen
var automineblueCrystall = isolatedScreen.attachAsset('automineblueCrystall', {
anchorX: 0.5,
- //{4F.2}
anchorY: 0.5,
- //{4F.3}
- interactive: true // Make the automineblueCrystall interactive
- }); //{4F.4}
+ interactive: true
+ });
automineblueCrystall.x = -400;
automineblueCrystall.y = -600;
automineblueCrystall.clicked = storage.automineblueCrystallClicked;
- // Define the 'down' event handler for automineblueCrystall
automineblueCrystall.down = function (x, y, obj) {
- // Increment blueCrystallScore by 1 every second
if (goldScore >= 500 && !automineblueCrystall.clicked) {
automineblueCrystall.clicked = true;
goldScore -= 500;
goldScoreTxt.setText('Gold: ' + goldScore);
@@ -960,49 +912,42 @@
LK.setScore(blueCrystallScore);
storage.blueCrystallScore = blueCrystallScore;
scoreTxt.setText('Blue Crystall: ' + LK.getScore());
}, 1000);
- // Store the intervalId in the automineblueCrystall object for potential future use
automineblueCrystall.intervalId = intervalId;
- storage.automineblueCrystallClicked = true; // Persist the click state
+ storage.automineblueCrystallClicked = true;
automineblueCrystall.visible = false;
mineBlueCrystallText.visible = false;
mineBlueCrystallCostText.visible = false;
}
};
- // Add text "Mine Blue Crystall +1" below the automineblueCrystall asset
var mineBlueCrystallText = new Text2('Mine Blue Crystall +1', {
size: 50,
fill: 0x030303
});
mineBlueCrystallText.anchor.set(0.5, 0.5);
mineBlueCrystallText.x = automineblueCrystall.x;
- mineBlueCrystallText.y = automineblueCrystall.y + 150; // Position below the automineblueCrystall asset
+ mineBlueCrystallText.y = automineblueCrystall.y + 150;
isolatedScreen.addChild(mineBlueCrystallText);
- // Add text "500G" below the 'Mine Blue Crystall +1' text
var mineBlueCrystallCostText = new Text2('500G', {
size: 50,
- //{58.1}
- fill: 0x030303 //{58.2}
- }); //{58.3}
+ fill: 0x030303
+ });
mineBlueCrystallCostText.anchor.set(0.5, 0.5);
mineBlueCrystallCostText.x = mineBlueCrystallText.x;
- mineBlueCrystallCostText.y = mineBlueCrystallText.y + 50; // Position below the 'Mine Blue Crystall +1' text
+ mineBlueCrystallCostText.y = mineBlueCrystallText.y + 50;
isolatedScreen.addChild(mineBlueCrystallCostText);
}
if (!storage.autominegreenCrystallClicked) {
- // Attach 'autominegreenCrystall' asset to the center of the isolatedScreen
var autominegreenCrystall = isolatedScreen.attachAsset('autominegreenCrystall', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the autominegreenCrystall interactive
+ interactive: true
});
autominegreenCrystall.x = -400;
autominegreenCrystall.y = -200;
- // Define the 'down' event handler for autominegreenCrystall
autominegreenCrystall.clicked = storage.autominegreenCrystallClicked;
autominegreenCrystall.down = function (x, y, obj) {
- // Increment greenCrystallScore by 1 every second
if (goldScore >= 1000 && !autominegreenCrystall.clicked) {
autominegreenCrystall.clicked = true;
goldScore -= 1000;
goldScoreTxt.setText('Gold: ' + goldScore);
@@ -1011,48 +956,42 @@
greenCrystallScore += 1;
storage.greenCrystallScore = greenCrystallScore;
greenScoreTxt.setText('Green Crystall: ' + greenCrystallScore);
}, 1000);
- // Store the intervalId in the autominegreenCrystall object for potential future use
autominegreenCrystall.intervalId = intervalId;
- storage.autominegreenCrystallClicked = true; // Persist the click state
+ storage.autominegreenCrystallClicked = true;
autominegreenCrystall.visible = false;
mineGreenCrystallText.visible = false;
mineGreenCrystallCostText.visible = false;
}
};
- // Add text "Mine Green Crystall +1" below the autominegreenCrystall asset
var mineGreenCrystallText = new Text2('Mine Green Crystall +1', {
size: 50,
fill: 0x030303
});
mineGreenCrystallText.anchor.set(0.5, 0.5);
mineGreenCrystallText.x = autominegreenCrystall.x;
- mineGreenCrystallText.y = autominegreenCrystall.y + 150; // Lower the position below the autominegreenCrystall asset
+ mineGreenCrystallText.y = autominegreenCrystall.y + 150;
isolatedScreen.addChild(mineGreenCrystallText);
- // Add text "1000G" below the 'Mine Green Crystall +1' text
var mineGreenCrystallCostText = new Text2('1000G', {
size: 50,
- //{5c.1}
- fill: 0x030303 //{5c.2}
- }); //{5c.3}
+ fill: 0x030303
+ });
mineGreenCrystallCostText.anchor.set(0.5, 0.5);
mineGreenCrystallCostText.x = mineGreenCrystallText.x;
- mineGreenCrystallCostText.y = mineGreenCrystallText.y + 50; // Position below the 'Mine Green Crystall +1' text
+ mineGreenCrystallCostText.y = mineGreenCrystallText.y + 50;
isolatedScreen.addChild(mineGreenCrystallCostText);
}
if (!storage.automineredCrystallClicked) {
- // Attach 'automineredCrystall' asset to the center of the isolatedScreen
var automineredCrystall = isolatedScreen.attachAsset('automineredCrystall', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the automineredCrystall interactive
+ interactive: true
});
automineredCrystall.x = -400;
automineredCrystall.y = 200;
- // Define the 'down' event handler for automineredCrystall
+ automineredCrystall.clicked = storage.automineredCrystallClicked;
automineredCrystall.down = function (x, y, obj) {
- // Increment redCrystallScore by 1 every second
if (goldScore >= 2000 && !automineredCrystall.clicked) {
automineredCrystall.clicked = true;
goldScore -= 2000;
goldScoreTxt.setText('Gold: ' + goldScore);
@@ -1061,48 +1000,41 @@
redCrystallScore += 1;
storage.redCrystallScore = redCrystallScore;
redScoreTxt.setText('Red Crystall: ' + redCrystallScore);
}, 1000);
- // Store the intervalId in the automineredCrystall object for potential future use
automineredCrystall.intervalId = intervalId;
- storage.automineredCrystallClicked = true; // Persist the click state
+ storage.automineredCrystallClicked = true;
automineredCrystall.visible = false;
mineRedCrystallText.visible = false;
mineRedCrystallCostText.visible = false;
}
};
- // Add text "Mine Red Crystall +1" below the automineredCrystall asset
var mineRedCrystallText = new Text2('Mine Red Crystall +1', {
size: 50,
fill: 0x030303
});
mineRedCrystallText.anchor.set(0.5, 0.5);
mineRedCrystallText.x = automineredCrystall.x;
- mineRedCrystallText.y = automineredCrystall.y + 140; // Position below the automineredCrystall asset
+ mineRedCrystallText.y = automineredCrystall.y + 140;
isolatedScreen.addChild(mineRedCrystallText);
- // Add text "2000G" below the 'Mine Red Crystall +1' text
var mineRedCrystallCostText = new Text2('2000G', {
size: 50,
- //{55.1}
- fill: 0x030303 //{55.2}
- }); //{55.3}
+ fill: 0x030303
+ });
mineRedCrystallCostText.anchor.set(0.5, 0.5);
mineRedCrystallCostText.x = mineRedCrystallText.x;
- mineRedCrystallCostText.y = mineRedCrystallText.y + 50; // Position below the 'Mine Red Crystall +1' text
+ mineRedCrystallCostText.y = mineRedCrystallText.y + 50;
isolatedScreen.addChild(mineRedCrystallCostText);
}
if (!storage.multiclickupgrade) {
- // Attach 'multiclickupgrade' asset to the center of the isolatedScreen
var multiclickupgrade = isolatedScreen.attachAsset('multiclickupgrade', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the multiclickupgrade interactive
+ interactive: true
});
multiclickupgrade.x = 400;
multiclickupgrade.y = -200;
- // Define the 'down' event handler for multiclickupgrade
multiclickupgrade.down = function (x, y, obj) {
- // Deduct 700 gold when clicked
if (goldScore >= 700 && !storage.multiclickupgrade) {
goldScore -= 700;
goldScoreTxt.setText('Gold: ' + goldScore);
storage.goldScore = goldScore;
@@ -1111,41 +1043,35 @@
increasedChanceText.visible = false;
increasedChanceCostText.visible = false;
}
};
- // Add text "Increased chance of successful forging +5%" below the multiclickupgrade asset
var increasedChanceText = new Text2('Increased chance of \nsuccessful forging +5%', {
size: 50,
fill: 0x030303
});
increasedChanceText.anchor.set(0.5, 0.5);
increasedChanceText.x = multiclickupgrade.x;
- increasedChanceText.y = multiclickupgrade.y + 170; // Position below the multiclickupgrade asset
+ increasedChanceText.y = multiclickupgrade.y + 170;
isolatedScreen.addChild(increasedChanceText);
- // Add text "700G" below the 'Increased chance of successful forging +5%' text
var increasedChanceCostText = new Text2('700G', {
size: 50,
- //{4Z.1}
- fill: 0x030303 //{4Z.2}
- }); //{4Z.3}
+ fill: 0x030303
+ });
increasedChanceCostText.anchor.set(0.5, 0.5);
increasedChanceCostText.x = increasedChanceText.x;
- increasedChanceCostText.y = increasedChanceText.y + 70; // Position below the 'Increased chance of successful forging +5%' text
+ increasedChanceCostText.y = increasedChanceText.y + 70;
isolatedScreen.addChild(increasedChanceCostText);
}
if (!storage.autogrowthRateClicked) {
- // Attach 'autogrowthRate' asset to the center of the isolatedScreen
var autogrowthRate = isolatedScreen.attachAsset('autogrowthRate', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the autogrowthRate interactive
+ interactive: true
});
autogrowthRate.x = 400;
autogrowthRate.y = -600;
autogrowthRate.clicked = storage.autogrowthRateClicked;
- // Define the 'down' event handler for autogrowthRate
autogrowthRate.down = function (x, y, obj) {
- // Increment growthRateCounter by 1 every second
if (goldScore >= 2000 && !autogrowthRate.clicked) {
autogrowthRate.clicked = true;
goldScore -= 2000;
goldScoreTxt.setText('Gold: ' + goldScore);
@@ -1154,275 +1080,235 @@
growthRateCounter += 1;
growthRateText.setText('Growth rate: ' + growthRateCounter);
storage.growthRate = growthRateCounter;
}, 1000);
- // Store the intervalId in the autogrowthRate object for potential future use
autogrowthRate.intervalId = intervalId;
- storage.autogrowthRateClicked = true; // Persist the click state
+ storage.autogrowthRateClicked = true;
autogrowthRate.visible = false;
automaticMeltingText.visible = false;
automaticMeltingCostText.visible = false;
}
};
- // Add text "Automatic melting +1" below the autogrowthRate asset
var automaticMeltingText = new Text2('Automatic melting +1', {
size: 50,
fill: 0x030303
});
automaticMeltingText.anchor.set(0.5, 0.5);
automaticMeltingText.x = autogrowthRate.x;
- automaticMeltingText.y = autogrowthRate.y + 150; // Position below the autogrowthRate asset
+ automaticMeltingText.y = autogrowthRate.y + 150;
isolatedScreen.addChild(automaticMeltingText);
- // Add text "2000G" below the 'Automatic melting +1' text
var automaticMeltingCostText = new Text2('2000G', {
size: 50,
fill: 0x030303
});
automaticMeltingCostText.anchor.set(0.5, 0.5);
automaticMeltingCostText.x = automaticMeltingText.x;
- automaticMeltingCostText.y = automaticMeltingText.y + 50; // Position below the 'Automatic melting +1' text
+ automaticMeltingCostText.y = automaticMeltingText.y + 50;
isolatedScreen.addChild(automaticMeltingCostText);
}
newToolsOut.down = function (x, y, obj) {
LK.getSound('booksaudio').play();
- // Transition to the newTools screen
- isolatedScreen.visible = false; // Hide the current isolated screen
- shopScreen.visible = true; // Show the newTools screen
+ isolatedScreen.visible = false;
+ shopScreen.visible = true;
};
- // Hide the current shop screen
shopScreen.visible = false;
- // Position the isolatedScreen at the center
isolatedScreen.x = 2048 / 2;
isolatedScreen.y = 2732 / 2;
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
- // Add 'shopout' asset to the shopScreen
var shopBackground = shopScreen.attachAsset('shopbackground', {
anchorX: 0.5,
anchorY: 0.5
});
shopBackground.x = 0;
shopBackground.y = 0;
- // Add 'new buildings' asset to the center of the shopScreen
var newBuildings = shopScreen.attachAsset('sellweapons', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the 'sellweapons' asset interactive
+ interactive: true
});
- // Define the 'down' event handler for sellweapons
newBuildings.down = function (x, y, obj) {
- console.log("Sell weapons asset clicked at", x, y);
- // Сохраняем начальные значения для проверки условия
var initialBlueSwords = storage.blueSwords;
var initialGreenAxes = storage.greenAxes;
var initialRedTwoHandedSwords = storage.redCrystalTwoHandedSwords;
- // Увеличиваем золото и обнуляем запасы оружия
goldScore += storage.blueSwords * 50;
storage.blueSwords = 0;
blueSwordsText.setText('0');
goldScore += storage.greenAxes * 150;
storage.greenAxes = 0;
- greenAxesText.setText('0'); // Предполагается, что greenAxesText определён глобально
+ greenAxesText.setText('0');
goldScore += storage.redCrystalTwoHandedSwords * 600;
storage.redCrystalTwoHandedSwords = 0;
- redCrystalTwoHandedSwordsText.setText('0'); // Предполагается, что redCrystalTwoHandedSwordsText определён глобально
+ redCrystalTwoHandedSwordsText.setText('0');
goldScoreTxt.setText('Gold: ' + goldScore);
storage.goldScore = goldScore;
- // Проверяем наличие оружия до обнуления и запускаем звук с анимацией
if (initialBlueSwords > 0 || initialGreenAxes > 0 || initialRedTwoHandedSwords > 0) {
LK.getSound('gold').play();
- // Создаём 5 монет, летящих вверх
for (var i = 0; i < 5; i++) {
var goldAsset = game.addChild(LK.getAsset('goldstore', {
anchorX: 0.5,
anchorY: 0.5
}));
- goldAsset.x = shopScreen.x + newBuildings.x + (Math.random() * 50 - 25); // Случайное смещение по X
+ goldAsset.x = shopScreen.x + newBuildings.x + (Math.random() * 50 - 25);
goldAsset.y = shopScreen.y + newBuildings.y;
(function (goldAsset) {
- var speed = 3 + Math.random() * 3; // Случайная скорость от 3 до 6
+ var speed = 3 + Math.random() * 3;
goldAsset.update = function () {
goldAsset.y -= speed;
};
LK.setTimeout(function () {
goldAsset.destroy();
}, 1000);
})(goldAsset);
}
+ if (storage.help == 13) {
+ if (quest && typeof quest.destroy === 'function') {
+ quest.destroy();
+ }
+ quest = false;
+ storage.help = 14;
+ setHelp(14);
+ }
}
};
newBuildings.x = 0;
newBuildings.y = 1100;
- // Add 'shopout' asset to the shopScreen
var shopOut = shopScreen.attachAsset('shopout', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the 'shopout' asset interactive
+ interactive: true
});
shopOut.x = 650;
shopOut.y = 1100;
- // Define the 'down' event handler for shopOut
shopOut.down = function (x, y, obj) {
setHelp(14);
LK.getSound('doors').play();
- shopScreen.visible = false; // Hide the current shop screen
- mapBackground.visible = false; // Ensure the mapbackground asset is hidden
- mapScreen.visible = true; // Show the citymap screen
- isolatedScreen.visible = true; // Ensure the isolated screen is visible
+ shopScreen.visible = false;
+ mapBackground.visible = false;
+ mapScreen.visible = true;
+ isolatedScreen.visible = true;
};
setHelp(13);
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
- // Position the isolatedScreen at the center
isolatedScreen.x = 2048 / 2;
isolatedScreen.y = 2732 / 2;
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
- // Attach 'anvilmap' asset to the mapScreen on the top layer
var anvilMap = mapScreen.attachAsset('anvilmap', {
anchorX: 0.5,
anchorY: 0.5,
interactive: true
});
- // Attach 'mine' asset to the mapScreen on the top layer
var mine = mapScreen.attachAsset('mine', {
anchorX: 0.5,
anchorY: 0.5,
interactive: true
});
- mine.x -= 150; // Move the mine asset 150 pixels to the left
- mine.y -= 150; // Move the mine asset 150 pixels higher
- // Make mine interactive and define the 'down' event handler
+ mine.x -= 150;
+ mine.y -= 150;
mine.down = function (x, y, obj) {
if (storage.help == 5) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
}
quest = false;
+ storage.help = 6;
+ setHelp(6);
}
hammer.destroy();
setHelp(-1);
- // Create a new screen for the mine
var mineScreen = game.addChild(new Container());
- // Make the map visible after transitioning to the mine screen
map.visible = true;
- // Hide the current map screen
mapScreen.visible = false;
- // Disable the active background
background.visible = false;
- // Attach 'mineinsidebackground' asset to the mineScreen on the bottom layer
mineInsideBackground = mineScreen.attachAsset('mineinsidebackground', {
anchorX: 0.5,
anchorY: 0.5,
interactive: false,
- zIndex: -1 // Ensure it is on the bottom layer
+ zIndex: -1
});
setHelp(5);
- // Create and add a new instance of the RedCristal class
redCristal = mineScreen.addChild(new RedCristal());
- // Position the redCristal asset
- redCristal.x -= 510; // Move 100 pixels to the left
- redCristal.y += 490; // Move 100 pixels lower
- // Create and add a new instance of the GreenCristal class
+ redCristal.x -= 510;
+ redCristal.y += 490;
greenCristal = mineScreen.addChild(new GreenCristal());
- // Position the greenCristal asset
- greenCristal.x -= -510; // Move 100 pixels to the left
- greenCristal.y += 10; // Move 100 pixels lower
- // Create and add a new instance of the BlueCristal class
+ greenCristal.x -= -510;
+ greenCristal.y += 10;
blueCristal = mineScreen.addChild(new BlueCristal());
- // Position the blueCristal asset
- blueCristal.x += 490; // Move 100 pixels to the right
- blueCristal.y += -60; // Move 100 pixels lower
- // Position the blueCristal asset
- blueCristal.x -= 410; // Move 100 pixels to the left
- blueCristal.y -= 310; // Move 100 pixels lower
- // Position the mineScreen at the center
- mineScreen.x = 2048 / 2; //{1E.1}
- mineScreen.y = 2732 / 2; //{1E.2}
+ blueCristal.x += 490;
+ blueCristal.y += -60;
+ blueCristal.x -= 410;
+ blueCristal.y -= 310;
+ mineScreen.x = 2048 / 2;
+ mineScreen.y = 2732 / 2;
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
- // Make anvilMap interactive and define the 'down' event handler
anvilMap.down = function (x, y, obj) {
if (storage.help == 7) {
if (quest && typeof quest.destroy === 'function') {
quest.destroy();
}
quest = false;
+ storage.help = 8;
+ setHelp(8);
}
setHelp(-1);
- // Show the Anvil screen
gameScreen.visible = true;
- // Make the map visible after transitioning to the anvil map
map.visible = true;
- // Attach 'gameScreenBackground' asset to the 'gameScreen' object
gameScreenBackground = gameScreen.attachAsset('gameScreenBackground', {
anchorX: 0.5,
anchorY: 0.5
});
setHelp(0);
setHelp(1);
setHelp(7);
setHelp(10);
- // Attach 'recipes' asset to the 'gameScreenBackground' object
var recipes = gameScreenBackground.attachAsset('recipes', {
anchorX: 0.5,
anchorY: 0.5
});
- // Center the 'recipes' asset on the gameScreenBackground
- recipes.x = gameScreenBackground.width / 2 - 1050; //{3u.1}
- recipes.y = gameScreenBackground.height / 2 + 150; //{3v.1}
- // Hide the mineinsidebackground when exiting the mine screen
+ recipes.x = gameScreenBackground.width / 2 - 1050;
+ recipes.y = gameScreenBackground.height / 2 + 150;
if (mineInsideBackground) {
mineInsideBackground.visible = false;
- mineInsideBackground.destroy(); // Ensure it is completely removed
+ mineInsideBackground.destroy();
}
- if (mineInsideBackground) {
- mineInsideBackground.visible = false;
- mineInsideBackground.destroy(); // Ensure it is completely removed
- }
if (blueCristal) {
- blueCristal.visible = false; //{1X.1}
- blueCristal.destroy(); // Ensure it is completely removed
- } //{1X.3}
+ blueCristal.visible = false;
+ blueCristal.destroy();
+ }
if (greenCristal) {
- greenCristal.visible = false; //{1Y.1}
- greenCristal.destroy(); // Ensure it is completely removed
- } //{1Y.3}
+ greenCristal.visible = false;
+ greenCristal.destroy();
+ }
if (redCristal) {
- redCristal.visible = false; //{1Z.1}
- redCristal.destroy(); // Ensure it is completely removed
- } //{1Z.3}
- // Hide the map screen
+ redCristal.visible = false;
+ redCristal.destroy();
+ }
mapScreen.visible = false;
- // Show the counter display
counterText.visible = true;
- // Show the Growth rate counter when transitioning to anvilmap
growthRateText.visible = true;
};
setHelp(-1);
- // Hide the current game screen
gameScreen.visible = false;
- // Disable the active background
background.visible = false;
- // Attach a new background or asset to the mapScreen if needed
- // Example: mapScreen.attachAsset('newBackground', { anchorX: 0.5, anchorY: 0.5 });
- // Position the mapScreen at the center
mapScreen.x = 2048 / 2;
mapScreen.y = 2732 / 2;
setHelp(3);
setHelp(4);
@@ -1434,9 +1320,9 @@
scaleX: -1
}));
};
var growthRateText;
-var growthRateCounter = storage.growthRate; // Initialize growth rate counter from storage
+var growthRateCounter = storage.growthRate;
var background = game.addChild(new Container());
background.width = 2048;
background.height = 2732;
background.x = 2048 / 2;
@@ -1444,34 +1330,30 @@
var backgroundGraphics = background.attachAsset('background', {
anchorX: 0.5,
anchorY: 0.5
});
-var gameScreen = game.addChild(new Container()); //{1h.1}
+var gameScreen = game.addChild(new Container());
var newGame = game.addChild(new Container());
-newGame.x = 2650 / 2 + 100; //{3d.1}
-newGame.y = 2680 * 4.2 / 5; //{3d.1}
-// Attach 'title' asset to the start screen
+newGame.x = 2650 / 2 + 100;
+newGame.y = 2680 * 4.2 / 5;
var title = game.addChild(LK.getAsset('title', {
anchorX: 0.5,
anchorY: 0.5
}));
title.x = 2048 / 2;
title.y = 3200 / 5;
-// Attach 'newGameText' asset to the 'New Game' object
var newGameText = newGame.attachAsset('newGameText', {
anchorX: 0.5,
anchorY: 0.5,
stroke: 0xFFFFFF,
- // White color
- strokeThickness: 5 // 5px thickness
+ strokeThickness: 5
});
-// Attach 'continueText' asset to the game object
var continueText = game.addChild(LK.getAsset('continueText', {
anchorX: 0.5,
anchorY: 0.5
}));
-continueText.x = newGame.x - newGame.width - 500; // Increase the distance between newGame and continueText
-continueText.y = newGame.y; // Align vertically with newGame
+continueText.x = newGame.x - newGame.width - 500;
+continueText.y = newGame.y;
continueText.interactive = true;
continueText.down = function (x, y, obj) {
startgame();
};
@@ -1480,383 +1362,240 @@
function startgame() {
setquest();
title.destroy();
hammer.destroy();
- // Create a new game screen
gameScreen = game.addChild(new Container());
gameScreen.x = 2048 / 2;
gameScreen.y = 2732 / 2;
- // Attach 'gameScreenBackground' asset to the 'gameScreen' object
gameScreenBackground = gameScreen.attachAsset('gameScreenBackground', {
anchorX: 0.5,
anchorY: 0.5
});
- // Attach 'recipes' asset to the 'gameScreenBackground' object
var recipes = gameScreenBackground.attachAsset('recipes', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the recipes asset interactive
+ interactive: true
});
- // Remove 'continueText' asset when transitioning to new game
- // Define the 'down' event handler for recipes
recipes.down = function (x, y, obj) {
setHelp(-1);
hammer.destroy();
LK.getSound('booksaudio').play();
- // Create a new screen for the recipes
- var recipesScreen = game.addChild(new RecipesScreen());
- map.visible = false; // Hide the map asset after transitioning to the recipes screen
- // Add 'recipesbackground' asset to the center of the screen
+ var recipesScreen = game.addChild(new Container());
+ map.visible = false;
var recipesBackground = recipesScreen.attachAsset('recipesbackground', {
anchorX: 0.5,
anchorY: 0.5
});
recipesBackground.x = 2048 / 2;
- recipesBackground.y = 2932 / 2;
- // Add 'bluecrystalswordrecipe' asset to the center of the screen
- var bluecrystalswordrecipe = recipesScreen.attachAsset('bluecrystalswordrecipe', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- bluecrystalswordrecipe.x = 1248 / 2;
- bluecrystalswordrecipe.y = 2132 / 2;
- bluecrystalswordrecipe.down = function () {
- if (storage.forgingSkill >= 100 && storage.blueCrystalIngotScore >= 10) {
- storage.blueswordsclick += 1;
- }
- if (storage.blueswordsclick >= 100) {
- storage.blueswordsclick = 0;
- storage.blueSwords += 1; // Увеличение количества мечей
- blueSwordsText.setText(storage.blueSwords.toString());
- storage.forgingSkill += 100; // Добавление опыта кузнечного дела
- counterText.setText('Forging skill: ' + storage.forgingSkill);
- if (storage.blueCrystalIngotScore >= 10) {
- // Убедимся, что хватает ингота
- storage.blueCrystalIngotScore -= 10; // Отнимаем 10, но теперь в `storage`
- blueCrystalIngotScore = storage.blueCrystalIngotScore; // Обновляем локальную переменную
- blueCrystalIngotScoreTxt.setText('BlueCrystalIngot: ' + blueCrystalIngotScore);
- }
- }
- blueCrystalSwordClicks.setText('(current ' + storage.blueswordsclick + ')');
- };
+ recipesBackground.y = 2732 / 2;
+ var blueCrystalSword = recipesScreen.addChild(new BlueCrystalSword());
+ blueCrystalSword.x = 1248 / 2;
+ blueCrystalSword.y = 2132 / 2;
setHelp(10);
- // Add 'Swords in stock' text asset to the center of the screen
var swordsInStockText = new Text2('Swords in stock', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
swordsInStockText.anchor.set(0.5, 0.5);
swordsInStockText.x = 1248 / 2;
swordsInStockText.y = 2732 / 2 + 400;
var axeInStockText = new Text2('Axe in stock', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
axeInStockText.anchor.set(0.5, 0.5);
axeInStockText.x = 2848 / 2;
- axeInStockText.y = 2732 / 2 + 400; // Align with 'Swords in stock' text
+ axeInStockText.y = 2732 / 2 + 400;
recipesScreen.addChild(axeInStockText);
recipesScreen.addChild(swordsInStockText);
- // Display the number of blue swords in stock
- var blueSwordsText = new Text2(storage.blueSwords.toString(), {
- size: 50,
- fill: 0x000000 // Black color
- });
- blueSwordsText.anchor.set(0.5, 0.5);
blueSwordsText.x = 1248 / 2;
- blueSwordsText.y = swordsInStockText.y + 80; // Position below the 'Swords in stock' text
+ blueSwordsText.y = swordsInStockText.y + 80;
recipesScreen.addChild(blueSwordsText);
- // Add 'Axe of Green Crystals recipe' asset to the center of the screen
- var axeOfGreenCrystalsRecipe = recipesScreen.attachAsset('axeOfGreenCrystalsRecipe', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- axeOfGreenCrystalsRecipe.x = 2848 / 2;
- axeOfGreenCrystalsRecipe.y = 2132 / 2;
- axeOfGreenCrystalsRecipe.down = function () {
- if (storage.forgingSkill >= 4000 && storage.greenCrystalIngotScore >= 15) {
- greenAxeClicks += 1;
- }
- if (greenAxeClicks >= 150) {
- greenAxeClicks = 0;
- storage.greenAxes += 1; // Увеличиваем количество зелёных топоров в хранилище
- greenAxesText.setText(storage.greenAxes.toString());
- storage.forgingSkill += 150; // Добавляем 150 к навыку ковки
- counterText.setText('Forging skill: ' + storage.forgingSkill); // Обновляем отображение навыка ковки
- if (storage.greenCrystalIngotScore >= 15) {
- storage.greenCrystalIngotScore -= 15; // Вычитаем 15 из greenCrystalIngotScore
- greenCrystalIngotScore = storage.greenCrystalIngotScore; // Сохраняем новое значение в хранилище
- greenCrystalIngotScoreTxt.setText('GreenCrystalIngot: ' + greenCrystalIngotScore); // Обновляем текстовое отображение
- }
- }
- greenAxeClicksText.setText('(current ' + greenAxeClicks + ')');
- storage.greenAxeClicks = greenAxeClicks;
- };
- // Add 'Axe in stock' text asset to the center of the screen
- var axeInStockText = new Text2('Axe in stock', {
- size: 50,
- fill: 0x000000 // Black color
- });
- axeInStockText.anchor.set(0.5, 0.5);
- axeInStockText.x = 2848 / 2;
- recipesScreen.addChild(axeInStockText);
- // Display the number of green axes in stock
- var greenAxesText = new Text2(storage.greenAxes.toString(), {
- size: 50,
- fill: 0x000000 // Black color
- });
- greenAxesText.anchor.set(0.5, 0.5);
+ var greenAxe = recipesScreen.addChild(new GreenAxe());
+ greenAxe.x = 2848 / 2;
+ greenAxe.y = 2132 / 2;
greenAxesText.x = 2848 / 2;
- greenAxesText.y = swordsInStockText.y + 80; // Position below the 'Swords in stock' text
+ greenAxesText.y = swordsInStockText.y + 80;
recipesScreen.addChild(greenAxesText);
- // Add 'Green Axe clicks' text asset to the center of the screen
var greenAxeClicksText = new Text2('(current ' + greenAxeClicks + ')', {
size: 50,
fill: 0x000000,
- alpha: 0.5 // Set transparency
+ alpha: 0.5
});
greenAxeClicksText.anchor.set(0.5, 0.5);
greenAxeClicksText.x = 2848 / 2 - 150;
greenAxeClicksText.y = 2732 / 2 + 330;
recipesScreen.addChild(greenAxeClicksText);
- // Add 'Blue crystal sword description' text asset to the center of the screen
var blueCrystalSwordDescription = new Text2('"Blue Crystal Sword"\n Forging Skill 100.\n 10 blue crystal ingots +\n 100 clicks on the recipe', {
size: 50,
fill: 0x000000,
- alpha: 0.5 // Set transparency
+ alpha: 0.5
});
blueCrystalSwordDescription.anchor.set(0.5, 0.5);
blueCrystalSwordDescription.x = 1248 / 2;
blueCrystalSwordDescription.y = 2732 / 2 + 200;
recipesScreen.addChild(blueCrystalSwordDescription);
var blueCrystalSwordClicks = new Text2('(current ' + storage.blueswordsclick + ')', {
size: 50,
fill: 0x000000,
- alpha: 0.5 // Set transparency
+ alpha: 0.5
});
blueCrystalSwordClicks.anchor.set(0.5, 0.5);
blueCrystalSwordClicks.x = 1248 / 2 - 150;
blueCrystalSwordClicks.y = 2732 / 2 + 330;
recipesScreen.addChild(blueCrystalSwordClicks);
- // Add 'axeOfGreenCrystals description' text asset to the center of the screen
var axeOfGreenCrystalsDescription = new Text2('"Axe of Green Crystals"\n Forging Skill 4k.\n 15 green crystal ingots +\n 150 clicks on the recipe', {
size: 50,
fill: 0x000000,
- alpha: 0.5 // Set transparency
+ alpha: 0.5
});
axeOfGreenCrystalsDescription.anchor.set(0.5, 0.5);
- axeOfGreenCrystalsDescription.x = 2890 / 2;
+ axeOfGreenCrystalsDescription.x = 2848 / 2;
axeOfGreenCrystalsDescription.y = 2732 / 2 + 200;
recipesScreen.addChild(axeOfGreenCrystalsDescription);
- // Add 'recipesnext' asset to the center of the screen
var recipesNext = recipesScreen.attachAsset('recipesnext', {
anchorX: 0.5,
- anchorY: 0.5 //{4F.1}
- }); //{4G.1}
+ anchorY: 0.5,
+ interactive: true
+ });
recipesNext.x = 3248 / 2;
recipesNext.y = 5000 / 2;
- // Make the 'recipesnext' asset interactive
- recipesNext.interactive = true;
- hammer = game.addChild(LK.getAsset('hammer', {
- anchorX: 0.5,
- anchorY: 0.5,
- scaleX: -1
- }));
- // Define the 'down' event handler for recipesNext
recipesNext.down = function (x, y, obj) {
- // Create a new screen for the next section
var nextScreen = game.addChild(new Container());
LK.getSound('paper').play();
- // Remove the current background
recipesScreen.visible = false;
- // Add 'recipesnextbackgr1' asset to the center of the screen
var recipesNextBackgr1 = nextScreen.attachAsset('recipesnextbackgr1', {
anchorX: 0.5,
anchorY: 0.5
});
recipesNextBackgr1.x = 2048 / 2;
recipesNextBackgr1.y = 2732 / 2;
- // Remove the existing hammer
hammer.destroy();
- // Add 'recipesprev' asset to the center of the screen
var recipesPrev = nextScreen.attachAsset('recipesprev', {
anchorX: 0.5,
anchorY: 0.5,
- interactive: true // Make the 'recipesprev' asset interactive
+ interactive: true
});
recipesPrev.x = 888 / 2;
recipesPrev.y = 5000 / 2;
- // Define the 'down' event handler for recipesPrev
recipesPrev.down = function (x, y, obj) {
LK.getSound('paper').play();
- // Transition back to the recipes screen
- nextScreen.visible = false; // Hide the current screen
- recipesScreen.visible = true; // Show the recipes screen
+ nextScreen.visible = false;
+ recipesScreen.visible = true;
};
- // Add 'blueingotrecipe' asset to the center of the screen
var blueingotrecipe = nextScreen.attachAsset('blueingotrecipe', {
anchorX: 0.5,
anchorY: 0.5
});
blueingotrecipe.x = 1450;
blueingotrecipe.y = 750;
- // Add text under the 'blueingotrecipe' asset
var blueIngotRecipeText = new Text2('"BlueCrystalIngot"\n Growth rate 100.\n 10 Blue Crystal', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
blueIngotRecipeText.anchor.set(0.5, 0.5);
blueIngotRecipeText.x = blueingotrecipe.x;
- blueIngotRecipeText.y = blueingotrecipe.y + 150; // Position below the 'blueingotrecipe' asset
+ blueIngotRecipeText.y = blueingotrecipe.y + 150;
nextScreen.addChild(blueIngotRecipeText);
- // Add 'greeningotrecipe' asset to the center of the screen
var greeningotrecipe = nextScreen.attachAsset('greeningotrecipe', {
anchorX: 0.5,
anchorY: 0.5
});
greeningotrecipe.x = 1450;
greeningotrecipe.y = 1150;
- // Add text under the 'greeningotrecipe' asset
var greeningotrecipeText = new Text2('"Greeningotrecipe"\n Growth rate 2000.\n 10 Green Crystal', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
greeningotrecipeText.anchor.set(0.5, 0.5);
greeningotrecipeText.x = greeningotrecipe.x;
- greeningotrecipeText.y = greeningotrecipe.y + 160; // Position below the 'greeningotrecipe' asset
+ greeningotrecipeText.y = greeningotrecipe.y + 160;
nextScreen.addChild(greeningotrecipeText);
- // Add 'redingotrecipe' asset to the center of the screen
var redingotrecipe = nextScreen.attachAsset('redingotrecipe', {
anchorX: 0.5,
anchorY: 0.5
});
redingotrecipe.x = 1450;
redingotrecipe.y = 1500;
- // Add text under the 'redingotrecipe' asset
- var redingotrecipeText = new Text2('"Redingotrecipe"\n Growth rate 7000.\n 10 Green Crystal', {
+ var redingotrecipeText = new Text2('"Redingotrecipe"\n Growth rate 7000.\n 10 Red Crystal', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
redingotrecipeText.anchor.set(0.5, 0.5);
redingotrecipeText.x = redingotrecipe.x;
- redingotrecipeText.y = redingotrecipe.y + 150; // Position below the 'redingotrecipe' asset
+ redingotrecipeText.y = redingotrecipe.y + 150;
nextScreen.addChild(redingotrecipeText);
- // Add 'redcrystaltwo-handedswordrecipe' asset to the center of the screen
- var redCrystalTwoHandedSwordRecipe = nextScreen.attachAsset('redcrystaltwo-handedswordrecipe', {
- anchorX: 0.5,
- anchorY: 0.5
- });
- redCrystalTwoHandedSwordRecipe.x = 1248 / 2;
- redCrystalTwoHandedSwordRecipe.y = 2132 / 2;
- redCrystalTwoHandedSwordRecipe.down = function () {
- if (storage.forgingSkill >= 10000 && storage.redCrystalIngotScore >= 75) {
- redCrystalTwoHandedSwordClicks += 1;
- }
- if (redCrystalTwoHandedSwordClicks >= 200) {
- redCrystalTwoHandedSwordClicks = 0;
- storage.redCrystalTwoHandedSwords += 1; // Увеличение количества мечей в storage
- redCrystalTwoHandedSwordsText.setText(storage.redCrystalTwoHandedSwords.toString());
- storage.forgingSkill += 210; // Добавление опыта кузнечного дела
- counterText.setText('Forging skill: ' + storage.forgingSkill);
- storage.redCrystalIngotScore -= 75; // Вычитаем 75 инготов из storage
- redCrystalIngotScore = storage.redCrystalIngotScore; // Обновляем локальную переменную
- redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + redCrystalIngotScore); // Обновляем отображение
- }
- redCrystalTwoHandedSwordClicksText.setText('(current ' + redCrystalTwoHandedSwordClicks + ')');
- storage.redCrystalTwoHandedSwordClicks = redCrystalTwoHandedSwordClicks;
- };
- // Add 'Red Crystal Two-Handed Sword in stock' text asset to the center of the screen
- var redCrystalTwoHandedSwordsText = new Text2(storage.redCrystalTwoHandedSwords.toString(), {
+ var redCrystalTwoHandedSword = nextScreen.addChild(new RedCrystalTwoHandedSword());
+ redCrystalTwoHandedSword.x = 1248 / 2;
+ redCrystalTwoHandedSword.y = 2132 / 2;
+ var twoHandSwordsInStockText = new Text2('Two-hand Swords in stock', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
- redCrystalTwoHandedSwordsText.anchor.set(0.5, 0.5);
+ twoHandSwordsInStockText.anchor.set(0.5, 0.5);
+ twoHandSwordsInStockText.x = 1248 / 2;
+ twoHandSwordsInStockText.y = 2732 / 2 + 400;
+ nextScreen.addChild(twoHandSwordsInStockText);
redCrystalTwoHandedSwordsText.x = 1248 / 2;
+ redCrystalTwoHandedSwordsText.y = twoHandSwordsInStockText.y + 80;
+ nextScreen.addChild(redCrystalTwoHandedSwordsText);
var redCrystalTwoHandedSwordDescription = new Text2('"Redcrystaltwo-\n handedswordrecipe"\n Forging Skill 10k.\n 75 red crystal ingots +\n 200 clicks on the anvil', {
size: 50,
- fill: 0x000000 // Black color
+ fill: 0x000000
});
redCrystalTwoHandedSwordDescription.anchor.set(0.5, 0.5);
redCrystalTwoHandedSwordDescription.x = 1248 / 2;
- redCrystalTwoHandedSwordDescription.y = 2732 / 2 + 100;
+ redCrystalTwoHandedSwordDescription.y = 2732 / 2 + 200;
nextScreen.addChild(redCrystalTwoHandedSwordDescription);
- // Add 'Two-hand Swords in stock' text asset to the center of the screen
- var twoHandSwordsInStockText = new Text2('Two-hand Swords in stock', {
- size: 50,
- fill: 0x000000 // Black color
- });
- twoHandSwordsInStockText.anchor.set(0.5, 0.5);
- twoHandSwordsInStockText.x = 1248 / 2;
- twoHandSwordsInStockText.y = redCrystalTwoHandedSwordDescription.y + 250; // Position below the description
- nextScreen.addChild(twoHandSwordsInStockText);
- redCrystalTwoHandedSwordsText.y = redCrystalTwoHandedSwordDescription.y + 300; // Position further below the description
- nextScreen.addChild(redCrystalTwoHandedSwordsText);
- // Add a new text box with black text under the 'redcrystaltwo-handedswordrecipe' asset
var redCrystalTwoHandedSwordClicksText = new Text2('(current ' + redCrystalTwoHandedSwordClicks + ')', {
size: 50,
fill: 0x000000,
alpha: 0.5
});
redCrystalTwoHandedSwordClicksText.anchor.set(0.5, 0.5);
redCrystalTwoHandedSwordClicksText.x = 1248 / 2 - 135;
- redCrystalTwoHandedSwordClicksText.y = 2732 / 2 + 260;
+ redCrystalTwoHandedSwordClicksText.y = 2732 / 2 + 330;
nextScreen.addChild(redCrystalTwoHandedSwordClicksText);
hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
};
- // Attach 'recipesout' asset to the 'RecipesScreen' object
var recipesOutGraphics = recipesScreen.attachAsset('recipesout', {
anchorX: 0.5,
- anchorY: 0.5
+ anchorY: 0.5,
+ interactive: true
});
- // Center the 'recipesout' asset on the screen
recipesOutGraphics.x = 2048 / 2;
recipesOutGraphics.y = 2732 / 2 + 1100;
- // Make the 'recipesout' asset interactive
- recipesOutGraphics.interactive = true;
- LK.getSound('paper').play();
- // Define the 'down' event handler for recipesOutGraphics
recipesOutGraphics.down = function (x, y, obj) {
- // Hide the 'recipesout' asset
recipesOutGraphics.visible = false;
- // Transition to the 'gameScreen'
gameScreen.visible = true;
- // Make the map visible after transitioning to the recipesout screen
map.visible = true;
- // Hide the current recipes screen
recipesScreen.visible = false;
setHelp(0);
setHelp(1);
setHelp(3);
setHelp(7);
+ if (storage.blueSwords >= 1 && storage.help == 11) {
+ setHelp(11);
+ }
};
- // Hide the current game screen
gameScreen.visible = false;
};
- // Center the 'recipes' asset on the gameScreenBackground
- recipes.x = gameScreenBackground.width / 2 - 1050; //{3u.1}
- recipes.y = gameScreenBackground.height / 2 + 150; //{3v.1}
- // Make the map visible when 'New Game' is clicked
+ recipes.x = gameScreenBackground.width / 2 - 1050;
+ recipes.y = gameScreenBackground.height / 2 + 150;
map.visible = true;
- // Hide the main menu
newGame.visible = false;
continueText.visible = false;
- // Disable the background
background.visible = false;
- // Create a new instance of the Anvil class
var anvil = gameScreen.addChild(new Anvil());
- // Initialize the anvil click counter from storage
anvil.clickCounter = storage.forgingSkill;
counterText.setText('Forging skill: ' + anvil.clickCounter);
- // Position 'The anvil' at the location of the anvil on the gameScreenBackground
- anvil.x = gameScreenBackground.x - 100; // Adjust x-coordinate based on the anvil's position on the background
+ anvil.x = gameScreenBackground.x - 100;
anvil.y = gameScreenBackground.y + 500;
- // Add a new object 'Magic Nursery'
var magicNursery = gameScreen.addChild(new Door());
- // Position 'Magic Nursery' to the left and up
magicNursery.x = 2048 / 4;
magicNursery.y = 2732 / 2.5;
setHelp(0);
setHelp(1);
@@ -1868,9 +1607,8 @@
anchorY: 0.5,
scaleX: -1
}));
}
-// Make the 'New Game' object clickable
newGame.interactive = true;
newGame.down = function (x, y, obj) {
if (newgameclearInterval.length > 0) {
for (var i = 0; i < newgameclearInterval.length; i++) {
@@ -1883,24 +1621,21 @@
storage.autogrowthRateClicked = false;
storage.theBlacksmithsApprentice = false;
storage.multiclickupgrade = false;
storage.help = 0;
- // Reset all saved data
storage.forgingSkill = 0;
storage.growthRate = 0;
storage.blueCrystalIngotScore = 0;
storage.blueCrystallScore = 0;
storage.greenCrystalIngotScore = 0;
storage.redCrystallScore = 0;
storage.redCrystalIngotScore = 0;
storage.greenCrystallScore = 0;
- storage.greenCrystalIngotScore = 0;
storage.blueSwords = 0;
storage.goldScore = 0;
storage.blueswordsclick = 0;
storage.greenAxeClicks = 0;
storage.redCrystalTwoHandedSwordClicks = 0;
- // Reset current variables
redCrystalIngotScore = 0;
blueCrystallScore = 0;
greenCrystallScore = 0;
greenCrystalIngotScore = 0;
@@ -1918,14 +1653,12 @@
redCrystalIngotScoreTxt.setText('RedCrystalIngot: ' + storage.redCrystallScore);
goldScoreTxt.setText('Gold: ' + goldScore);
startgame();
};
-// Create a new text object to display the click counter
var counterText = new Text2('Forging skill: ' + storage.forgingSkill, {
size: 50,
fill: 0xFFFFFF
});
-// Position the text object at the top right corner of the screen
counterText.anchor.set(0, 0);
LK.gui.topLeft.addChild(counterText);
counterText.y = 0;
counterText.x = 0;
@@ -1934,18 +1667,15 @@
fill: 0xFFFFFF
});
growthRateText.anchor.set(0, 0);
LK.gui.topLeft.addChild(growthRateText);
-growthRateText.y = counterText.height - 6; // Move the growth rate text 2 pixels higher
+growthRateText.y = counterText.height - 6;
growthRateText.x = 0;
-// Initialize hammer asset
-var hammer;
-hammer = game.addChild(LK.getAsset('hammer', {
+var hammer = game.addChild(LK.getAsset('hammer', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: -1
}));
-// Function to make the hammer follow the mouse/touch position
function updateHammerPosition(x, y) {
if (hammer) {
hammer.x = x;
hammer.y = y;
@@ -1991,10 +1721,9 @@
counterText.setText('Forging skill: ' + storage.forgingSkill);
}, 1000);
newgameclearInterval.push(intervalId);
}
-var seconds = Math.floor(Date.now() / 1000);
-seconds = seconds - storage.lastgametime;
+var seconds = Math.floor(Date.now() / 1000) - storage.lastgametime;
if (seconds * 60 * 5 > 18000) {
seconds = 18000;
}
if (seconds > 0) {
@@ -2020,37 +1749,33 @@
}
var intervalId = LK.setInterval(function () {
storage.lastgametime = Math.floor(Date.now() / 1000);
}, 1000);
-// Make the cursor follow the mouse/touch position
game.move = function (x, y, obj) {
updateHammerPosition(x, y);
};
-// Animate cursor rotation on click
game.down = function (x, y, obj) {
LK.getSound('hammer').play();
tween(hammer, {
rotation: -Math.PI / 2
}, {
duration: 125,
easing: tween.easeInOut,
onFinish: function onFinish() {
- // Create stars around the hammer for 0.25 seconds
for (var i = 0; i < 5; i++) {
var star = game.addChild(LK.getAsset('star', {
anchorX: 0.5,
anchorY: 0.5
}));
star.x = hammer.x - hammer.width / 2 + Math.random() * 100 - 25;
star.y = hammer.y + hammer.height / 2 + Math.random() * 100 - 25;
(function (star) {
- // Make the star move upwards
star.update = function () {
- star.y -= 5; // Move the star upwards by 5 pixels per frame
+ star.y -= 5;
if (star.x < hammer.x) {
- star.x += 2; // Move the star slightly to the right if on the left side of the hammer
+ star.x += 2;
} else {
- star.x -= 2; // Move the star slightly to the left if on the right side of the hammer
+ star.x -= 2;
}
};
LK.setTimeout(function () {
star.destroy();