40 lines
994 B
Lua
40 lines
994 B
Lua
-- A squid-like enemy unit
|
|
import "CoreLibs/object"
|
|
import "CoreLibs/graphics"
|
|
import "CoreLibs/sprites"
|
|
import "CoreLibs/timer"
|
|
import "entity"
|
|
|
|
local gfx <const> = playdate.graphics
|
|
local geom <const> = playdate.geometry
|
|
|
|
class("Ika").extends(Entity)
|
|
|
|
function Ika:init(target)
|
|
Ika.super.init(self, gfx.image.new("images/ika.png"), 25, 1)
|
|
self.target = target
|
|
self:setCollidesWithGroupsMask(0x2)
|
|
self.type = 'ika'
|
|
end
|
|
|
|
function Ika:onReady()
|
|
self.weaponTimer = playdate.timer.new(7000,
|
|
function()
|
|
local b = Bullet(10, 20, self:calculateVector(self.target))
|
|
b:moveTo(self.x - (self.width/2) - 1, self.y)
|
|
b:add()
|
|
end
|
|
)
|
|
self.weaponTimer.repeats = true
|
|
end
|
|
|
|
function Ika:calculateVector(target)
|
|
local vec = geom.point.new(target:getPosition()) -
|
|
geom.point.new(self:getPosition())
|
|
return vec:normalized() * 5
|
|
end
|
|
|
|
function Ika:remove()
|
|
Ika.super.remove(self)
|
|
if self.weaponTimer then self.weaponTimer:remove() end
|
|
end
|