Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

105 строки
1.8 KiB

  1. define([
  2. 'js/system/events',
  3. 'js/rendering/renderer'
  4. ], function(
  5. events,
  6. renderer
  7. ) {
  8. var scale = 40;
  9. return {
  10. type: 'stats',
  11. values: null,
  12. init: function(blueprint) {
  13. if (this.obj.self)
  14. events.emit('onGetStats', this.values);
  15. var serverId = this.obj.serverId;
  16. if (serverId != null)
  17. events.emit('onGetPartyStats', serverId, this.values);
  18. var obj = this.obj;
  19. var yOffset = -12;
  20. if (obj.isChampion)
  21. yOffset = -18;
  22. this.hpSprite = renderer.buildRectangle({
  23. layerName: 'effects',
  24. x: 0,
  25. y: 0,
  26. w: 0,
  27. h: 0,
  28. color: 0x802343
  29. });
  30. renderer.buildRectangle({
  31. x: 0,
  32. y: 0,
  33. w: 0,
  34. h: 0,
  35. parent: this.hpSprite,
  36. color: 0xd43346
  37. });
  38. this.updateHpSprite();
  39. },
  40. updateHpSprite: function() {
  41. var obj = this.obj;
  42. var yOffset = -12;
  43. if (obj.isChampion)
  44. yOffset = -18;
  45. var x = obj.x * scale;
  46. var y = (obj.y * scale) + yOffset;
  47. renderer.moveRectangle({
  48. sprite: this.hpSprite,
  49. x: x + 4,
  50. y: y,
  51. w: (scale - 8),
  52. h: 5
  53. });
  54. renderer.moveRectangle({
  55. sprite: this.hpSprite.children[0],
  56. x: x + 4,
  57. y: y,
  58. w: (this.values.hp / this.values.hpMax) * (scale - 8),
  59. h: 5
  60. });
  61. this.hpSprite.visible = (this.values.hp < this.values.hpMax);
  62. },
  63. extend: function(blueprint) {
  64. var bValues = blueprint.values || {};
  65. var values = this.values;
  66. for (var b in bValues) {
  67. values[b] = bValues[b];
  68. }
  69. if (this.obj.self)
  70. events.emit('onGetStats', this.values);
  71. var serverId = this.obj.serverId;
  72. if (serverId != null)
  73. events.emit('onGetPartyStats', serverId, this.values);
  74. this.updateHpSprite();
  75. },
  76. destroy: function() {
  77. renderer.destroyObject({
  78. sprite: this.hpSprite,
  79. layerName: 'effects'
  80. });
  81. }
  82. };
  83. });