scoring.lua 879 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. local Scoring = {}
  2. Scoring.code = 'scoring'
  3. Scoring.limit = 5
  4. function Scoring:init()
  5. self.points = {}
  6. self.points[purple] = 0
  7. self.points[orange] = 0
  8. self.winner = nil
  9. self.restartTimer = 0
  10. ctx.event:on('game.restart', function(data)
  11. self.points[purple] = 0
  12. self.points[orange] = 0
  13. self.winner = nil
  14. self.restartTimer = 0
  15. end)
  16. end
  17. function Scoring:update()
  18. self.restartTimer = timer.rot(self.restartTimer, function()
  19. self.winner = nil
  20. ctx.event:emit('game.quit')
  21. end)
  22. end
  23. function Scoring:score(team, amount)
  24. self.points[team] = self.points[team] + amount
  25. if self.points[team] >= self.limit then
  26. self:win(team)
  27. end
  28. end
  29. function Scoring:win(team)
  30. ctx.net:emit(app.core.net.events.chat, {message = (team == 0 and 'purple' or 'orange') .. ' team wins!'})
  31. self.winner = team
  32. self.restartTimer = 6
  33. end
  34. return Scoring