You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

74 line
1.3 KiB

  1. define([
  2. 'js/rendering/renderer'
  3. ], function (
  4. renderer
  5. ) {
  6. return {
  7. type: 'chatter',
  8. cd: 0,
  9. cdMax: 150,
  10. color: 0xffffff,
  11. init: function (blueprint) {
  12. if ((blueprint) && (blueprint.msg))
  13. this.extend(blueprint);
  14. },
  15. update: function () {
  16. let chatSprite = this.obj.chatSprite;
  17. if (!chatSprite)
  18. return;
  19. if (this.cd > 0)
  20. this.cd--;
  21. else if (this.cd === 0) {
  22. renderer.destroyObject({
  23. sprite: chatSprite
  24. });
  25. this.obj.chatSprite = null;
  26. }
  27. },
  28. extend: function (serverMsg) {
  29. let msg = serverMsg.msg + '\n\'';
  30. this.msg = msg;
  31. let obj = this.obj;
  32. if (obj.chatSprite) {
  33. renderer.destroyObject({
  34. sprite: obj.chatSprite
  35. });
  36. }
  37. let color = this.color;
  38. if (msg[0] === '*')
  39. color = 0xffeb38;
  40. let yOffset = (msg.split('\r\n').length - 1);
  41. obj.chatSprite = renderer.buildText({
  42. layerName: 'effects',
  43. text: msg,
  44. color: color,
  45. x: (obj.x * scale) + (scale / 2),
  46. y: (obj.y * scale) - (scale * 0.8) - (yOffset * scale * 0.8)
  47. });
  48. obj.chatSprite.visible = true;
  49. this.cd = this.cdMax;
  50. },
  51. destroy: function () {
  52. let chatSprite = this.obj.chatSprite;
  53. if (!chatSprite)
  54. return;
  55. renderer.destroyObject({
  56. sprite: chatSprite
  57. });
  58. }
  59. };
  60. });