summaryrefslogtreecommitdiff
path: root/objects/x.lua
blob: 5f37a7aca0e7f255d959874241ffe9b7262b4335 (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(-1, 4, -3, 3, -4, 1, 0, 0, -1, 4)
	line(0, 0, 1, 4, 3, 3, 4, 1, 0, 0)
	line(0, 0, 4, -1, 3, -3, 1, -4, 0, 0)
	line(0, 0, -1, -4, -3, -3, -4, -1, 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}