crankani/src/enemy/ika.lua
2023-10-04 23:09:39 -04:00

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