ld31-space-diggers/src/game.coffee

68 lines
1.3 KiB
CoffeeScript

app.game =
start: ->
for i in [0..20*15-1]
@map[i] = new Tile
@miners = []
@currentHoveredTile = new Tile
@currentSelectedTile = new Tile
render: ->
app.layer.save().scale(5, 5)
for tile, i in @map
y = Math.floor(i/20)
x = i-(y*20)
tile.render(x, y)
app.layer.restore()
@hud.render()
step: ->
mousedown: (event)->
tile = @posToTile(event.x, event.y)
tile.click(event.button)
@currentSelectedTile.deselect() if @currentSelectedTile
tile.select()
@currentSelectedTile = tile
mousemove: (event)->
tile = @posToTile(event.x, event.y)
if tile
if tile != @currentHoveredTile
tile.moveIn()
@currentHoveredTile.moveOut()
@currentHoveredTile = tile
keyup: (event) ->
switch event.key
when "m" then @createMiner()
when "space"
@currentSelectedTile.deselect() if @currentSelectedTile
@currentSelectedTile = null
createMiner: ->
if @currentSelectedTile
newMiner = new Miner
@miners.push = newMiner
@currentSelectedTile.attachMiner newMiner
posToTile: (x, y)->
pos = (Math.floor(y/8/5)*20) + Math.floor(x/8/5)
@map[pos]
map: []
maxTileAmount: 15
resources:
stardust: 0
bedrock: 0
lubinit: 0
oxodum: 0
notch: 0