From dbea27ca391bf0d3c78f3d0569864a972c7c9d4b Mon Sep 17 00:00:00 2001 From: Aaron Mueller Date: Sun, 7 Dec 2014 00:19:22 +0100 Subject: [PATCH] +silos, polishing, gfx --- public/images/progress.png | Bin 0 -> 136 bytes public/images/selected.png | Bin 946 -> 148 bytes src/app.coffee | 2 +- src/entities/base.coffee | 9 +++++++++ src/entities/miner.coffee | 8 ++++++-- src/entities/silo.coffee | 19 +++++++++++++++++++ src/game.coffee | 12 +++++++++--- src/tiles/tile.coffee | 4 +++- 8 files changed, 47 insertions(+), 7 deletions(-) create mode 100644 public/images/progress.png create mode 100644 src/entities/base.coffee create mode 100644 src/entities/silo.coffee diff --git a/public/images/progress.png b/public/images/progress.png new file mode 100644 index 0000000000000000000000000000000000000000..78646a41caee89bf02ab691f4725b31c180d7dc5 GIT binary patch literal 136 zcmeAS@N?(olHy`uVBq!ia0vp^93afW0wnX;%77#TXMsm#F#`j)FbFd;%$g$s6l5>) z^mS#w$HOM3qnh`Wl@lnW?&;zf!f`!0K|$KU$Y2ro0m=W85^KsFEso!jkeDG5!_m#D c)EB_WaQqBA$G@MYt{}5LUHx3vIVCg!0CWr<(*OVf literal 0 HcmV?d00001 diff --git a/public/images/selected.png b/public/images/selected.png index 541a5fbfdd996a6841564c5a92c5bc0b25fab695..ae0b3455e803090a751d1c3c644d0de37af63e54 100644 GIT binary patch delta 119 zcmdnQK810DN&#nqM`SSr1Gg{;GcwGYBf-GHz+U3%>&kwQhfPdRf@Qb%ETE9Fr;B5V z#O35Ecm6)KXJ#=lTF~^L2MByDR30XQh^`qD91O2Ce)PNlvlrepeM6-%gWFT~%afh7 RIDy(3JYD@<);T3K0RW;QBn$um literal 946 zcmaJ=J#W)M7`7TzRYet3hccj(+W{ovuQ+ymiiv`qP)j(9l1PLN$G#+1YM*Ogh?5Z} z#KguQU`2uziFROsp8#Uv7qB8B1m`qP83>l`yLBf+zI`9MIN+QN z!=*t)*$h*yrIF)K5CH=;@xSGe-?tp3v zsX%~;1Jd9mOkk?BOI=9!nVDz75<(_Adl6LMZUY0y2$Z=}(G^4yC<-UaWknHh14$4i zUZAg16lGXeprnG;!%}atH-sItx$;F%Iy)vLf;>N)&A3^K!|{k0HBHMjB&kRd#bh25 zCoP7_VXk1J#Et!k_&5ZaqBFo#qO&y8ixh%rEgL4QGSPzZsT1)cCuAw*K->O5Gziw{ zgmlnly#EwVdh-bJ9hBf{?9#>!4>MO0G-Bis9QQCj$*b5NV}g@0j)2isz)jn6{V+4! zS~6@KT46$*&_$N1vs8ogeGiItO&02^rj{$RC^qDZ+SE+dXiA2xmefWg=bG4^1}G#s z*SqA_H*&LK2qNm)M6v%EdCeFHV3{=ZH^-uG)LU`A&9PKAa(NmIpSAX{R_7)%H{L;KkQp-)e;$=UcB1PCx!04FI$Kbn7J_E%w1V YbN2Ac=d1f~3fV2P8ZGnn-A7OU08(-ziU0rr diff --git a/src/app.coffee b/src/app.coffee index 5261f5c..1468d47 100644 --- a/src/app.coffee +++ b/src/app.coffee @@ -5,7 +5,7 @@ app = playground( smoothing: false, create: -> - @loadImages "layers", "active", "selected", "entities", "hud" + @loadImages "layers", "active", "progress", "selected", "entities", "hud" @currentHoveredTile = new Tile ready: -> diff --git a/src/entities/base.coffee b/src/entities/base.coffee new file mode 100644 index 0000000..66581e7 --- /dev/null +++ b/src/entities/base.coffee @@ -0,0 +1,9 @@ +class Base + tick: (tile)-> + + sprite: -> + [0, 0, 8, 8] + + isMoveable: -> + false + diff --git a/src/entities/miner.coffee b/src/entities/miner.coffee index cd7c9d6..5eb5e20 100644 --- a/src/entities/miner.coffee +++ b/src/entities/miner.coffee @@ -1,5 +1,9 @@ class Miner - tick: (tile) -> + tick: (tile)-> tile.click "left" - sprite: [0, 16, 8, 8] + sprite: -> + [0, 16, 8, 8] + + isMoveable: -> + true diff --git a/src/entities/silo.coffee b/src/entities/silo.coffee new file mode 100644 index 0000000..40783e2 --- /dev/null +++ b/src/entities/silo.coffee @@ -0,0 +1,19 @@ +class Silo + constructor: -> + @frame = 0 + window.setInterval @changeAnimation, 500 + + tick: (tile)-> + + sprite: -> + [@frame*8, 8, 8, 8] + + isMoveable: -> + false + + changeAnimation: => + if @frame == 2 + @frame = 0 + else + @frame += 1 + diff --git a/src/game.coffee b/src/game.coffee index c8fe60b..388fd3e 100644 --- a/src/game.coffee +++ b/src/game.coffee @@ -2,12 +2,13 @@ app.game = start: -> for i in [0..20*15-1] @map[i] = new Tile + @map[20*5+10].entity = new Base @currentHoveredTile = new Tile @currentSelectedTile = new Tile # Start the game tick - window.setInterval(@tick, 1000) + window.setInterval @tick, 1000 @hud.start() @@ -39,6 +40,7 @@ app.game = keyup: (event) -> switch event.key when "m" then @createMiner() + when "s" then @createSilo() when "c" then @cheatah() when "space" @currentSelectedTile.deselect() if @currentSelectedTile @@ -48,10 +50,14 @@ app.game = tile.tick() for tile in app.game.map createMiner: -> - if @currentSelectedTile and @checkRessources 'lubinit', 30, true + if @currentSelectedTile and @checkResource 'lubinit', 30, true @currentSelectedTile.entity = new Miner - checkRessources: (type, amount, drain = false) -> + createSilo: -> + if @currentSelectedTile and @checkResource 'oxodum', 20, true + @currentSelectedTile.entity = new Silo + + checkResource: (type, amount, drain = false) -> if @resources[type] >= amount @resources[type] -= amount if drain return true diff --git a/src/tiles/tile.coffee b/src/tiles/tile.coffee index c15ffc7..734238e 100644 --- a/src/tiles/tile.coffee +++ b/src/tiles/tile.coffee @@ -42,9 +42,11 @@ class Tile app.layer.drawRegion app.images.layers, tileLayer.sprite, x*8, y*8 if @entity - app.layer.drawRegion app.images.entities, @entity.sprite, x*8, y*8 + app.layer.drawRegion app.images.entities, @entity.sprite(), x*8, y*8 + if (@entity and @entity.isMoveable()) # Draw the status indicator. + app.layer.drawImage app.images.progress, x*8, y*8 numPercent = Math.floor((tileLayer.amount*6)/app.game.maxTileAmount) for i in [0..numPercent] color = ["#f00", "#a00", "#f60", "#aa0", "#0a0", "#0a0"][numPercent]