選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

78 行
1.8 KiB

  1. const tplItem = `
  2. <div class="renderItem item">
  3. <div class="icon"></div>
  4. <div class="quantity"></div>
  5. </div>
  6. `;
  7. define([
  8. ], function (
  9. ) {
  10. return (container, item, useEl) => {
  11. const itemEl = useEl || $(tplItem).appendTo(container);
  12. if (!item) {
  13. itemEl.addClass('empty');
  14. return itemEl;
  15. }
  16. let size = 64;
  17. let offset = 0;
  18. if (item.type === 'skin') {
  19. offset = 4;
  20. size = 8;
  21. }
  22. const imgX = (-item.sprite[0] * size) + offset;
  23. const imgY = (-item.sprite[1] * size) + offset;
  24. let spritesheet = item.spritesheet || '../../../images/items.png';
  25. if (!item.spritesheet) {
  26. if (item.material)
  27. spritesheet = '../../../images/materials.png';
  28. else if (item.quest)
  29. spritesheet = '../../../images/questItems.png';
  30. else if (item.type === 'consumable')
  31. spritesheet = '../../../images/consumables.png';
  32. else if (item.type === 'skin')
  33. spritesheet = '../../../images/characters.png';
  34. }
  35. itemEl
  36. .find('.icon')
  37. .css('background', `url(${spritesheet}) ${imgX}px ${imgY}px`);
  38. if (item.quantity > 1 || item.eq || item.active || item.has('quickSlot')) {
  39. let elQuantity = itemEl.find('.quantity');
  40. let txtQuantity = item.quantity;
  41. if (!txtQuantity)
  42. txtQuantity = item.has('quickSlot') ? 'QS' : 'EQ';
  43. elQuantity.html(txtQuantity);
  44. //If the item doesn't have a quantity and we reach this point
  45. //it must mean that it's active, EQd or QSd
  46. if (!item.quantity)
  47. itemEl.addClass('eq');
  48. } else if (item.isNew) {
  49. itemEl.addClass('new');
  50. itemEl.find('.quantity').html('NEW');
  51. }
  52. if (item.slot) {
  53. const equipErrors = window.player.inventory.equipItemErrors(item);
  54. if (equipErrors.length)
  55. itemEl.addClass('no-equip');
  56. }
  57. if (item.has('quality'))
  58. itemEl.addClass(`quality-${item.quality}`);
  59. return itemEl;
  60. };
  61. });