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.
 
 
 

65 lines
1.4 KiB

  1. define([
  2. 'js/system/events',
  3. 'html!ui/templates/tooltipInfo/template',
  4. 'css!ui/templates/tooltipInfo/styles'
  5. ], function (
  6. events,
  7. template,
  8. styles
  9. ) {
  10. return {
  11. tpl: template,
  12. lastHp: null,
  13. lastHpMax: null,
  14. mob: null,
  15. postRender: function () {
  16. this.onEvent('onMobHover', this.onMobHover.bind(this));
  17. },
  18. onMobHover: function (mob) {
  19. this.mob = mob;
  20. if (!mob) {
  21. this.el.hide();
  22. return;
  23. }
  24. let values = mob.stats.values;
  25. this.lastHp = values.hp;
  26. this.lastHpMax = values.hpMax;
  27. let html = mob.name + ' (' + mob.stats.values.level + ')';
  28. if (mob.stats.values.level - 5 >= window.player.stats.values.level)
  29. html = '<font class="color-red">' + html + '</font>';
  30. if (mob.aggro) {
  31. //TODO: Figure this out some other wayh since factions interact in different ways now
  32. if (mob.aggro.faction != window.player.aggro.faction)
  33. html += '<br />aggressive';
  34. }
  35. html += '<br />hp: ' + Math.floor(mob.stats.values.hp) + '/' + Math.floor(mob.stats.values.hpMax);
  36. this.el.show();
  37. this.el.html(html);
  38. },
  39. update: function () {
  40. let mob = this.mob;
  41. if (!mob)
  42. return;
  43. if (mob.destroyed) {
  44. this.mob = null;
  45. this.el.hide();
  46. } else {
  47. let values = mob.stats.values;
  48. if (values.hp != this.lastHp)
  49. this.onMobHover(mob);
  50. else if (values.hpMax != this.lastHpMax)
  51. this.onMobHover(mob);
  52. }
  53. }
  54. };
  55. });