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.
 
 
 

76 lines
1.3 KiB

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