From d8739d94e05fc98669d9b17594e1a276e50e2ddc Mon Sep 17 00:00:00 2001 From: Nero Ignis Date: Mon, 19 Apr 2021 00:58:48 +0200 Subject: [PATCH] Add useable resources for buildings; Refactor; New buildings & materials; add testing-buttons; add new assets; --- img/coal.png | Bin 0 -> 7343 bytes img/iron.png | Bin 6631 -> 1765 bytes img/medieval_blacksmith.png | Bin 0 -> 7738 bytes img/planks.png | Bin 0 -> 4422 bytes index.html | 34 +++++-- js/app.js | 176 +++++++++++++++++++++++++++++++----- 6 files changed, 180 insertions(+), 30 deletions(-) create mode 100644 img/coal.png create mode 100644 img/medieval_blacksmith.png create mode 100644 img/planks.png diff --git a/img/coal.png b/img/coal.png new file mode 100644 index 0000000000000000000000000000000000000000..3f994c98c4900b5bd0a6840568020ee7fb30a422 GIT binary patch literal 7343 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 VWpbznf9?PP002ovPDHLkV1kr>790Qo literal 0 HcmV?d00001 diff --git a/img/iron.png b/img/iron.png index 80108de5f1e8c5acb8ea695fede5fae84f30c036..69477d14d9613518cb4d2ff26214cfafedd2713b 100644 GIT binary patch delta 1685 zcmb7?|34E51IJZ2YF=8pT0_~TC^1eFYDO#`dDb#RZM8f365EZ$vCZ66PnHvsml4-A zYthzjCmZL>#EBJFZ5d6q%$cq5v@$edPtPCl{P4V9pC3P;*Zcj$NAIh%yS|HIofU~Z zf~Abj-gjU7-7a9ZAWne1s}^Qyqdt*|d-Lu9lvZr0&gx|QDm^*F6` z%<1Z|QwSd$%iqV#4f#-@>B$N9NOT)?6fK_1NmP5K1=O|z!*CrC}HL@1?Y z&)!ljyw}e%mole3mk=x4Q=;k>ug8K&>9wP| z7dzU3a?%oYsOB32>E|I3;dWs0FCfIVLDG&nDKxe9cjTAM@vvyZbhSPqq(c|>B~#mb zwg2x0&AoV$xeGWeYp~cf!!C|4gXxgcQ7>d@)<-RXZs;XNdzV)*Jb6Y=yy)j44~N@r zr?12tIfISl?5w9O*8QW;D%jqvf8@FU`igXfUj34XbrS*R6E3u@*5(DBl7b&GP3K#yCc<(C1Kj-Bakbu1 z{&tnY5cVv}z4PvmraOsPZnB`HjE!vvtkM0sHF44CL`u|KRn(ub7jgA(Ey>&KRzvDe z9$quP zgPT6-+9k$64mIM9CsnvJB+D)`?uU*A@3WzOTjl=p!*a{&M_ZCEGjBcF6CNj=T|Iv* zh!J20BesnD)tsA>gy$`S4?HtggIZ^7lB+~%7T0d3Hm_u=Qtp$FA~*q_`oiOMG^ek1 z$yrI}o&!I8#rV_0ph}({bZOBsW;0bdVxU|CuXn~Dqe7K&V1()462zhmO>k;O76QwH zaoO?;ZSuq1Y#>yl^{as%jQ@sF{&vZhDdV?~I3Rq+CX|OZ{^);nuBT;nILa#sw`d2; zrgVbL;HL|k%zBPuTCY#Uh&Ei2eYu_?k>o`bT?!XfWu%$sYtB=+II{Tu`(MPjM`d|( zwGw0P{2{DMb(ds%RPWd_59%c~^(OL2rpar>_tS^VLyG}yya1(R7@jz&C~0Z#b{SX! ziih_xP?dA@FOvvAC69sE_v*V!BLhKp)H0dFn$qnT66%unrfeG zngpwm()rP~n#Q==z0gn5sFyI|qi!b^v3P(<$9@|dT}BGCyEeg*m_)z{w+kzDY& zqC$VZ>L4TSzeY%j*s5%fGw1aoQ&Hi|PsoJ|tdCPE6-cxT*Rk7{qv}uZJ5Pf>Wr4>_ z+`Cl$#Mf_R1$%CS)R<#Ycld;;-S8a1gWi_(aVwDV{|n=P4-i+X&JcnIE8mY6G#uxB zs$@L;Cro1ffe`2$^V@@+UF+cQI4g^>cTHpA3u@tF2`X0bqV2-UW@FN6w<-p^ong_u z%>BvhKAit*lgJ8vNgzC7&d))_{PuZ8+00XA#pX92f`4L+ZBt)(yMDhl!c$1FVh4!i zx`B+-(y3g}EyTb|dZSBc+g}5stSq%nICfXFcqFEWxvyuJNS!3h5?$Mfz zO{z&2DonO>KW*~{?;9-EFyh+h)SW=WBn);hAEHpW5Gn8Ix;pihiJEegeV-6g-c#Jn zb2Xcdp(&I}KVIul=Zh2U;Gg4B3%?{@Ta#vcr zt+Pbze24#{I_M_-@lkZT@wpPy!(6~DZRo6JfeV3%nHu!lO`SrG0)IvdTnN@qyV`zs LzFt~U?{M@#Ub9jE delta 6589 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 diff --git a/img/medieval_blacksmith.png b/img/medieval_blacksmith.png new file mode 100644 index 0000000000000000000000000000000000000000..e5af2c13efe2e564e94a51a12d19c741f379243b GIT binary patch literal 7738 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 AYybcN literal 0 HcmV?d00001 diff --git a/img/planks.png b/img/planks.png new file mode 100644 index 0000000000000000000000000000000000000000..76a27055890300e6a2397ae0500c0d31a2d42c4b GIT binary patch literal 4422 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 M07*qoM6N<$f|if8EC2ui literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 4203ad3..f14fe27 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - Idle Buildup + Idle Gathering @@ -10,7 +10,7 @@ + + diff --git a/js/app.js b/js/app.js index 2ba066b..eec0282 100644 --- a/js/app.js +++ b/js/app.js @@ -2,12 +2,15 @@ let game = new Vue({ el: '#root', data: { money: 0, + loaded: false, resources: { wood: 50, stone: 0, iron: 0, bricks: 0, - corn: 0 + corn: 0, + coal: 0, + planks: 0 }, buildings: [ { @@ -40,6 +43,25 @@ let game = new Vue({ price: 100, priceMultiplicator: 2 }, + { + name: 'Carpenter', + resource: 'planks', + icon: 'medieval_lumber', + level: 0, + maxLevel: 15, + isOwned: false, + isUpgradeable: true, + amount: 5, + amountMultiplicator: 1, + intervalInSeconds: 25, + intervalMultiplicator: 0.80, + price: 15000, + priceMultiplicator: 2, + hasRequirements: true, + requires: { + wood: 2 + } + }, { name: 'Quarry', resource: 'stone', @@ -55,6 +77,41 @@ let game = new Vue({ price: 250, priceMultiplicator: 2 }, + { + name: 'Coal Mine', + resource: 'coal', + icon: 'medieval_mine', + level: 0, + maxLevel: 15, + isOwned: false, + isUpgradeable: true, + amount: 2, + amountMultiplicator: 1, + intervalInSeconds: 20, + intervalMultiplicator: 0.95, + price: 600, + priceMultiplicator: 2 + }, + { + name: 'Blacksmith', + resource: 'iron', + icon: 'medieval_blacksmith', + level: 0, + maxLevel: 15, + isOwned: false, + isUpgradeable: true, + amount: 2, + amountMultiplicator: 3, + intervalInSeconds: 20, + intervalMultiplicator: 0.95, + price: 1000, + priceMultiplicator: 2.5, + hasRequirements: true, + requires: { + stone: 2, + coal: 1 + } + }, { name: 'Farm', resource: 'corn', @@ -81,6 +138,7 @@ let game = new Vue({ this.loadBuildings(); this.reloadBuildings(); + this.loaded = true; }, methods: { saveMoney() { @@ -101,9 +159,18 @@ let game = new Vue({ case 'stone': this.resources.stone += amount; break; + case 'bricks': + this.resources.bricks += amount; + break; case 'corn': this.resources.corn += amount; break; + case 'coal': + this.resources.coal += amount; + break; + case 'planks': + this.resources.planks += amount; + break; case 'gold': this.money += amount; break; @@ -127,8 +194,6 @@ let game = new Vue({ }, reloadBuildings() { - this.killIntervals(); - let game = this; this.buildings.forEach((building) => { if (building.isOwned) { @@ -139,7 +204,26 @@ let game = new Vue({ initiateIntervals(building) { building.intervalEarnID = setInterval(() => { - game.add(building.amount, building.resource); + if (building.requires) { + if ( + building.requires.wood > game.resources.wood || + building.requires.stone > game.resources.stone || + building.requires.iron > game.resources.iron || + building.requires.bricks > game.resources.bricks || + building.requires.coal > game.resources.coal || + building.requires.corn > game.resources.corn + ) { + building.hasMissingResources = true; + clearInterval(building.intervalLoadingID); + } else { + building.hasMissingResources = false; + game.useRequiredResources(building); + game.add(building.amount, building.resource); + game.reloadSingleBuilding(building); + } + } else { + game.add(building.amount, building.resource); + } }, building.intervalInSeconds * 1000); building.intervalLoadingID = setInterval(() => { @@ -156,16 +240,6 @@ let game = new Vue({ this.loadedIntervals.push(building.intervalEarnID, building.intervalLoadingID); }, - killIntervals() { - this.buildings.forEach((building) => { - building.loader = 0; - }); - - this.loadedIntervals.forEach((interval) => { - clearInterval(interval) - }); - }, - buyBuilding(building) { if (this.money >= building.price) { this.sub(building.price); @@ -193,8 +267,6 @@ let game = new Vue({ }, upgradeBuilding(building, first = false) { - // this.killIntervals(); - if (building.level < (building.maxLevel - 1)) { building.level++; } else { @@ -202,13 +274,15 @@ let game = new Vue({ building.isUpgradeable = false; } - building.price = Number(building.price * building.priceMultiplicator).toFixed(2); + building.price = Number( + building.price * building.priceMultiplicator + ).toFixed(2); if (first === false) { + building.amount = building.amount * building.amountMultiplicator; building.intervalInSeconds = Number(building.intervalInSeconds * building.intervalMultiplicator).toFixed(2); } - // this.reloadBuildings(); this.reloadSingleBuilding(building); this.saveBuildings(); }, @@ -247,14 +321,17 @@ let game = new Vue({ generateQuest() { let possibleAmountsForQuest = [ - 0, 5, 10, 15, 20, 25, 30, 35 + 0, 0, 0, 5, 10, 15, 20, 25, 30, 35 ]; - + let randomWood = 0; let randomStone = 0; let randomIron = 0; let randomBricks = 0; let randomCorn = 0; + let randomCoal = 0; + let randomPlanks = 0; + let rewardSum = 0; @@ -270,7 +347,7 @@ let game = new Vue({ if (this.resources.iron > 0) { randomIron = this.getRandomElement(possibleAmountsForQuest); - rewardSum += (randomIron * 15); + rewardSum += (randomIron * 200); } if (this.resources.bricks > 0) { @@ -283,6 +360,16 @@ let game = new Vue({ rewardSum += (randomCorn * 30); } + if (this.resources.coal > 0) { + randomCoal = this.getRandomElement(possibleAmountsForQuest); + rewardSum += (randomCoal * 10); + } + + if (this.resources.planks > 0) { + randomPlanks = this.getRandomElement(possibleAmountsForQuest); + rewardSum += (randomPlanks * 5); + } + if (rewardSum > 0) { this.currentQuest = { wood: randomWood, @@ -290,6 +377,8 @@ let game = new Vue({ iron: randomIron, bricks: randomBricks, corn: randomCorn, + coal: randomCoal, + planks: randomPlanks, reward: rewardSum }; } else { @@ -309,7 +398,8 @@ let game = new Vue({ this.resources.stone >= this.currentQuest.stone && this.resources.iron >= this.currentQuest.iron && this.resources.bricks >= this.currentQuest.bricks && - this.resources.corn >= this.currentQuest.corn + this.resources.corn >= this.currentQuest.corn && + this.resources.coal >= this.currentQuest.coal ); }, @@ -321,11 +411,51 @@ let game = new Vue({ this.resources.iron -= this.currentQuest.iron; this.resources.bricks -= this.currentQuest.bricks; this.resources.corn -= this.currentQuest.corn; - + this.resources.coal -= this.currentQuest.coal; + this.generateQuest(); } else { return false; } + }, + + useRequiredResources(building) { + this.resources.wood -= building.requires.wood; + this.resources.stone -= building.requires.stone; + this.resources.iron -= building.requires.iron; + this.resources.bricks -= building.requires.bricks; + this.resources.corn -= building.requires.corn; + this.resources.coal -= building.requires.coal; + }, + + getResourceIconForBuilding(building) { + return this.getResourceIcon(building.resource); + }, + + getResourceIcon(resource) { + return '' + resource + ''; + }, + + getRequirementsForProduction(building) { + let requirementList = '
Uses'; + + if (building.requires.wood) { + requirementList += ' ' + building.requires.wood + ' ' + this.getResourceIcon('wood'); + } + + if (building.requires.stone) { + requirementList += ' ' + building.requires.stone + ' ' + this.getResourceIcon('stone'); + } + + if (building.requires.coal) { + requirementList += ' ' + building.requires.coal + ' ' + this.getResourceIcon('coal'); + } + + if (building.requires.iron) { + requirementList += ' ' + building.requires.iron + ' ' + this.getResourceIcon('iron'); + } + + return requirementList + ' / ' + building.amount + ' ' + this.getResourceIconForBuilding(building); } }, });