adrenaline.lua 968 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. local Adrenaline = {}
  2. ----------------
  3. -- Meta
  4. ----------------
  5. Adrenaline.name = 'Adrenaline'
  6. Adrenaline.code = 'adrenaline'
  7. Adrenaline.text = 'It is Adrenaline. It sucks.'
  8. Adrenaline.type = 'skill'
  9. ----------------
  10. -- Data
  11. ----------------
  12. Adrenaline.target = 'none'
  13. Adrenaline.cooldown = 6
  14. ----------------
  15. -- Behavior
  16. ----------------
  17. function Adrenaline:activate(owner)
  18. self.cooldown = 0
  19. self.active = false
  20. end
  21. function Adrenaline:update(owner)
  22. self.cooldown = timer.rot(self.cooldown)
  23. end
  24. function Adrenaline:canFire(owner)
  25. return self.cooldown == 0
  26. end
  27. function Adrenaline:fire(owner)
  28. if not self.active then
  29. ctx.buffs:add(owner, 'adrenaline')
  30. self.active = true
  31. self.cooldown = 1
  32. else
  33. ctx.buffs:remove(owner, 'adrenaline')
  34. self.active = false
  35. self.cooldown = Adrenaline.cooldown
  36. end
  37. end
  38. function Adrenaline:value(owner)
  39. return self.cooldown / (self.active and 1 or Adrenaline.cooldown)
  40. end
  41. return Adrenaline