@@ -142,7 +142,7 @@ define([ | |||
changeClass: function (e) { | |||
var el = $(e.target); | |||
var classes = Object.keys(this.classSprites); | |||
var classes = ['wizard', 'warrior', 'thief']; | |||
var nextIndex = (classes.indexOf(el.html()) + 1) % classes.length; | |||
this.costume = -1; | |||
@@ -160,7 +160,7 @@ define([ | |||
changeCostume: function (e) { | |||
var el = $(e.target); | |||
var spriteList = this.classSprites[this.class]; | |||
var spriteList = this.classSprites; | |||
if (!spriteList) | |||
return; | |||
@@ -173,7 +173,7 @@ define([ | |||
}, | |||
setSprite: function () { | |||
var classSprite = this.classSprites[this.class][this.costume]; | |||
var classSprite = this.classSprites[this.costume]; | |||
var costume = classSprite.sprite.split(','); | |||
var spirteX = -costume[0] * 8; | |||
var spriteY = -costume[1] * 8; | |||
@@ -273,8 +273,8 @@ define([ | |||
var list = [...this.skins, ...roles.getSkins(this.username)]; | |||
var skinList = skins.getSkinList(list); | |||
if (!skinList[character.class].some(s => (s.id == character.skinId))) { | |||
character.skinId = character.class + ' 1'; | |||
if (!skinList.some(s => (s.id == character.skinId))) { | |||
character.skinId = '1.0'; | |||
character.cell = skins.getCell(character.skinId); | |||
character.sheetName = skins.getSpritesheet(character.skinId); | |||
@@ -4,6 +4,7 @@ define([ | |||
events | |||
) { | |||
var classes = { | |||
list: ['warrior', 'wizard', 'thief'], | |||
portraits: { | |||
warrior: { | |||
x: 0, | |||
@@ -0,0 +1,53 @@ | |||
define([ | |||
], function ( | |||
) { | |||
var empty = []; | |||
var regular = ['1.0', '1.2', '1.6']; | |||
var mtx = [ | |||
['10.0', '10.1', '10.2', '10.3', '10.4'], | |||
['11.0', '11.1', '11.2', '11.3', '11.4'] | |||
]; | |||
var pA = []; | |||
var pB = []; | |||
var pC = []; | |||
var pD = []; | |||
mtx.forEach(function (m) { | |||
m.forEach(function (s, i) { | |||
var has = [pD]; | |||
if (i <= 2) | |||
has.push(pC); | |||
if (i <= 1) | |||
has.push(pB); | |||
if (i == 0) | |||
has.push(pA); | |||
has.forEach(function (h) { | |||
h.push(s); | |||
}); | |||
}); | |||
}); | |||
return [ | |||
//Regular Player | |||
empty.concat(...regular), [], | |||
[], | |||
[], | |||
[], | |||
//Moderator | |||
empty.concat(...regular), | |||
//Patron Level 1 | |||
empty.concat(...regular, ...pA), | |||
//Patron Level 2 | |||
empty.concat(...regular, ...pB), | |||
//Patron Level 3 | |||
empty.concat(...regular, ...pC), | |||
//Patron Level 4 | |||
empty.concat(...regular, ...pD), | |||
//Admin | |||
['*'] | |||
]; | |||
}); |
@@ -1,7 +1,7 @@ | |||
define([ | |||
'./roleSkins' | |||
], function ( | |||
roleSkins | |||
) { | |||
return { | |||
accounts: { | |||
@@ -15,9 +15,7 @@ define([ | |||
sprite: [12, 0], | |||
keyId: 'world' | |||
}], | |||
skins: [ | |||
'1.1', '1.2', '1.3', '1.4', '1.5', 'bearded wizard', '2.1', '2.2', '2.3', '2.4', '2.5' | |||
] | |||
skins: [] | |||
} | |||
}, | |||
@@ -77,7 +75,21 @@ define([ | |||
}, | |||
getSkins: function (account) { | |||
return this.accounts[account] ? this.accounts[account].skins : []; | |||
var skins = []; | |||
var account = this.accounts[account] || { | |||
skins: [] | |||
}; | |||
(account.skins || []).forEach(function (s) { | |||
skins.push(s); | |||
}); | |||
var roleSkinList = roleSkins[account.level || 0]; | |||
roleSkinList.forEach(function (s) { | |||
skins.push(s); | |||
}); | |||
skins = skins.filter((s, i) => (skins.indexOf(s) == i)); | |||
return skins; | |||
}, | |||
sendMessage: function (player, msg) { | |||
@@ -4,123 +4,96 @@ define([ | |||
events | |||
) { | |||
var config = { | |||
'wizard 1': { | |||
'1.0': { | |||
name: 'Wizard 1', | |||
sprite: [2, 0], | |||
class: 'wizard', | |||
default: true | |||
sprite: [2, 0] | |||
}, | |||
'wizard 2': { | |||
'1.1': { | |||
name: 'Wizard 2', | |||
sprite: [3, 0], | |||
class: 'wizard', | |||
default: true | |||
sprite: [3, 0] | |||
}, | |||
'warrior 1': { | |||
'1.2': { | |||
name: 'Warrior 1', | |||
sprite: [1, 1], | |||
class: 'warrior', | |||
default: true | |||
sprite: [1, 1] | |||
}, | |||
'warrior 2': { | |||
'1.3': { | |||
name: 'Warrior 2', | |||
sprite: [2, 1], | |||
class: 'warrior', | |||
default: true | |||
sprite: [2, 1] | |||
}, | |||
'cleric 1': { | |||
'1.4': { | |||
name: 'Cleric 1', | |||
sprite: [4, 0], | |||
class: 'wizard', | |||
default: true | |||
sprite: [4, 0] | |||
}, | |||
'cleric 2': { | |||
'1.5': { | |||
name: 'Cleric 2', | |||
sprite: [5, 0], | |||
class: 'wizard', | |||
default: true | |||
sprite: [5, 0] | |||
}, | |||
'thief 1': { | |||
'1.6': { | |||
name: 'Thief 1', | |||
sprite: [6, 0], | |||
class: 'thief', | |||
default: true | |||
sprite: [6, 0] | |||
}, | |||
'thief 2': { | |||
'1.7': { | |||
name: 'Thief 2', | |||
sprite: [7, 0], | |||
class: 'thief', | |||
default: true | |||
sprite: [7, 0] | |||
}, | |||
'gaekatla druid': { | |||
'2.0': { | |||
name: 'Skin: Gaekatlan Druid', | |||
sprite: [0, 4], | |||
class: 'cleric' | |||
sprite: [0, 4] | |||
}, | |||
//Elite Skin Pack | |||
'1.1': { | |||
'10.0': { | |||
name: 'Sorcerer', | |||
spritesheet: 'images/skins/0001.png', | |||
sprite: [0, 0], | |||
class: 'wizard' | |||
sprite: [0, 0] | |||
}, | |||
'1.2': { | |||
'10.1': { | |||
name: 'Diviner', | |||
spritesheet: 'images/skins/0001.png', | |||
sprite: [1, 0], | |||
class: 'wizard' | |||
sprite: [1, 0] | |||
}, | |||
'1.3': { | |||
'10.2': { | |||
name: 'Cutthroat', | |||
spritesheet: 'images/skins/0001.png', | |||
sprite: [2, 0], | |||
class: 'thief' | |||
sprite: [2, 0] | |||
}, | |||
'1.4': { | |||
'10.3': { | |||
name: 'Man of War', | |||
spritesheet: 'images/skins/0001.png', | |||
sprite: [3, 0], | |||
class: 'warrior' | |||
sprite: [3, 0] | |||
}, | |||
'1.5': { | |||
'10.4': { | |||
name: 'Occultist', | |||
spritesheet: 'images/skins/0001.png', | |||
sprite: [4, 0], | |||
class: 'wizard' | |||
sprite: [4, 0] | |||
}, | |||
//Templar Skin Pack | |||
'2.1': { | |||
'11.0': { | |||
name: 'Crusader 1', | |||
spritesheet: 'images/skins/0010.png', | |||
sprite: [0, 0], | |||
class: ['wizard', 'warrior'] | |||
sprite: [0, 0] | |||
}, | |||
'2.2': { | |||
'11.1': { | |||
name: 'Crusader 2', | |||
spritesheet: 'images/skins/0010.png', | |||
sprite: [1, 0], | |||
class: ['wizard', 'warrior'] | |||
sprite: [1, 0] | |||
}, | |||
'2.3': { | |||
'11.2': { | |||
name: 'Crusader 3', | |||
spritesheet: 'images/skins/0010.png', | |||
sprite: [2, 0], | |||
class: ['wizard', 'warrior'] | |||
sprite: [2, 0] | |||
}, | |||
'2.4': { | |||
'11.3': { | |||
name: 'Crusader 4', | |||
spritesheet: 'images/skins/0010.png', | |||
sprite: [3, 0], | |||
class: ['wizard', 'warrior'] | |||
sprite: [3, 0] | |||
}, | |||
'2.5': { | |||
'11.4': { | |||
name: 'Grand Crusader', | |||
spritesheet: 'images/skins/0010.png', | |||
sprite: [4, 0], | |||
class: ['wizard', 'warrior'] | |||
sprite: [4, 0] | |||
} | |||
}; | |||
@@ -136,7 +109,7 @@ define([ | |||
getSkinList: function (skins) { | |||
var list = Object.keys(config) | |||
.filter(function (s) { | |||
return ((config[s].default) || (skins.some(f => (f == s)))); | |||
return ((config[s].default) || (skins.some(f => ((f == s) || (f == '*'))))); | |||
}) | |||
.map(function (s) { | |||
var res = extend(true, {}, config[s]); | |||
@@ -144,35 +117,26 @@ define([ | |||
return res; | |||
}); | |||
var result = {}; | |||
var result = []; | |||
list.forEach(function (skin) { | |||
var classList = skin.class; | |||
if (!classList.push) | |||
classList = [classList]; | |||
classList.forEach(function (className) { | |||
if (!result[className]) | |||
result[className] = []; | |||
result[className].push({ | |||
name: skin.name, | |||
id: skin.id, | |||
sprite: skin.sprite[0] + ',' + skin.sprite[1], | |||
spritesheet: skin.spritesheet | |||
}); | |||
}, this); | |||
}); | |||
result.push({ | |||
name: skin.name, | |||
id: skin.id, | |||
sprite: skin.sprite[0] + ',' + skin.sprite[1], | |||
spritesheet: skin.spritesheet | |||
}); | |||
}, this); | |||
return result; | |||
}, | |||
getCell: function (skinId) { | |||
var skin = config[skinId]; | |||
var skin = config[skinId] || config['1.0']; | |||
return (skin.sprite[1] * 8) + skin.sprite[0]; | |||
}, | |||
getSpritesheet: function (skinId) { | |||
var skin = config[skinId]; | |||
var skin = config[skinId] || config['1.0']; | |||
return skin.spritesheet || 'characters'; | |||
} | |||
}; | |||
@@ -115,12 +115,11 @@ define([ | |||
}, | |||
beforeGetSkins: function (skins) { | |||
skins['necromancer 1'] = { | |||
skins['1.8'] = { | |||
name: 'Necromancer 1', | |||
sprite: [0, 0], | |||
class: 'wizard', | |||
spritesheet: `${this.folderName}/images/inGameSprite.png`, | |||
default: true | |||
spritesheet: `${this.folderName}/images/inGameSprite.png` | |||
}; | |||
}, | |||
@@ -103,7 +103,7 @@ define([ | |||
}, | |||
onBeforeGetSkins: function (skins) { | |||
skins['pumpkin-head necromancer'] = { | |||
skins['3.0'] = { | |||
name: 'Pumpkin-Head Necromancer', | |||
sprite: [0, 0], | |||
class: 'wizard', | |||
@@ -183,7 +183,7 @@ define([ | |||
}, | |||
forceItems: [{ | |||
type: 'skin', | |||
id: 'bearded wizard', | |||
id: '3.1', | |||
infinite: true, | |||
worth: { | |||
currency: `Unique Snowflake`, | |||