From 66d5845213c6a6e6ceb984f4ff66e5150ec90e43 Mon Sep 17 00:00:00 2001 From: Nero Ignis Date: Sun, 18 Apr 2021 12:09:22 +0200 Subject: [PATCH] Refactor; Add farm; reformat; --- .idea/idle-build-up.iml | 1 + .idea/jsLibraryMappings.xml | 2 +- img/corn.png | Bin 0 -> 3016 bytes img/medieval_farm.png | Bin 0 -> 6561 bytes index.html | 92 ++++++++++++++-------------- js/app.js | 119 ++++++++++++++++++++++-------------- 6 files changed, 120 insertions(+), 94 deletions(-) create mode 100644 img/corn.png create mode 100644 img/medieval_farm.png diff --git a/.idea/idle-build-up.iml b/.idea/idle-build-up.iml index 1a5cf9a..a2f0531 100644 --- a/.idea/idle-build-up.iml +++ b/.idea/idle-build-up.iml @@ -5,5 +5,6 @@ + \ No newline at end of file diff --git a/.idea/jsLibraryMappings.xml b/.idea/jsLibraryMappings.xml index d3f1dd9..2aebe75 100644 --- a/.idea/jsLibraryMappings.xml +++ b/.idea/jsLibraryMappings.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/img/corn.png b/img/corn.png new file mode 100644 index 0000000000000000000000000000000000000000..79db6dc8ad3b272ca14c236e180a64fb6821163e GIT binary patch literal 3016 zcmV;(3pezMP)000YCNklk=OzW?084H4S4`h0Xv@r{xAAp9CrD;(=Tm&<1ZG&HsW83nK5^XlnHx;{N$I!lAp zYlVgvyboWeo|Z)GMmpYhb2NS}A2_4n>)`9vQ>x0hpw@1kzQJ<(nFWJc0FBrRR(CzR$6&g=^ zP1Gv1(Nosaik7Yg(Zf(!Z8W2r2<}8VqbHV8P2}`YCaaA{R1-x#6l%4Jh-#vzhn%A) z8KRoVwNlp6lWb8RDrYi`lu&Wp-bC33kgnB5Ussy?@e(!rRG|`OE)q4>dPpXF!h5}9+ubUIw z&&SZ%dhJCM%0kqB9j{goNJ?ncCZ`*jCiKaBYu}Ecky3<4mStNf0MsFF(q3;=4@`>M znB|dU^Uq6h^yi^sG7mtXtC`^~vc_g< zdDS((@T_`hv)Za=7`Q5%rR7)G1i+ilYD>+4(IR2fHQdq)5j=|?+N`#SMo+n@#yI-Z z&^7V!Osg%T(GwQce0E_qQ)pt~k*u~*M^E;s#*L*Fa(L5OZDG2Kk;s0(J}j+hzzb{i z! ztF4xMR72a+3Q})rZQ1}wglDwSNg3cxXSK1?LrYY{%F^;%mo$xoR_TDZ?VU!113aby zMA86c9X-*FYFN~P;iYzPL(5U(c=d2>AXPz8aPN zWE(0uvcnD!s^XUqp`PEblT`mmdYJGSJyj8JAIk_Xqm@mZ+}v?_;XzfO*cR&QzvZ2)Lbs1)D(fH)mHI`s16)CPpnv!QCNuy+4|A;)TBNMHR%plJI_DZ5 z)Y@NnI7WzzVcLPYVLJ@q@R0y!Ib7#F!GmfZ-s~9SUmYz+f0uQP2pPQdT35h_aH#l; z4by^i4UeRMR*2*2W$2HVdUtdMIx$x6u-snPPOb2Ml;MG1!70&t#D|ajG&t}cfHDeR z_Yt7w(>Y)8@&WWxV0?3HyBy(V2yM@AZTVHaAUMzPXaR(RojDm1c;JFOiJ8WJ%gv7S z4G(JP`za~_kFj=dIKU&h{eCO?a;6ugGddxb^~ zp4WoGpVW4l_@@lvk!CWlZ7*nXhi4S*LLA^Y?J?@YF_)r_V z{fX3YZ1Dj6>)DQ$zqCsjKsd2dPwy$h%V6!Y>D7cVa790EL3i|~&~1Bbv+(pf+$Ibl ze*J>V{6`5M4h~`(QSDL(_e4rBJ3PSv@dFIZf0KgYk>)uOCrcgNGp!~#GQ3<16{Uf= z{sr2B0pWr5g@g0rJ<_b={%v}zEC^2rcyxy_{li@tNFsb4VgkTBo%^3Ta2rdM&Mo}G zCL6fC@SxxnDgquUy*H8wxQ2mehmaG(4#juuJDFOhu0P~x;F6riGB$Wk zN(f*qfQzmoz}>$X|Ai@Di){G5a zi_$j}+|yeMg7XYd27sPmzt)4c4n2i7oaz<|gZ7T|4NnL7LWhFKaU`G$4{FJ?JJIr& zI~6<{<3Qh5;te_b` z>tjJyP7eo|>z_6Yh5;VylO^cdZTpgYh`Q!?-Su?q9M*aW1HR1gym*hkbZuYq=+`^r zUyiX_CC_YG#ZnJxxiGZhfh)pN*KXaNSQ_KCSm`0H^qwX>{dCEqU4Fm*+JeWbQ&d}| z+XbTq3q7PU|IvcS3f#QMYP($>{aG)4w4khqF#iPsNCO^=d2ar`#bc+4#=x%H5Z)y5j$f}Z5XxsOzp#AfP#^tSFIv$P zO?cXYWKc>=OV$-MdZGa@6qc6MdgwEH3IZ>bmX^$;g;zcF3vYhUJx7$T367q;!i$`x zCAHO7Ko8x*i?pRBd-OD&9u|V9TUtGJyT8&ApQWCrSgY-%7kFT4E$ptEt)8A#R@+qc zM1rR*tuW}J)=F*grYtSB!k~v$KijW-?e{U1Ahs=N@2Jgoo#04;PySaefw zW^{L9a%BKwc`jmXZ*OE|c`jped2n=ZE@^FHXJsx>PDe5{MQ&qnWMy)w27m4V0000< KMNUMnLSTYK9M6aV literal 0 HcmV?d00001 diff --git a/img/medieval_farm.png b/img/medieval_farm.png new file mode 100644 index 0000000000000000000000000000000000000000..3eb4b28dcc6d8d0efb52a5af9d4898b634cd3640 GIT binary patch literal 6561 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 Ts0M%T00000NkvXXu0mjfZQ$1` literal 0 HcmV?d00001 diff --git a/index.html b/index.html index d2ed71e..bbd9e65 100644 --- a/index.html +++ b/index.html @@ -13,73 +13,73 @@
-
-

Resources

-
-
-

{{ this.getAmount() }}

+ +

Resources

+
+
+

{{ this.getAmount() }}


-

{{ resources.wood }}


-

{{ resources.stone }}


-

{{ resources.iron }}


-

{{ resources.bricks }}


+

{{ resources.wood }}

+

{{ resources.stone }}

+

{{ resources.iron }}

+

{{ resources.bricks }}

- +
-
-

Owned buildings

-
-
-
    +
    +

    Owned buildings

    +
    +
    +
    • -
      - -
      - {{ building.name }} (Level {{ building.level }})
      - {{ building.amount }} / {{ building.intervalInSeconds }}s
      +
    +
    + +
    + {{ building.name }} (Level {{ building.level }})
    + {{ building.amount }} / {{ building.intervalInSeconds }}s
    - {{ building.loader }} % + {{ building.loader }} %
+
+ + +
+
+

Available buildings

- - - -
-
-

Available buildings

-
-
-
    -
  • - -
    - -
    - {{ building.name }}
    - {{ building.amount }} / {{ building.intervalInSeconds }}s
    - -
  • -
-
-
+
+
    +
  • + +
    + +
    + {{ building.name }}
    + {{ building.amount }} / {{ building.intervalInSeconds }}s
    +
  • +
+
+
+ + + - \ No newline at end of file diff --git a/js/app.js b/js/app.js index 5178b87..0691dab 100644 --- a/js/app.js +++ b/js/app.js @@ -4,52 +4,74 @@ let game = new Vue({ money: 0, resources: { wood: 0, - stone: 0 + stone: 0, + iron: 0, + bricks: 0, + corn: 0 }, buildings: [ { name: 'Bank', - intervalInSeconds: 15, - amount: 100, - level: 1, - price: 1000, resource: 'gold', + icon: 'medieval_largeCastle', + level: 1, + maxLevel: 20, isOwned: true, isUpgradeable: true, - maxLevel: 20, + amount: 100, + amountMultiplicator: 1.5, + intervalInSeconds: 30, + intervalMultiplicator: 1, + price: 1000, priceMultiplicator: 10, - intervalMultiplicator: 0.95, - icon: 'medieval_largeCastle' }, { name: 'Lumberjack', - intervalInSeconds: 10, - amount: 2, - level: 0, - price: 100, resource: 'wood', + icon: 'medieval_lumber', + level: 0, + maxLevel: 15, isOwned: false, isUpgradeable: true, - maxLevel: 15, - priceMultiplicator: 2, + amount: 2, + amountMultiplicator: 1, + intervalInSeconds: 10, intervalMultiplicator: 0.95, - icon: 'medieval_lumber' + price: 100, + priceMultiplicator: 2 }, { name: 'Quarry', - intervalInSeconds: 20, - amount: 2, + resource: 'stone', + icon: 'medieval_mine', level: 0, + maxLevel: 15, + isOwned: false, + isUpgradeable: true, + amount: 2, + amountMultiplicator: 1, + intervalInSeconds: 20, + intervalMultiplicator: 0.95, price: 250, - resource: 'stone', + priceMultiplicator: 2 + }, + { + name: 'Farm', + resource: 'corn', + icon: 'medieval_farm', + level: 0, + maxLevel: 25, isOwned: false, isUpgradeable: true, - maxLevel: 15, + amount: 5, + amountMultiplicator: 2, + price: 500, priceMultiplicator: 2, - intervalMultiplicator: 0.95, - icon: 'medieval_mine' + intervalInSeconds: 60, + intervalMultiplicator: 1 }, ], + currentQuest: null, loadedIntervals: [] }, created() { @@ -72,16 +94,19 @@ let game = new Vue({ add(amount = 0, resource = 'gold') { switch (resource) { case 'wood': - this.resources.wood += amount; - break; + this.resources.wood += amount; + break; case 'stone': - this.resources.stone += amount; - break; + this.resources.stone += amount; + break; + case 'corn': + this.resources.corn += amount; + break; case 'gold': - this.money += amount; - break; + this.money += amount; + break; } - + return this.saveMoney(); }, @@ -91,7 +116,7 @@ let game = new Vue({ }, getAmount() { - return this.money; + return this.money.toFixed(0); }, getAmountFormatted() { @@ -108,24 +133,24 @@ let game = new Vue({ } }); }, - + initiateIntervals(building) { building.intervalEarnID = setInterval(() => { - game.add(building.amount, building.resource); - }, building.intervalInSeconds * 1000); - - building.intervalLoadingID = setInterval(() => { - if (building.loader < 100) { - building.loader += 10; - } else { - building.loader = 10; - } - - game.$forceUpdate() - }, building.intervalInSeconds / 10 * 1000) - - - this.loadedIntervals.push(building.intervalEarnID, building.intervalLoadingID); + game.add(building.amount, building.resource); + }, building.intervalInSeconds * 1000); + + building.intervalLoadingID = setInterval(() => { + if (building.loader < 100) { + building.loader += 10; + } else { + building.loader = 10; + } + + game.$forceUpdate() + }, building.intervalInSeconds / 10 * 1000) + + + this.loadedIntervals.push(building.intervalEarnID, building.intervalLoadingID); }, killIntervals() { @@ -184,12 +209,12 @@ let game = new Vue({ this.reloadSingleBuilding(building); this.saveBuildings(); }, - + reloadSingleBuilding(building) { clearInterval(building.intervalEarnID); clearInterval(building.intervalLoadingID); building.loader = 10; - + this.initiateIntervals(building); },