-- A squid-like enemy unit import "CoreLibs/object" import "CoreLibs/graphics" import "CoreLibs/sprites" import "CoreLibs/timer" import "entity" local gfx = playdate.graphics local geom = 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