dusk.lua 616 B

12345678910111213141516171819202122
  1. local Dusk = extend(app.logic.spell)
  2. Dusk.code = 'dusk'
  3. Dusk.maxDistance = 300
  4. function Dusk:activate(mx, my)
  5. self:mirrorOwner()
  6. local distance = math.min(self.maxDistance, math.distance(self.x, self.y, mx, my))
  7. local tx, ty = self.x + math.dx(distance, self.angle), self.y + math.dy(distance, self.angle)
  8. self.owner.x, self.owner.y = self:resolveCircle(tx, ty, self.owner.radius)
  9. self.owner.moving = true
  10. ctx.event:emit('collision.move', {object = self.owner, resolve = true})
  11. self.owner.moving = nil
  12. self:moveOwnerTo(self.owner.x, self.owner.y)
  13. self:playSound('dash')
  14. self:die()
  15. end
  16. return Dusk