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.
 
 
 

145 lines
2.5 KiB

  1. define([
  2. 'misc/events'
  3. ], function (
  4. events
  5. ) {
  6. var config = {
  7. 'wizard 1': {
  8. name: 'Wizard 1',
  9. sprite: [2, 0],
  10. class: 'wizard',
  11. default: true
  12. },
  13. 'wizard 2': {
  14. name: 'Wizard 2',
  15. sprite: [3, 0],
  16. class: 'wizard',
  17. default: true
  18. },
  19. 'warrior 1': {
  20. name: 'Warrior 1',
  21. sprite: [1, 1],
  22. class: 'warrior',
  23. default: true
  24. },
  25. 'warrior 2': {
  26. name: 'Warrior 2',
  27. sprite: [2, 1],
  28. class: 'warrior',
  29. default: true
  30. },
  31. 'cleric 1': {
  32. name: 'Cleric 1',
  33. sprite: [4, 0],
  34. class: 'cleric',
  35. default: true
  36. },
  37. 'cleric 2': {
  38. name: 'Cleric 2',
  39. sprite: [5, 0],
  40. class: 'cleric',
  41. default: true
  42. },
  43. 'thief 1': {
  44. name: 'Thief 1',
  45. sprite: [6, 0],
  46. class: 'thief',
  47. default: true
  48. },
  49. 'thief 2': {
  50. name: 'Thief 2',
  51. sprite: [7, 0],
  52. class: 'thief',
  53. default: true
  54. },
  55. 'gaekatla druid': {
  56. name: 'Skin: Gaekatlan Druid',
  57. sprite: [0, 4],
  58. class: 'cleric'
  59. },
  60. '1.1': {
  61. name: 'blebby',
  62. spritesheet: 'images/skins/0001.png',
  63. sprite: [0, 0],
  64. class: 'wizard',
  65. default: true
  66. },
  67. '1.2': {
  68. name: 'blebby',
  69. spritesheet: 'images/skins/0001.png',
  70. sprite: [1, 0],
  71. class: 'cleric',
  72. default: true
  73. },
  74. '1.3': {
  75. name: 'blebby',
  76. spritesheet: 'images/skins/0001.png',
  77. sprite: [2, 0],
  78. class: 'thief',
  79. default: true
  80. },
  81. '1.4': {
  82. name: 'blebby',
  83. spritesheet: 'images/skins/0001.png',
  84. sprite: [3, 0],
  85. class: 'warrior',
  86. default: true
  87. },
  88. '1.5': {
  89. name: 'blebby',
  90. spritesheet: 'images/skins/0001.png',
  91. sprite: [4, 0],
  92. class: 'necromancer',
  93. default: true
  94. }
  95. };
  96. return {
  97. init: function () {
  98. events.emit('onBeforeGetSkins', config);
  99. },
  100. getBlueprint: function (skinId) {
  101. return config[skinId];
  102. },
  103. getSkinList: function (skins) {
  104. var list = Object.keys(config)
  105. .filter(function (s) {
  106. return ((config[s].default) || (skins.some(f => (f == s))));
  107. })
  108. .map(function (s) {
  109. var res = extend(true, {}, config[s]);
  110. res.id = s;
  111. return res;
  112. });
  113. var result = {};
  114. list.forEach(function (l) {
  115. if (!result[l.class])
  116. result[l.class] = [];
  117. result[l.class].push({
  118. id: l.id,
  119. sprite: l.sprite[0] + ',' + l.sprite[1],
  120. spritesheet: l.spritesheet
  121. });
  122. });
  123. return result;
  124. },
  125. getCell: function (skinId) {
  126. var skin = config[skinId];
  127. return (skin.sprite[1] * 8) + skin.sprite[0];
  128. },
  129. getSpritesheet: function (skinId) {
  130. var skin = config[skinId];
  131. return skin.spritesheet || 'characters';
  132. }
  133. };
  134. });