summaryrefslogtreecommitdiff
path: root/objects/x.lua
blob: 080887b1f7aa4e57f0da4a507733629fe12314c9 (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
26
27
local obj = require "obj"
local util = require 'util'

local x_obj = {hitbox = 4}

function x_obj:draw()
	set_color(0.5, 1, 0.8)
	line(-4, 2, 0, 0, -2, 4, -4, 2)
	line(0, 0, 2, 4, 4, 2, 0, 0)
	line(0, 0, 4, -2, 2, -4, 0, 0)
	line(0, 0, -2, -4, -4, -2, 0, 0)
end

local range = 40
function x_obj:tick()
    local x, y = unpack(self.data.pos)
	for o in obj.in_circle(x, y, range) do
		if o ~= self then
			local px, py = self:observe_pos(o)
			local mag = util.magnitude{px, py}
			local dx, dy = px / mag, py / mag
			self:avel_to_accel(o, dx * mag/range/10, dy * mag/range/10)
		end
	end
end

return {x = x_obj}