crankani/src/enemy/ika.lua

41 lines
1,000 B
Lua

-- A squid-like enemy unit
import "CoreLibs/object"
import "CoreLibs/graphics"
import "CoreLibs/sprites"
import "CoreLibs/timer"
import "entity"
import "util"
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(5000,
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 x1,y1 = self:getPosition()
local x2,y2 = target:getPosition()
return util.unitPointer(x1,y1,x2,y2) * 5
end
function Ika:remove()
Ika.super.remove(self)
if self.weaponTimer then self.weaponTimer:remove() end
end