Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
308
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. let equipment = {
  2. head: {},
  3. cape: {},
  4. neck: {},
  5. ammunition: {},
  6. weapon: {},
  7. body: {},
  8. shield: {},
  9. legs: {},
  10. hand: {},
  11. feet: {},
  12. ring: {}
  13. };
  14.  
  15. function createShortName(name) {
  16. return name.toLowerCase().replace(/s/g, '');
  17. }
  18.  
  19. function addItem(slot, name, cost, img, income=0, atk_bonus=0, str_bonus=0, def_bonus=0, rngd_bonus=0, mage_bonus=0) {
  20.  
  21. let newItem = {
  22. slot: slot,
  23. name: name,
  24. cost: cost,
  25. img: img,
  26. income: income,
  27. atk_bonus: atk_bonus,
  28. str_bonus: str_bonus,
  29. def_bonus: def_bonus,
  30. rngd_bonus: rngd_bonus,
  31. mage_bonus: mage_bonus
  32. }
  33.  
  34. equipment[slot][createShortName(name)] = newItem;
  35. }
  36.  
  37. let currentSlot = 'head';
  38. addItem(currentSlot, 'head_item_1', 100, 'img');
  39. addItem(currentSlot, 'head_item_2', 200, 'img');
  40.  
  41. currentSlot = 'cape';
  42. addItem(currentSlot, 'cape_item_1', 100, 'img');
  43. addItem(currentSlot, 'cape_item_2', 200, 'img');
  44.  
  45. currentSlot = 'neck';
  46. addItem(currentSlot, 'neck_item_1', 100, 'img');
  47. addItem(currentSlot, 'neck_item_2', 200, 'img');
  48.  
  49. // etc. etc. etc.
  50.  
  51. function bindFirst(func, firstArgument) {
  52. return function(...arguments) {
  53. return func(firstArgument, ...arguments);
  54. }
  55. }
  56.  
  57. const addToHead = bindFirst(addItem, 'head');
  58.  
  59. addToHead('head_item_1', 100, 'img');
  60. ...
  61.  
  62. let newItems = new Map([
  63. [
  64. 'head',
  65. [{
  66. name: 'head_item_1',
  67. cost: 100,
  68. img: 'img'
  69. },
  70. {
  71. name: 'head_item_1',
  72. cost: 100,
  73. img: 'img'
  74. }]
  75. ], [
  76. 'cape',
  77. [{
  78. name: 'cape_item_1',
  79. cost: 100,
  80. img: 'img'
  81. },
  82. {
  83. name: 'cape_item_1',
  84. cost: 200,
  85. img: 'img'
  86. }]
  87. ]
  88. ]);
  89.  
  90. items.forEach((items, slot) => {
  91. const addToSlot = bindFirst(addItem, slot);
  92. items.forEach(item => {
  93. addToSlot(item.name, item.cost, item.img);
  94. });
  95. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement