uiScoreboard.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. var UI_PLAYERS = {};
  2. function uiCreatePlayer(player) {
  3. var dom = dCreate("li")
  4. ,playerName = dCreate("span");
  5. playerName.className = R.klass.scoreboard.player.name;
  6. playerName.textContent = player.name;
  7. dom.appendChild(playerName);
  8. dom.score = dCreate("span");
  9. dom.score.className = R.klass.scoreboard.player.score;
  10. dom.appendChild(dom.score);
  11. dom.style.color = player.color;
  12. return dom;
  13. }
  14. function onPlayersUpdated() {
  15. var container
  16. ,playerIds = [];
  17. for (var i in GRID.players) {
  18. var uiPlayer = UI_PLAYERS[i];
  19. if (!uiPlayer) {
  20. uiPlayer = UI_PLAYERS[i] = uiCreatePlayer(GRID.players[i]);
  21. if (i === GRID.playerSelf.id)
  22. uiPlayer.classList.add(R.klass.scoreboard.player.isMe);
  23. if (!container)
  24. container = dGet(R.id.scoreboard.players);
  25. container.appendChild(uiPlayer);
  26. }
  27. uiPlayer.score.textContent = GRID.players[i].score;
  28. playerIds.push(i);
  29. }
  30. playerIds.sort(function(a, b) {
  31. return GRID.players[b].score - GRID.players[a].score;
  32. });
  33. for (var i =0, nbPlayers = playerIds.length; i <nbPlayers; i++) {
  34. UI_PLAYERS[playerIds[i]].style.order = i;
  35. }
  36. }
  37. (function() {
  38. var timeInterval = setInterval(function() {
  39. if (GRID) {
  40. var ellapsed = (GRID.gridTime !== null ? GRID.gridTime : (Date.now() -GRID.startTime)) / 1000;
  41. var seconds = Math.floor(ellapsed % 60);
  42. ellapsed = (ellapsed - seconds) / 60;
  43. var minutes = Math.floor(ellapsed % 60);
  44. ellapsed = Math.floor((ellapsed - minutes) / 60);
  45. var text = ellapsed ? (ellapsed +":") : ''; //hours
  46. text += (minutes < 10 ? '0' : '') +minutes +":";
  47. text += (seconds < 10 ? '0' : '') +seconds;
  48. dGet(R.id.scoreboard.header.time).textContent = text;
  49. if (GRID.gridTime) {
  50. clearInterval(timeInterval);
  51. timeInterval = null;
  52. }
  53. }
  54. }, 1000);
  55. })();