blob: d7f1b628f5a7d944c84e99efd179c2a3b7e7091f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
(local entity (require :lib.entity))
(local vec (require :lib.vec))
(local cell (require :lib.cell))
(local cells (require :lib.cells))
(fn init [self pos vel]
(setmetatable {entity.position pos
entity.velocity vel
entity.duration 120}
self))
(fn draw [self game id]
(love.graphics.setColor 1 1 1 (/ (entity.duration self) 120))
(love.graphics.setLineWidth 0.3)
(love.graphics.line 0 0
(. self entity.velocity :x)
(. self entity.velocity :y)))
(fn collide [self game id x y]
(when (> (cell.aliveness (. game.grid x y)) 0)
(tset game.entities id nil)
;; TODO: less boom-y thing?
(tset game.grid x y (cell.init cells.boom (/ (entity.duration self) 180)))))
{entity.init init entity.draw draw entity.collide collide}
|