define([ 'misc/events' ], function ( events ) { var config = { 'wizard 1': { name: 'Wizard 1', sprite: [2, 0], class: 'wizard', default: true }, 'wizard 2': { name: 'Wizard 2', sprite: [3, 0], class: 'wizard', default: true }, 'warrior 1': { name: 'Warrior 1', sprite: [1, 1], class: 'warrior', default: true }, 'warrior 2': { name: 'Warrior 2', sprite: [2, 1], class: 'warrior', default: true }, 'cleric 1': { name: 'Cleric 1', sprite: [4, 0], class: 'cleric', default: true }, 'cleric 2': { name: 'Cleric 2', sprite: [5, 0], class: 'cleric', default: true }, 'thief 1': { name: 'Thief 1', sprite: [6, 0], class: 'thief', default: true }, 'thief 2': { name: 'Thief 2', sprite: [7, 0], class: 'thief', default: true }, 'gaekatla druid': { name: 'Skin: Gaekatlan Druid', sprite: [0, 4], class: 'cleric' }, '1.1': { name: 'blebby', spritesheet: 'images/skins/0001.png', sprite: [0, 0], class: 'wizard', default: true }, '1.2': { name: 'blebby', spritesheet: 'images/skins/0001.png', sprite: [1, 0], class: 'cleric', default: true }, '1.3': { name: 'blebby', spritesheet: 'images/skins/0001.png', sprite: [2, 0], class: 'thief', default: true }, '1.4': { name: 'blebby', spritesheet: 'images/skins/0001.png', sprite: [3, 0], class: 'warrior', default: true }, '1.5': { name: 'blebby', spritesheet: 'images/skins/0001.png', sprite: [4, 0], class: 'necromancer', default: true } }; return { init: function () { events.emit('onBeforeGetSkins', config); }, getBlueprint: function (skinId) { return config[skinId]; }, getSkinList: function (skins) { var list = Object.keys(config) .filter(function (s) { return ((config[s].default) || (skins.some(f => (f == s)))); }) .map(function (s) { var res = extend(true, {}, config[s]); res.id = s; return res; }); var result = {}; list.forEach(function (l) { if (!result[l.class]) result[l.class] = []; result[l.class].push({ id: l.id, sprite: l.sprite[0] + ',' + l.sprite[1], spritesheet: l.spritesheet }); }); return result; }, getCell: function (skinId) { var skin = config[skinId]; return (skin.sprite[1] * 8) + skin.sprite[0]; }, getSpritesheet: function (skinId) { var skin = config[skinId]; return skin.spritesheet || 'characters'; } }; });