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.
 
 
 

152 lines
2.6 KiB

  1. let events = require('../misc/events');
  2. let config = {
  3. '1.0': {
  4. name: 'Wizard 1',
  5. sprite: [2, 0],
  6. defaultSpirit: 'owl',
  7. default: true
  8. },
  9. 1.1: {
  10. name: 'Wizard 2',
  11. sprite: [3, 0]
  12. },
  13. 1.2: {
  14. name: 'Warrior 1',
  15. sprite: [1, 1],
  16. defaultSpirit: 'bear',
  17. default: true
  18. },
  19. 1.3: {
  20. name: 'Warrior 2',
  21. sprite: [2, 1]
  22. },
  23. 1.4: {
  24. name: 'Cleric 1',
  25. sprite: [4, 0]
  26. },
  27. 1.5: {
  28. name: 'Cleric 2',
  29. sprite: [5, 0]
  30. },
  31. 1.6: {
  32. name: 'Thief 1',
  33. sprite: [6, 0],
  34. defaultSpirit: 'lynx',
  35. default: true
  36. },
  37. 1.7: {
  38. name: 'Thief 2',
  39. sprite: [7, 0]
  40. },
  41. '2.0': {
  42. name: 'Gaekatlan Druid',
  43. sprite: [0, 4]
  44. },
  45. //Elite Skin Pack
  46. '10.0': {
  47. name: 'Sorcerer',
  48. spritesheet: 'images/skins/0001.png',
  49. sprite: [0, 0]
  50. },
  51. 10.1: {
  52. name: 'Diviner',
  53. spritesheet: 'images/skins/0001.png',
  54. sprite: [1, 0]
  55. },
  56. 10.2: {
  57. name: 'Cutthroat',
  58. spritesheet: 'images/skins/0001.png',
  59. sprite: [2, 0]
  60. },
  61. 10.3: {
  62. name: 'Man of War',
  63. spritesheet: 'images/skins/0001.png',
  64. sprite: [3, 0]
  65. },
  66. 10.4: {
  67. name: 'Occultist',
  68. spritesheet: 'images/skins/0001.png',
  69. sprite: [4, 0]
  70. },
  71. //Templar Skin Pack
  72. '11.0': {
  73. name: 'Crusader 1',
  74. spritesheet: 'images/skins/0010.png',
  75. sprite: [0, 0]
  76. },
  77. 11.1: {
  78. name: 'Crusader 2',
  79. spritesheet: 'images/skins/0010.png',
  80. sprite: [1, 0]
  81. },
  82. 11.2: {
  83. name: 'Crusader 3',
  84. spritesheet: 'images/skins/0010.png',
  85. sprite: [2, 0]
  86. },
  87. 11.3: {
  88. name: 'Crusader 4',
  89. spritesheet: 'images/skins/0010.png',
  90. sprite: [3, 0]
  91. },
  92. 11.4: {
  93. name: 'Grand Crusader',
  94. spritesheet: 'images/skins/0010.png',
  95. sprite: [4, 0]
  96. },
  97. 11.5: {
  98. name: 'Infernal Crusader',
  99. spritesheet: 'images/skins/0010.png',
  100. sprite: [5, 0]
  101. }
  102. };
  103. module.exports = {
  104. init: function () {
  105. events.emit('onBeforeGetSkins', config);
  106. },
  107. getBlueprint: function (skinId) {
  108. return config[skinId];
  109. },
  110. getSkinList: function (skins) {
  111. let list = Object.keys(config)
  112. .filter(function (s) {
  113. return ((config[s].default) || (skins.some(f => ((f === s) || (f === '*')))));
  114. })
  115. .map(function (s) {
  116. let res = extend(true, {}, config[s]);
  117. res.id = s;
  118. return res;
  119. });
  120. let result = [];
  121. list.forEach(function (skin) {
  122. result.push({
  123. name: skin.name,
  124. id: skin.id,
  125. sprite: skin.sprite[0] + ',' + skin.sprite[1],
  126. spritesheet: skin.spritesheet,
  127. defaultSpirit: skin.defaultSpirit
  128. });
  129. }, this);
  130. return result;
  131. },
  132. getCell: function (skinId) {
  133. let skin = config[skinId] || config['1.0'];
  134. return (skin.sprite[1] * 8) + skin.sprite[0];
  135. },
  136. getSpritesheet: function (skinId) {
  137. let skin = config[skinId] || config['1.0'];
  138. return skin.spritesheet || 'characters';
  139. }
  140. };