pummelingknockback.lua 746 B

12345678910111213141516171819202122
  1. local PummelingKnockback = extend(buff)
  2. PummelingKnockback.tags = {'knockback'}
  3. function PummelingKnockback:activate()
  4. self.base = math.abs(self.offset)
  5. end
  6. function PummelingKnockback:update(target, damage)
  7. local sign = math.sign(self.offset)
  8. local knockbackFactor = math.max(math.abs(self.offset) / self.base, .5) * 600 * ls.tickrate
  9. local amount = knockbackFactor
  10. self.unit.x = self.unit.x + amount * sign
  11. local knockupFactor = 1 - (2 * math.abs(.5 - math.abs(self.offset / self.base)))
  12. self.knockup = knockupFactor * 25
  13. self.offset = self.offset - math.min(math.abs(amount * sign), math.abs(self.offset)) * math.sign(self.offset)
  14. if self.offset == 0 then self.unit.buffs:remove(self) end
  15. end
  16. return PummelingKnockback