From 4acbe34b3554fb9be5e61cfce9b1f6b72694adbe Mon Sep 17 00:00:00 2001 From: Aaron Mueller Date: Sat, 6 Dec 2014 21:47:58 +0100 Subject: [PATCH 1/7] Add bars only on mining tiles --- src/tiles/tile.coffee | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/tiles/tile.coffee b/src/tiles/tile.coffee index ce9a8f5..98a0532 100644 --- a/src/tiles/tile.coffee +++ b/src/tiles/tile.coffee @@ -57,16 +57,17 @@ class Tile if @currentMiner app.layer.drawRegion app.images.entities, [16, 0, 8, 8], x*8, y*8 + # Draw the status indicator. + numPercent = Math.floor((tileLayer.amount*6)/app.game.maxTileAmount) + for i in [0..numPercent] + color = ["#f00", "#a00", "#f60", "#aa0", "#0a0", "#0a0"][numPercent] + color = ["#f00", "#f00", "#f80", "#ff0", "#0f0", "#0f0"][numPercent] if i == numPercent + app.layer.setPixel(color, x*8+1+i, y*8+6) + if @isSelected app.layer.drawImage app.images.selected, x*8, y*8 if @isActive app.layer.drawImage app.images.active, x*8, y*8 - # Draw the status indicator. - numPercent = Math.floor((tileLayer.amount*6)/app.game.maxTileAmount) - for i in [0..numPercent] - color = ["#f00", "#a00", "#f60", "#aa0", "#0a0", "#0a0"][numPercent] - color = ["#f00", "#f00", "#f80", "#ff0", "#0f0", "#0f0"][numPercent] if i == numPercent - app.layer.setPixel(color, x*8+1+i, y*8+6) From 3a4d5e37eb05b3ff144bc9c19f060b89fa758fe0 Mon Sep 17 00:00:00 2001 From: Jonas1989 Date: Sat, 6 Dec 2014 21:49:28 +0100 Subject: [PATCH 2/7] add entities --- public/images/entities.png | Bin 381 -> 402 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/entities.png b/public/images/entities.png index 8c2922825e21953ddc79d40a4d1284674543080b..afd74ed6d5d9a91849f31c66eb9ff53b9849467c 100644 GIT binary patch delta 305 zcmV-10nYyY0+IueLk2MpKCwhQkx46m0SHM%K~z}7?UON1!$1&4-#FYLM{pgba&ih3 z3M!|_1!!^s5L|$U3m_yaibxzI6>^Q_bXK|~QabBX-~}gfVT8cVd}*55(e9hSGbV|k ztJ$Rh9v)wef09Y!`sQBmZ|T87JbdQvcK-Jul1L|o1fmLo(n%pn)MK-cwb{piC;7@n zZS#?~`RMbGhMJ~`g6+mPfgODbz-~2`t^3%z&u%qVLnGE(4(KfhNNVj|)TZdd&IJ%2 zsONsGC=6WaJUCGw#)V!_Iy%monaU)iOft-@HQZSkxG4o;45w8N=3m`D0 zy6w^rx1jSi>{1aO%K;p~0UW>}0UW>q9KZn_zyUr0k6x~=fQA+V00000NkvXXu0mjf DnzM$Z delta 284 zcmV+%0ptFX1N{P!Lk0;FJujq>kx46m0P{&iK~z}7?b9)80znkU@&8ksG&UBtg0^Cn zc#6Q*dWsw%E6D-0O&?;t;4NY$whG!>DkPPBRvUJ8g%P4Q@9So!c)xjX#>5YC{2>bR z{`O*AIrbV41+bj;atF=M_$G)-TKp@i=MMT&?+=k?``Z#g^GBa&gPXJVZ8{bF@ zf|o+2yLDH#sbQNMyLI#Kf4N!&9f?i>d=zyS_$ ifCC)h00%h00SCa4VZsolKxzOB0000XM6Af From bd46e22b2878474f3babe60aba016c350cba54af Mon Sep 17 00:00:00 2001 From: Jonas1989 Date: Sat, 6 Dec 2014 21:53:35 +0100 Subject: [PATCH 3/7] add entities --- public/images/entities.png | Bin 402 -> 492 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/entities.png b/public/images/entities.png index afd74ed6d5d9a91849f31c66eb9ff53b9849467c..1f0ebe159036a08522e15151f2150acdfd88f94a 100644 GIT binary patch delta 394 zcmV;50d@Y81MCBkLk2Y&*$xEwkx49nVo5|nR9M69mN83$Q51%sqpk%ltqHn{lLq|< zQP4?Ae}FFjfg+d2miz%4I3)!AhoGFoIWStRC9uIs-WIQZlA(rX#P`C1k8`;9y!Sol zeD|6p94e)p04^KX#vCk){{$g`lhX@5J?4Qr0ENt}BJmcrv+CLseG5tC(|rkl#MlJN zr~8tGvvM&ziI*AW2qW*b0mtxFi} z#0Yj`c+0v7fmPJnv%3k2e^Y`GKqTIxK%e}WRAKCcDgYTvan*Y>$O_=R_F~83eQ3-c zWct0l0JiNhv{f2r69}+n{4D}`l~V543HUwW6YvSl5Eu-j8VsY_${2n;AI>D+Ik=zs z-ZX_PrxVO6WA6$0pRK%r)%=U!~g&Q07*qoM6N<$f?5^2KL7v# delta 304 zcmV-00nh&I1Cj%fLk2MpKCwhQkx49n2uVaiR9M69lQB-iKoCXWINTsda2=&`atag* zDyPT=XmSA%T!4lPAS5b^NE{;-a*gD4R=OloI_p#51t)P~guu;wX`0#5?wh|eCW)Y{ z*`)v;9$$=ql1bwF=3eh_>A^ufeCFq9KZn|9KZn_zyTb<0X_haUaqZxh86+<0000 Date: Sat, 6 Dec 2014 22:07:28 +0100 Subject: [PATCH 4/7] Refactor the miners to entity --- src/entities/miner.coffee | 2 ++ src/game.coffee | 6 +----- src/tiles/tile.coffee | 29 ++++++++--------------------- src/tools.coffee | 5 ++++- 4 files changed, 15 insertions(+), 27 deletions(-) diff --git a/src/entities/miner.coffee b/src/entities/miner.coffee index 8bd3b2d..996655f 100644 --- a/src/entities/miner.coffee +++ b/src/entities/miner.coffee @@ -1,3 +1,5 @@ class Miner tick: (tile) -> tile.click "left" + + sprite: [16, 0, 8, 8] diff --git a/src/game.coffee b/src/game.coffee index d273165..023d34c 100644 --- a/src/game.coffee +++ b/src/game.coffee @@ -49,11 +49,7 @@ app.game = createMiner: -> if @currentSelectedTile and @checkRessources 'lubinit', 30, true - newMiner = new Miner - - @miners.push = newMiner - @currentSelectedTile.attachMiner newMiner - + @currentSelectedTile.entity = new Miner @currentSelectedTile.deselect() if @currentSelectedTile @currentSelectedTile = null diff --git a/src/tiles/tile.coffee b/src/tiles/tile.coffee index 98a0532..c15ffc7 100644 --- a/src/tiles/tile.coffee +++ b/src/tiles/tile.coffee @@ -1,9 +1,7 @@ class Tile constructor: -> - resTypes = (k for own k of app.game.resources) - @layers = [] - for restype, i in resTypes + for restype, i in allResourceTypes() @layers.push new Tilelayer( type: restype, depth: i, @@ -11,25 +9,21 @@ class Tile ) @currentLayer = 0 + @entity = null @isActive = false - died: false - click: (button)-> - if button == "left" and !@died + if button == "left" if @layers[@currentLayer].collect() name = app.layerIndexToName(@currentLayer) app.game.resources[name] += 1 else @currentLayer += 1 - - if @currentLayer == Object.keys(app.game.resources).length-1 - @died = true - - @currentMiner = null if @currentMiner + # If we reach the bottom, the entity on top dies. + @entity = null if @currentLayer == allResourceTypes().length-1 tick: -> - @currentMiner.tick @ if @currentMiner + @entity.tick @ if @entity moveIn: -> @isActive = true @@ -43,19 +37,12 @@ class Tile deselect: -> @isSelected = false - attachMiner: (miner) -> - if !@currentMiner - @currentMiner = miner - - detachMiner: -> - @currentMiner = null - render: (x, y)-> tileLayer = @layers[@currentLayer] app.layer.drawRegion app.images.layers, tileLayer.sprite, x*8, y*8 - if @currentMiner - app.layer.drawRegion app.images.entities, [16, 0, 8, 8], x*8, y*8 + if @entity + app.layer.drawRegion app.images.entities, @entity.sprite, x*8, y*8 # Draw the status indicator. numPercent = Math.floor((tileLayer.amount*6)/app.game.maxTileAmount) diff --git a/src/tools.coffee b/src/tools.coffee index 714e7e6..a2e8dab 100644 --- a/src/tools.coffee +++ b/src/tools.coffee @@ -1,2 +1,5 @@ getRandomInt = (min, max) -> - Math.floor(Math.random() * (max - min + 1)) + min; \ No newline at end of file + Math.floor(Math.random() * (max - min + 1)) + min; + +allResourceTypes = -> + (k for own k of app.game.resources) From cccb2eff5b0ccf66b5f88485c6ed27db44b1fd89 Mon Sep 17 00:00:00 2001 From: Aaron Mueller Date: Sat, 6 Dec 2014 23:17:58 +0100 Subject: [PATCH 5/7] More refactoring work .... --- src/game.coffee | 12 ++---------- src/tools.coffee | 8 ++++++-- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/game.coffee b/src/game.coffee index 023d34c..a3791d3 100644 --- a/src/game.coffee +++ b/src/game.coffee @@ -17,10 +17,8 @@ app.game = @hud.render() - step: -> - mousedown: (event)-> - tile = @posToTile(event.x, event.y) + tile = posToTile(event.x, event.y) tile.click(event.button) @currentSelectedTile.deselect() if @currentSelectedTile @@ -28,7 +26,7 @@ app.game = @currentSelectedTile = tile mousemove: (event)-> - tile = @posToTile(event.x, event.y) + tile = posToTile(event.x, event.y) if tile if tile != @currentHoveredTile @@ -50,12 +48,6 @@ app.game = createMiner: -> if @currentSelectedTile and @checkRessources 'lubinit', 30, true @currentSelectedTile.entity = new Miner - @currentSelectedTile.deselect() if @currentSelectedTile - @currentSelectedTile = null - - posToTile: (x, y)-> - pos = (Math.floor(y/8)*20) + Math.floor(x/8) - @map[pos] checkRessources: (type, amount, drain = false) -> if @resources[type] >= amount diff --git a/src/tools.coffee b/src/tools.coffee index a2e8dab..91de026 100644 --- a/src/tools.coffee +++ b/src/tools.coffee @@ -1,5 +1,9 @@ getRandomInt = (min, max) -> - Math.floor(Math.random() * (max - min + 1)) + min; + Math.floor(Math.random() * (max - min + 1)) + min; allResourceTypes = -> - (k for own k of app.game.resources) + (k for own k of app.game.resources) + +posToTile = (x, y)-> + pos = (Math.floor(y/8)*20) + Math.floor(x/8) + app.game.map[pos] From a84905a74db5600722485630a2462a713e224047 Mon Sep 17 00:00:00 2001 From: Aaron Mueller Date: Sat, 6 Dec 2014 23:20:51 +0100 Subject: [PATCH 6/7] Show the miner again --- src/entities/miner.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/entities/miner.coffee b/src/entities/miner.coffee index 996655f..cd7c9d6 100644 --- a/src/entities/miner.coffee +++ b/src/entities/miner.coffee @@ -2,4 +2,4 @@ class Miner tick: (tile) -> tile.click "left" - sprite: [16, 0, 8, 8] + sprite: [0, 16, 8, 8] From 599c7ae45542b16591911f4ffc0d446e730a43e0 Mon Sep 17 00:00:00 2001 From: Jonas1989 Date: Sat, 6 Dec 2014 23:47:39 +0100 Subject: [PATCH 7/7] add entities --- public/images/entities.png | Bin 492 -> 510 bytes public/images/hud.png | Bin 1197 -> 1490 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/public/images/entities.png b/public/images/entities.png index 1f0ebe159036a08522e15151f2150acdfd88f94a..6c412f238cf8dba2aa443e7aa3961f0337d6d6b4 100644 GIT binary patch delta 414 zcmV;P0b%~^1O5Y$LI)Nv8-%G#VUbBJe{@MiK~z}7?Up}FLSYn#pJT2CEj1?SD$<}q zbE_EWq~!eoy7&c(S{hsG17zeH$DF|S9|9D{hCyD~BZ|vyqw#Yo^0F;g%6;CzTf7+~# zZKE$GiDIrJf#{h)#au^{aII3#d+|y+uSz+OKMv4sXXv&w-nzqB#7(>LL14a;RGosV zPCiM7s zz^Y|AXg?X`1+cyKU~92C*zZ5cf5-Rm39z8Y&_-#PNhm_V`da{1r||0lVGo1=AwVBM z_cfvJYeIpH;miF}-^SAmSAG9`Gn0GM&BU&eWMj*~s$~Uu4+_7}ciWlo!C_-9!KuzZ zEjY+Gu^woC0e_}~QK~z}7?Upf1f>9KPpQEk?Ev*TMY{(&Nw#+Lj68aO2c{fD5O!Z|QntR=9)N!}K(ev+YvX2kcxfsb>z_q_K# z=Y02?BpfQGoB%Ex*Tx(yivI*5fRob;Jw4`uIsk>tt0M6hwX^El5`7Cvnob0=d1)QwLl!199cUEt?ua-G13{o^NA4;7&VAbQvYOa}_W% pxwx5W?LFX+p-;dk;1k#uJ^|qBAE#^b!o&ao002ovPDHLkV1glay1xJb diff --git a/public/images/hud.png b/public/images/hud.png index 2c2074c6e89ca1fc2eade72f5ccc1d2370ddd08f..1adf7a705f2974c179fd72bff8620ef668d91ce9 100644 GIT binary patch delta 1416 zcmV;31$X+b3DOIY7YZH-1^@s6s}B_@ks%=m78oBB!!JycNh^N^NJ&INRCwC$nonpP zRUF5^@6GJYWH-Ai*|uv9Iqabj2n1}lDcC~rBwhkVG$K^mOAk2|q0rPQE?o} zd=ryX`*zdoS1wB?q?#7^Ls(q=NzG8Z8*ujb)w+Wpj=oiAzRedm_w~k~z4MV|!fUg4 z>P$HLQc}%OyBqM+yI)BMZr`{Wxbo!&@^Dsc0D#u7^E!V#7QuGzwTlDe>eU75?SEa7j;u@U1({v20kJrt-K&?!`E7f6OsdQkFKw-^mPt|vpl zy{F!FEFxY1g}LXY`=^FdM47RJ40vt!ju<|qmWx|-p}!pR%+*anx(LT8tL+V&k8z$j zycUn!8#atHrkAdFD*QM@I@@zj&!izfj|w3jV8DN07MJP{GWSrTHTC zUY#3IM5>6|@~`EF2xc`gyp_{9W5PILAcs7TEXTzZUT3~mG{Tjht*Rl@^#@HUgoyh= zXT^U822E}jx9D<=ibxevD`MJ@U=h>oTz;Q`fJA;5W=MO>)xssrbsvmZ1ogC!;~YH1|)x6>B2rtQz0qyYodV4b_J*{h}>+)jviC9 z)~O*xL~vv%f&vP#vo<#+3l>b>7o)IO%g~b{Xwh0L#u~8#$7}sMa>&Dk=>?HxH4zF;bYi{s|;z#yd50S0W;XUh!;h~!N5-el;> z5G-M@X9)&nsMV7pX+Oxu5R33@R<|LjO(k?BOq58prfZ`aqsVY5(R^ z>}-hPqp1N!W*^jpkDnhS(=%!J!liN5jydG1*B?Cmt&fHq!~>H5VO2Ul#A;?f0QeUe WZM0?5-huxB0000`m4jkfFhB!ye}9^|3$*Pk#FveLe9i zZk)Nr@|np2IXx$&?^2G~*5N0L^==4{2QS5SHyb{Bsa}R$>W^#Z|%>4>uQ3cLwEcfI0 zGf*BAoPNI-H_qH5naKhA!{2uhyQiY>-6R88gs&0(k*Yo3B7j=!(IXXwAE)~R;agr_ zuG_n?~+ zV8<;yn|cNSFaZ`HYEx0n6J&VQudTX{+vz33|LhCQB+)UVr^`(Tbd8LKD;fK$Y zl2AaO{=ZG6(#G56YGD<}V#n&XCKG2<315T&6ptvj`*)zP7ytmhOGoi`0mLNGI(3*{ z1HM>EC@@k6%OjwMm;`!{!C=&T3~XQ%YFy#!{g&YFsJDX*2X%Ypw*E-mSy>y$qdK z|J%)J3138|RI}ekh!!a~(;d{ZMM?Nx&^6%3$xUeO<+r&w#9l=UHunHh5=z;Ejj{#1 zd6%X7$7Z#*&=D- zcdusJtgz!C3-;vID+z_WR@_ZHyDn$P#4JC9gfIH`D}Lv{ZwvOvYFy#0wpM&7+k$^5 zU+h*`wz%8%@_q}(34>Yl%=m2yUj*R`v)`%!it@gO^JXg#mav$+)^}bf)?*LAuxp*Y z`~D%}i!^-Rn2Bf2#Q%H1R5C?}2D2C*8O8QH+vTE{`K2P!2?Jxl$0zQl^Pf8-ce^hJ ze4kEzx4#*1{F|Fixq}kn>pj(n@l!#4a>Sc>*XxbhrLk++`e&`8E^r2H<{gy$F=_O6 nz17C70zmn(N!3%e{%-Lvtqz_LZ9-2^00000NkvXXu0mjfqG%}x