@@ -131,6 +131,7 @@ | |||
"no-shadow": [2,{"builtinGlobals":true,"hoist":"all"}], | |||
"no-undef-init": 2, | |||
"no-undef": 1, | |||
"no-undefined": 1, | |||
"no-unused-vars": [1, {"args": "none"}], | |||
"no-use-before-define": 2, | |||
"no-mixed-requires": [2,false], | |||
@@ -5,7 +5,7 @@ | |||
"env": { | |||
"es6": true, | |||
"node": true | |||
"browser": true | |||
}, | |||
"plugins": [ | |||
@@ -49,8 +49,11 @@ | |||
"XMLHttpRequest": false, | |||
"pit": false, | |||
"requirejs": false, | |||
"$": false, | |||
"define": false | |||
"define": false, | |||
"_": false, | |||
"PIXI": false | |||
}, | |||
"rules": { | |||
@@ -1,4 +1,5 @@ | |||
require = requirejs; | |||
/* global require */ | |||
window.require = requirejs; | |||
require.config({ | |||
baseUrl: '', | |||
@@ -22,9 +22,7 @@ define([ | |||
init: function (blueprint) { | |||
//Only allow one bumper at a time | |||
if (this.obj.components.filter(function (c) { | |||
c.type === this.type; | |||
}) > 1) | |||
if (this.obj.components.some(c => c.type === this.type)) | |||
return true; | |||
}, | |||
@@ -37,7 +35,7 @@ define([ | |||
if (this.updateCd > 0) | |||
this.updateCd--; | |||
else { | |||
else { | |||
this.obj.offsetX += (this.deltaX * this.direction * this.speed); | |||
this.obj.offsetY += (this.deltaY * this.direction * this.speed); | |||
@@ -24,7 +24,7 @@ define([ | |||
if (this.cd > 0) | |||
this.cd--; | |||
else if (this.cd === 0) { | |||
else if (this.cd === 0) { | |||
renderer.destroyObject({ | |||
sprite: chatSprite | |||
}); | |||
@@ -47,8 +47,6 @@ define([ | |||
let index = indices[this.obj.cell]; | |||
let color = colors[index]; | |||
this.obj.addComponent('particles', { | |||
chance: chances[index], | |||
blueprint: { | |||
@@ -29,8 +29,6 @@ define([ | |||
effects: [], | |||
init: function (blueprint) { | |||
let sprite = this.obj.sprite; | |||
this.effects = this.effects | |||
.filter(function (e) { | |||
return (auras[e] !== null); | |||
@@ -23,12 +23,10 @@ define([ | |||
let x = 0; | |||
let y = 0; | |||
while (true) { | |||
do { | |||
x = msg.x + ~~(Math.random() * msg.width); | |||
y = msg.y + ~~(Math.random() * msg.height); | |||
if ((physics.isTileBlocking(x, y)) && (Math.max(Math.abs(x - this.obj.x), Math.abs(y - this.obj.y)) > 2)) | |||
break; | |||
} | |||
} while (!physics.isTileBlocking(x, y) || Math.max(Math.abs(x - this.obj.x), Math.abs(y - this.obj.y)) <= 2); | |||
this.obj.flipX = (x < this.obj.x); | |||
this.obj.setSpritePosition(); | |||
@@ -69,7 +69,7 @@ define([ | |||
}); | |||
ray.x = ~~((nx * scale) - (scaleMult * j)); | |||
ray.y = (ny * scale) + (scaleMult * j * hm); | |||
ray.alpha = ((1.0 - (j / h)) * 0.4);// * (0.5 + (Math.random() * 0.5)); | |||
ray.alpha = ((1.0 - (j / h)) * 0.4); | |||
ray.width = w * scaleMult; | |||
ray.height = scaleMult * hm; | |||
ray.tint = 0xffeb38; | |||
@@ -43,8 +43,10 @@ define([ | |||
}, | |||
renderManual: function () { | |||
let linePercentage = this.linePercentage; | |||
let cdMax = this.cdMax; | |||
if (((this.lineGrow) && (this.linePercentage < 1)) || ((this.shrinking) && (this.linePercentage > 0))) | |||
if (((this.lineGrow) && (linePercentage < 1)) || ((this.shrinking) && (linePercentage > 0))) | |||
cdMax = 1; | |||
if (this.cd > 0) { | |||
@@ -76,29 +78,27 @@ define([ | |||
let changeTo = ( | |||
( | |||
(this.lineGrow) && | |||
(this.linePercentage < 1) | |||
(linePercentage < 1) | |||
) || | |||
( | |||
(this.shrinking) && | |||
(this.linePercentage > 0) | |||
(linePercentage > 0) | |||
) | |||
); | |||
if (changeTo) { | |||
let linePercentage = this.linePercentage; | |||
if (this.shrinking) | |||
linePercentage /= 1.5; | |||
else { | |||
else { | |||
linePercentage *= 1.5; | |||
if (linePercentage > 1) | |||
linePercentage = 1; | |||
} | |||
this.linePercentage = linePercentage; | |||
let angle = Math.atan2(toY - fromY, toX - fromX); | |||
let distance = Math.sqrt(Math.pow(fromX - toX, 2) + Math.pow(fromY - toY, 2)); | |||
toX = fromX + (Math.cos(angle) * distance * this.linePercentage); | |||
toY = fromY + (Math.sin(angle) * distance * this.linePercentage); | |||
toX = fromX + (Math.cos(angle) * distance * linePercentage); | |||
toY = fromY + (Math.sin(angle) * distance * linePercentage); | |||
} | |||
this.effect = lightningBuilder.build({ | |||
@@ -113,6 +113,8 @@ define([ | |||
if ((this.shrinking) && (linePercentage < 0.1)) | |||
this.destroyed = true; | |||
this.linePercentage = linePercentage; | |||
}, | |||
destroyManual: function () { | |||
@@ -83,10 +83,10 @@ define([ | |||
let ticksLeft = ~~((this.endTime - (+new Date())) / 16); | |||
if (ticksLeft <= 0) { | |||
this.obj.x = this.targetX; | |||
this.obj.y = this.targetY; | |||
source.x = this.targetX; | |||
source.y = this.targetY; | |||
this.obj.setSpritePosition(); | |||
source.setSpritePosition(); | |||
this.destroyed = true; | |||
this.particles.destroyed = true; | |||
@@ -109,10 +109,10 @@ define([ | |||
this.x += dx; | |||
this.y += dy; | |||
this.obj.x = (~~((this.x * 32) / 8) * 8) / 32; | |||
this.obj.y = (~~((this.y * 32) / 8) * 8) / 32; | |||
source.x = (~~((this.x * 32) / 8) * 8) / 32; | |||
source.y = (~~((this.y * 32) / 8) * 8) / 32; | |||
this.obj.setSpritePosition(); | |||
source.setSpritePosition(); | |||
} | |||
renderer.updateSprites(); | |||
@@ -93,12 +93,12 @@ define([ | |||
let ticksLeft = ~~((this.endTime - (+new Date())) / 16); | |||
if (ticksLeft <= 0) { | |||
this.obj.x = target.x; | |||
this.obj.y = target.y; | |||
source.x = target.x; | |||
source.y = target.y; | |||
this.particles.emitter.emit = false; | |||
if (!this.noExplosion) | |||
this.obj.explosion.explode(); | |||
this.obj.destroyed = true; | |||
source.explosion.explode(); | |||
source.destroyed = true; | |||
} else { | |||
dx /= ticksLeft; | |||
dy /= ticksLeft; | |||
@@ -106,8 +106,8 @@ define([ | |||
this.x += dx; | |||
this.y += dy; | |||
this.obj.x = (~~((this.x * scale) / 4) * 4) / scale; | |||
this.obj.y = (~~((this.y * scale) / 4) * 4) / scale; | |||
source.x = (~~((this.x * scale) / 4) * 4) / scale; | |||
source.y = (~~((this.y * scale) / 4) * 4) / scale; | |||
} | |||
}, | |||
@@ -25,10 +25,6 @@ define([ | |||
let obj = this.obj; | |||
let yOffset = -12; | |||
if (obj.isChampion) | |||
yOffset = -18; | |||
this.hpSprite = renderer.buildRectangle({ | |||
layerName: 'effects', | |||
x: obj.x * scale, | |||
@@ -31,7 +31,6 @@ define([ | |||
46: 'del', | |||
//hacks for mac cmd key | |||
17: 'ctrl', | |||
224: 'ctrl', | |||
91: 'ctrl', | |||
93: 'ctrl' | |||
@@ -86,8 +85,8 @@ define([ | |||
return (down === 1); | |||
} return false; | |||
}, | |||
getAxis: function (name) { | |||
let axis = this.axes[name]; | |||
getAxis: function (axisName) { | |||
let axis = this.axes[axisName]; | |||
if (!axis) | |||
return 0; | |||
@@ -167,7 +166,6 @@ define([ | |||
if ((!el.hasClass('ui-container')) || (el.hasClass('blocking'))) | |||
return; | |||
let button = e.button; | |||
this.mouse.button = null; | |||
this.mouse.down = false; | |||
@@ -1,3 +1,6 @@ | |||
/* global _ */ | |||
//eslint-disable-next-line no-extend-native | |||
Array.prototype.firstIndex = function (callback, thisArg) { | |||
let T = thisArg; | |||
let O = Object(this); | |||
@@ -20,6 +23,7 @@ Array.prototype.firstIndex = function (callback, thisArg) { | |||
return -1; | |||
}; | |||
//eslint-disable-next-line no-extend-native | |||
Array.prototype.spliceWhere = function (callback, thisArg) { | |||
let T = thisArg; | |||
let O = Object(this); | |||
@@ -42,6 +46,7 @@ Array.prototype.spliceWhere = function (callback, thisArg) { | |||
} | |||
}; | |||
//eslint-disable-next-line no-extend-native | |||
Array.prototype.spliceFirstWhere = function (callback, thisArg) { | |||
let T = thisArg; | |||
let O = Object(this); | |||
@@ -64,6 +69,15 @@ Array.prototype.spliceFirstWhere = function (callback, thisArg) { | |||
} | |||
}; | |||
//eslint-disable-next-line no-extend-native | |||
Object.defineProperty(Object.prototype, 'has', { | |||
enumerable: false, | |||
value: function (prop) { | |||
//eslint-disable-next-line no-undefined | |||
return (this.hasOwnProperty(prop) && this[prop] !== undefined && this[prop] !== null); | |||
} | |||
}); | |||
window._ = { | |||
create: function () { | |||
let result = {}; | |||
@@ -1,3 +1,5 @@ | |||
/* eslint-disable */ | |||
// javascript-astar 0.4.1 | |||
// http://github.com/bgrins/javascript-astar | |||
// Freely distributable under the MIT License. | |||
@@ -48,7 +48,6 @@ define([ | |||
elementFireResist: 'fire resistance', | |||
elementHolyResist: 'holy resistance', | |||
elementPoisonResist: 'poison resistance', | |||
elementAllResist: 'all resistance', | |||
attackSpeed: 'attack speed', | |||
castSpeed: 'cast speed', | |||
@@ -58,10 +58,10 @@ define([ | |||
}, | |||
update: function () { | |||
let components = this.components; | |||
let len = components.length; | |||
let oComponents = this.components; | |||
let len = oComponents.length; | |||
for (let i = 0; i < len; i++) { | |||
let c = components[i]; | |||
let c = oComponents[i]; | |||
if (c.update) | |||
c.update(); | |||
@@ -69,7 +69,7 @@ define([ | |||
if (c.destroy) | |||
c.destroy(); | |||
components.splice(i, 1); | |||
oComponents.splice(i, 1); | |||
i--; | |||
len--; | |||
delete this[c.type]; | |||
@@ -77,9 +77,9 @@ define([ | |||
} | |||
}, | |||
on: function (event, callback) { | |||
let list = this.eventCallbacks[event] || (this.eventCallbacks[event] = []); | |||
list.push(events.on(event, callback)); | |||
on: function (eventName, callback) { | |||
let list = this.eventCallbacks[eventName] || (this.eventCallbacks[eventName] = []); | |||
list.push(events.on(eventName, callback)); | |||
}, | |||
setSpritePosition: function () { | |||
@@ -133,10 +133,10 @@ define([ | |||
}); | |||
} | |||
let components = this.components; | |||
let cLen = components.length; | |||
let oComponents = this.components; | |||
let cLen = oComponents.length; | |||
for (let i = 0; i < cLen; i++) { | |||
let c = components[i]; | |||
let c = oComponents[i]; | |||
if (c.destroy) | |||
c.destroy(); | |||
} | |||
@@ -54,7 +54,6 @@ define([ | |||
getClosest: function (x, y, maxDistance, reverse, fromMob) { | |||
let objects = this.objects; | |||
let oLen = objects.length; | |||
let list = objects.filter(function (o) { | |||
if ((!o.stats) || (o.nonSelectable) || (o === window.player)) | |||
@@ -89,7 +88,7 @@ define([ | |||
if (reverse) | |||
fromIndex = (fromIndex === 0 ? list.length : fromIndex) - 1; | |||
else | |||
else | |||
fromIndex = (fromIndex + 1) % list.length; | |||
return list[fromIndex]; | |||
@@ -24,8 +24,6 @@ define([ | |||
if (!target) | |||
return; | |||
let addY = msg.event ? scale : -(scale * 0.75); | |||
let ttl = 35; | |||
let numberObj = { | |||
@@ -43,7 +41,7 @@ define([ | |||
if (numberObj.event) | |||
numberObj.y += (scale / 2); | |||
else if (numberObj.heal) | |||
else if (numberObj.heal) | |||
numberObj.x -= scale; | |||
else | |||
numberObj.x += scale; | |||
@@ -266,17 +266,17 @@ define([ | |||
getTexture: function (baseTex, cell, size) { | |||
size = size || 8; | |||
let name = baseTex + '_' + cell; | |||
let textureName = baseTex + '_' + cell; | |||
let textureCache = this.textureCache; | |||
let cached = textureCache[name]; | |||
let cached = textureCache[textureName]; | |||
if (!cached) { | |||
let y = ~~(cell / 8); | |||
let x = cell - (y * 8); | |||
cached = new pixi.Texture(this.textures[baseTex], new pixi.Rectangle(x * size, y * size, size, size)); | |||
textureCache[name] = cached; | |||
textureCache[textureName] = cached; | |||
} | |||
return cached; | |||
@@ -755,8 +755,8 @@ define([ | |||
textSprite.x = obj.x - (textSprite.width / 2); | |||
textSprite.y = obj.y; | |||
let parent = obj.parent || this.layers[obj.layerName]; | |||
parent.addChild(textSprite); | |||
let parentSprite = obj.parent || this.layers[obj.layerName]; | |||
parentSprite.addChild(textSprite); | |||
return textSprite; | |||
}, | |||
@@ -14,7 +14,7 @@ define([ | |||
frag.replace(/%THICKNESS%/gi, (1.0 / thickness).toFixed(7)) | |||
); | |||
this.uniforms.pixelWidth = 0.002;//1.0 / (viewWidth || 1); | |||
this.uniforms.pixelWidth = 0.002; | |||
this.uniforms.pixelHeight = 1.0 / (viewHeight || 1); | |||
this.uniforms.thickness = thickness; | |||
this.uniforms.outlineColor = new Float32Array([0, 0, 0, 1]); | |||
@@ -77,20 +77,30 @@ define([ | |||
}, | |||
tilesNoFlip: [ | |||
171, 179 //Stairs | |||
//Stairs | |||
171, 179 | |||
], | |||
wallsNoFlip: [ | |||
156, 158, 162, 163, 167, 168, //Ledges | |||
189, //Wall Sign | |||
195, 196, 197, 198, 199, 200, 201, 202, 203, //Stone Ledges | |||
204, 205, 206, 207, 214, 215, 220, 221, 222, 223 //Ship Edges | |||
//Ledges | |||
156, 158, 162, 163, 167, 168, | |||
//Wall Sign | |||
189, | |||
//Stone Ledges | |||
195, 196, 197, 198, 199, 200, 201, 202, 203, | |||
//Ship Edges | |||
204, 205, 206, 207, 214, 215, 220, 221, 222, 223 | |||
], | |||
objectsNoFlip: [ | |||
96, 101, //Clotheslines | |||
103, 110, 118, 126, //Table Sides | |||
120, 122, 140, //Wall-mounted plants | |||
140, 143, //Ship oars | |||
141, 142 //Ship Cannons | |||
//Clotheslines | |||
96, 101, | |||
//Table Sides | |||
103, 110, 118, 126, | |||
//Wall-mounted plants | |||
120, 122, 140, | |||
//Ship oars | |||
140, 143, | |||
//Ship Cannons | |||
141, 142 | |||
], | |||
getSheetNum: function (tile) { | |||
@@ -46,6 +46,7 @@ define([ | |||
let volume = 0.3 * dist; | |||
if (!s.sound) { | |||
//eslint-disable-next-line no-undef | |||
s.sound = new Howl({ | |||
src: ['audio/' + s.file], | |||
autoplay: true, | |||
@@ -6,19 +6,19 @@ define([ | |||
let events = { | |||
events: {}, | |||
queue: [], | |||
on: function (event, callback) { | |||
let list = this.events[event] || (this.events[event] = []); | |||
on: function (eventName, callback) { | |||
let list = this.events[eventName] || (this.events[eventName] = []); | |||
list.push(callback); | |||
for (let i = 0; i < this.queue.length; i++) { | |||
let q = this.queue[i]; | |||
if (q.event !== event) | |||
if (q.event !== eventName) | |||
continue; | |||
this.queue.splice(i, 1); | |||
i--; | |||
q.args.splice(0, 0, event); | |||
q.args.splice(0, 0, eventName); | |||
this.emit.apply(this, q.args); | |||
} | |||
@@ -31,7 +31,7 @@ define([ | |||
return ((q.event !== 'onGetConnectedPlayer') && (q.event !== 'onGetDisconnectedPlayer')); | |||
}); | |||
}, | |||
off: function (event, callback) { | |||
off: function (eventName, callback) { | |||
let list = this.events[event] || []; | |||
let lLen = list.length; | |||
for (let i = 0; i < lLen; i++) { | |||
@@ -43,15 +43,15 @@ define([ | |||
} | |||
if (lLen === 0) | |||
delete this.events[event]; | |||
delete this.events[eventName]; | |||
}, | |||
emit: function (event) { | |||
emit: function (eventName) { | |||
let args = [].slice.call(arguments, 1); | |||
let list = this.events[event]; | |||
let list = this.events[eventName]; | |||
if (!list) { | |||
this.queue.push({ | |||
event: event, | |||
event: eventName, | |||
args: args | |||
}); | |||
@@ -80,12 +80,12 @@ define([ | |||
return (b.level - a.level); | |||
}) | |||
.forEach(function (c, i) { | |||
let name = c.name; | |||
let charName = c.name; | |||
if (c.level !== null) | |||
name += '<font class="color-yellowB"> (' + c.level + ')</font>'; | |||
charName += '<font class="color-yellowB"> (' + c.level + ')</font>'; | |||
let html = templateListItem | |||
.replace('$NAME$', name); | |||
.replace('$NAME$', charName); | |||
let li = $(html) | |||
.appendTo(list); | |||
@@ -96,16 +96,16 @@ define([ | |||
li.click(); | |||
}, this); | |||
}, | |||
onCharacterClick: function (name, e) { | |||
onCharacterClick: function (charName, e) { | |||
this.el.addClass('disabled'); | |||
let el = $(e.target); | |||
el.parent().find('.selected').removeClass('selected'); | |||
el.addClass('selected'); | |||
let charInfo = this.characterInfo[name]; | |||
let charInfo = this.characterInfo[charName]; | |||
if (charInfo) { | |||
this.onGetCharacter(name, charInfo); | |||
this.onGetCharacter(charName, charInfo); | |||
return; | |||
} | |||
@@ -114,12 +114,12 @@ define([ | |||
cpn: 'auth', | |||
method: 'getCharacter', | |||
data: { | |||
name: name | |||
name: charName | |||
}, | |||
callback: this.onGetCharacter.bind(this, name) | |||
callback: this.onGetCharacter.bind(this, charName) | |||
}); | |||
}, | |||
onGetCharacter: function (name, result) { | |||
onGetCharacter: function (charName, result) { | |||
this.find('.button').removeClass('disabled'); | |||
let spriteY = ~~(result.cell / 8); | |||
@@ -136,7 +136,7 @@ define([ | |||
.css('background', 'url("' + spritesheet + '") ' + spirteX + 'px ' + spriteY + 'px') | |||
.show(); | |||
this.find('.name').html(name); | |||
this.find('.name').html(charName); | |||
let stats = result.components.find(function (c) { | |||
return (c.type === 'stats'); | |||
}); | |||
@@ -151,20 +151,20 @@ define([ | |||
this.el.removeClass('disabled'); | |||
this.characterInfo[name] = result; | |||
this.selected = name; | |||
this.characterInfo[charName] = result; | |||
this.selected = charName; | |||
let prophecies = result.components.find(function (c) { | |||
return (c.type === 'prophecies'); | |||
}); | |||
if ((prophecies) && (prophecies.list.indexOf('hardcore') > -1)) | |||
this.find('.name').html(name + ' (hc)'); | |||
this.find('.name').html(charName + ' (hc)'); | |||
this.find('.btnPlay').removeClass('disabled'); | |||
if (result.permadead) { | |||
this.find('.name').html(name + ' (hc - rip)'); | |||
this.find('.name').html(charName + ' (hc - rip)'); | |||
this.find('.btnPlay').addClass('disabled'); | |||
} | |||
}, | |||
@@ -46,24 +46,24 @@ define([ | |||
events.emit('onShowOverlay', this.el); | |||
}, | |||
onDeath: function (event) { | |||
if (!event.source) | |||
onDeath: function (eventObj) { | |||
if (!eventObj.source) | |||
this.find('.msg').html('you are dead'); | |||
else | |||
this.find('.msg').html('you were killed by [ <div class="inner">' + event.source + '</div> ]'); | |||
else | |||
this.find('.msg').html('you were killed by [ <div class="inner">' + eventObj.source + '</div> ]'); | |||
this.find('.penalty') | |||
.html('you lost ' + event.xpLoss + ' experience') | |||
.html('you lost ' + eventObj.xpLoss + ' experience') | |||
.show(); | |||
if (!event.xpLoss) | |||
if (!eventObj.xpLoss) | |||
this.find('.penalty').hide(); | |||
this.el.removeClass('permadeath'); | |||
this.doShow(); | |||
}, | |||
onPermadeath: function (event) { | |||
this.find('.msg').html('you were killed by [ <div class="inner">' + event.source + '</div> ]'); | |||
onPermadeath: function (eventObj) { | |||
this.find('.msg').html('you were killed by [ <div class="inner">' + eventObj.source + '</div> ]'); | |||
this.el.addClass('permadeath'); | |||
this.doShow(); | |||
} | |||
@@ -104,7 +104,6 @@ define([ | |||
el = $(el); | |||
let slot = el.attr('slot'); | |||
let newItems = window.player.inventory.items.some(function (i) { | |||
let checkSlot = slot; | |||
if (slot.indexOf('finger') === 0) | |||
slot = 'finger'; | |||
else if (slot === 'oneHanded') | |||
@@ -209,20 +208,20 @@ define([ | |||
let imgX = -sprite[0] * 64; | |||
let imgY = -sprite[1] * 64; | |||
let el = $('<div class="slot"><div class="icon"></div></div>') | |||
let itemEl = $('<div class="slot"><div class="icon"></div></div>') | |||
.appendTo(container); | |||
el | |||
itemEl | |||
.find('.icon') | |||
.css('background', 'url("' + spriteSheet + '") ' + imgX + 'px ' + imgY + 'px') | |||
.on('mousemove', this.onHoverItem.bind(this, el, item, null)) | |||
.on('mousemove', this.onHoverItem.bind(this, itemEl, item, null)) | |||
.on('mouseleave', this.onHoverItem.bind(this, null, null)) | |||
.on('click', this.equipItem.bind(this, item, slot)); | |||
if (item === this.hoverCompare) | |||
el.find('.icon').addClass('eq'); | |||
else if (item.isNew) | |||
el.find('.icon').addClass('new'); | |||
itemEl.find('.icon').addClass('eq'); | |||
else itemEl(item.isNew); | |||
el.find('.icon').addClass('new'); | |||
}, this); | |||
if (items.length === 0) | |||
@@ -33,44 +33,41 @@ define([ | |||
}, | |||
onRemoveEvent: function (id) { | |||
let l = this.list.spliceFirstWhere(function (l) { | |||
return (l.id === id); | |||
}); | |||
let l = this.list.spliceFirstWhere(f => f.id === id); | |||
if (l) | |||
l.el.remove(); | |||
}, | |||
onObtainEvent: function (event) { | |||
onObtainEvent: function (eventObj) { | |||
let exists = this.list.find(function (l) { | |||
return (l.id === event.id); | |||
return (l.id === eventObj.id); | |||
}); | |||
if (exists) { | |||
exists.el.find('.name').html(event.name); | |||
exists.el.find('.description').html(event.description); | |||
exists.el.find('.name').html(eventObj.name); | |||
exists.el.find('.description').html(eventObj.description); | |||
return; | |||
} | |||
let container = this.el.find('.list'); | |||
let html = templateEvent | |||
.replace('$NAME$', event.name) | |||
.replace('$DESCRIPTION$', event.description); | |||
.replace('$NAME$', eventObj.name) | |||
.replace('$DESCRIPTION$', eventObj.description); | |||
let el = $(html).appendTo(container); | |||
if (event.isReady) | |||
if (eventObj.isReady) | |||
el.addClass('ready'); | |||
this.list.push({ | |||
id: event.id, | |||
id: eventObj.id, | |||
el: el, | |||
event: event | |||
event: eventObj | |||
}); | |||
let event = container.find('.event'); | |||
let eventEl = container.find('.event'); | |||
event | |||
eventEl | |||
.sort(function (a, b) { | |||
a = $(a).hasClass('active') ? 1 : 0; | |||
b = $(b).hasClass('active') ? 1 : 0; | |||
@@ -79,17 +76,17 @@ define([ | |||
.appendTo(container); | |||
}, | |||
onUpdateEvent: function (event) { | |||
onUpdateEvent: function (eventObj) { | |||
let e = this.list.find(function (l) { | |||
return (l.id === event.id); | |||
return (l.id === eventObj.id); | |||
}); | |||
e.event.isReady = event.isReady; | |||
e.event.isReady = eventObj.isReady; | |||
e.el.find('.description').html(event.description); | |||
e.el.find('.description').html(eventObj.description); | |||
e.el.removeClass('ready'); | |||
if (event.isReady) { | |||
if (eventObj.isReady) { | |||
e.el.removeClass('disabled'); | |||
e.el.addClass('ready'); | |||
} | |||
@@ -15,28 +15,6 @@ define([ | |||
tplTooltip, | |||
input | |||
) { | |||
let qualityColors = [{ | |||
r: 252, | |||
g: 252, | |||
b: 252 | |||
}, { | |||
r: 7, | |||
g: 170, | |||
b: 214 | |||
}, { | |||
r: 255, | |||
g: 255, | |||
b: 0 | |||
}, { | |||
r: 192, | |||
g: 0, | |||
b: 207 | |||
}, { | |||
r: 255, | |||
g: 108, | |||
b: 4 | |||
}]; | |||
return { | |||
tpl: template, | |||
@@ -90,12 +68,12 @@ define([ | |||
let rendered = []; | |||
for (let i = 0; i < iLen; i++) { | |||
let item = items.find(function (item) { | |||
return ((item.pos !== null) && (item.pos === i)); | |||
}); | |||
let itemEl = null; | |||
let item = items.find(f => (f.pos !== null && f.pos === i)); | |||
if (!item) { | |||
let itemEl = $(tplItem) | |||
itemEl = $(tplItem) | |||
.appendTo(container); | |||
itemEl | |||
@@ -112,7 +90,7 @@ define([ | |||
let imgX = -item.sprite[0] * 64; | |||
let imgY = -item.sprite[1] * 64; | |||
let itemEl = $(tplItem) | |||
itemEl = $(tplItem) | |||
.appendTo(container); | |||
let spritesheet = item.spritesheet || '../../../images/items.png'; | |||
@@ -121,7 +99,7 @@ define([ | |||
spritesheet = '../../../images/materials.png'; | |||
else if (item.quest) | |||
spritesheet = '../../../images/questItems.png'; | |||
else if (item.type === 'consumable') | |||
else if (item.type === 'consumable') | |||
spritesheet = '../../../images/consumables.png'; | |||
} | |||
@@ -365,7 +343,7 @@ define([ | |||
if (config.length > 0) | |||
events.emit('onContextMenu', config, e); | |||
e.preventDefault; | |||
e.preventDefault(); | |||
return false; | |||
}, | |||
@@ -406,12 +384,14 @@ define([ | |||
onChangeStackAmount: function (e, amount) { | |||
let item = this.find('.split-box').data('item'); | |||
let delta = e ? ((e.originalEvent.deltaY > 0) ? -1 : 1) : amount; | |||
let delta = amount; | |||
if (e) | |||
delta = (e.originalEvent.deltaY > 0) ? -1 : 1; | |||
if (this.shiftDown) | |||
delta *= 10; | |||
let amount = this.find('.split-box .amount'); | |||
let elAmount = this.find('.split-box .amount'); | |||
amount.val(Math.max(1, Math.min(item.quantity - 1, ~~amount.val() + delta))); | |||
elAmount.val(Math.max(1, Math.min(item.quantity - 1, ~~elAmount.val() + delta))); | |||
}, | |||
onEnterStackAmount: function (e) { | |||
@@ -464,7 +444,6 @@ define([ | |||
delete item.isNew; | |||
} | |||
let elOffset = el.offset(); | |||
ttPos = { | |||
x: ~~(e.clientX + 32), | |||
y: ~~(e.clientY) | |||
@@ -494,9 +473,9 @@ define([ | |||
if (item.slot === 'twoHanded') { | |||
if (!equippedOneHanded) | |||
compare = equippedOffhand; | |||
else if (!equippedOffhand) | |||
else if (!equippedOffhand) | |||
compare = equippedOneHanded; | |||
else { | |||
else { | |||
// compare against oneHanded and offHand combined by creating a virtual item that is the sum of the two | |||
compare = $.extend(true, {}, equippedOneHanded); | |||
compare.refItem = equippedOneHanded; | |||
@@ -128,8 +128,6 @@ define([ | |||
let container = this.find('.list').empty(); | |||
let low = this.offset * this.pageSize; | |||
let high = Math.min(result.length, low + this.pageSize); | |||
this.maxOffset = Math.ceil(result.length / this.pageSize) - 1; | |||
for (let i = 0; i < this.records.list.length; i++) { | |||
@@ -38,8 +38,8 @@ define([ | |||
}, | |||
redirect: function (e) { | |||
let location = $(e.target).attr('location'); | |||
window.open(location, '_blank'); | |||
let currentLocation = $(e.target).attr('location'); | |||
window.open(currentLocation, '_blank'); | |||
}, | |||
onKeyDown: function (e) { | |||
@@ -73,7 +73,7 @@ define([ | |||
spritesheet = '../../../images/materials.png'; | |||
else if (item.quest) | |||
spritesheet = '../../../images/questItems.png'; | |||
else if (item.type === 'consumable') | |||
else if (item.type === 'consumable') | |||
spritesheet = '../../../images/consumables.png'; | |||
let el = this.find('.item'); | |||
@@ -83,10 +83,9 @@ define([ | |||
.find('.icon') | |||
.css('background', 'url(' + spritesheet + ') ' + imgX + 'px ' + imgY + 'px'); | |||
if (item.quantity) { | |||
let quantityText = item.quantity; | |||
if (item.quantity) | |||
el.find('.quantity').html(item.quantity); | |||
} else | |||
else | |||
el.find('.quantity').html(''); | |||
this.find('.txtRecipient').val(''); | |||
@@ -70,7 +70,7 @@ define([ | |||
this.find('[filter="' + channel.trim() + '"]').remove(); | |||
let container = this.find('.filters'); | |||
let newFilter = $(tplTab) | |||
$(tplTab) | |||
.appendTo(container) | |||
.addClass('channel') | |||
.attr('filter', channel.trim()) | |||
@@ -75,11 +75,11 @@ define([ | |||
this.build(); | |||
}, | |||
onGetDisconnectedPlayer: function (name) { | |||
onGetDisconnectedPlayer: function (playerName) { | |||
let onlineList = this.onlineList; | |||
onlineList.spliceWhere(function (o) { | |||
return (o.name === name); | |||
return (o.name === playerName); | |||
}); | |||
if (this.shown) | |||
@@ -115,7 +115,7 @@ define([ | |||
}], e); | |||
} | |||
e.preventDefault; | |||
e.preventDefault(); | |||
return false; | |||
}, | |||
@@ -117,17 +117,17 @@ define([ | |||
let player = globals.onlineList.find(function (o) { | |||
return (o.id === p); | |||
}); | |||
let name = player ? player.name : 'unknown'; | |||
let playerName = player ? player.name : 'unknown'; | |||
let level = 'level: ' + (player ? player.level : '?'); | |||
let html = templatePartyMember | |||
.replace('$NAME$', name) | |||
.replace('$NAME$', playerName) | |||
.replace('$LEVEL$', level); | |||
let el = $(html) | |||
.appendTo(container) | |||
.attr('memberId', p) | |||
.on('contextmenu', this.showContext.bind(this, name, p)); | |||
.on('contextmenu', this.showContext.bind(this, playerName, p)); | |||
if (player.zone !== window.player.zone) | |||
el.addClass('differentZone'); | |||
@@ -153,7 +153,7 @@ define([ | |||
callback: this.leaveParty.bind(this) | |||
}], e); | |||
e.preventDefault; | |||
e.preventDefault(); | |||
return false; | |||
}, | |||
@@ -29,7 +29,6 @@ define([ | |||
46: 'del', | |||
//hacks for mac cmd key | |||
17: 'ctrl', | |||
224: 'ctrl', | |||
91: 'ctrl', | |||
93: 'ctrl' | |||
@@ -80,8 +79,8 @@ define([ | |||
return (down === 1); | |||
} return false; | |||
}, | |||
getAxis: function (name) { | |||
let axis = this.axes[name]; | |||
getAxis: function (axisName) { | |||
let axis = this.axes[axisName]; | |||
if (!axis) | |||
return 0; | |||
@@ -162,7 +161,6 @@ define([ | |||
if ((!el.hasClass('canvas')) || (el.hasClass('blocking'))) | |||
return; | |||
let button = e.button; | |||
this.mouse.button = null; | |||
this.mouse.down = false; | |||
this.mouse.raw = e; | |||
@@ -150,8 +150,6 @@ define([ | |||
renderers: { | |||
clear: function () { | |||
let pos = this.oldPos || this.pos; | |||
this.ctx.clearRect(0, 0, this.size.w, this.size.h); | |||
delete this.oldPos; | |||
@@ -317,12 +315,12 @@ define([ | |||
else if (node.spiritStart) | |||
text = 'Starting node for ' + node.spiritStart + ' spirits'; | |||
let pos = { | |||
let tooltipPos = { | |||
x: input.mouse.raw.clientX + 15, | |||
y: input.mouse.raw.clientY | |||
}; | |||
events.emit('onShowTooltip', text, this.el[0], pos); | |||
events.emit('onShowTooltip', text, this.el[0], tooltipPos); | |||
} else | |||
events.emit('onHideTooltip', this.el[0]); | |||
}, | |||
@@ -398,7 +396,7 @@ define([ | |||
}, | |||
onGetPassivePoints: function (points) { | |||
let el = this.find('.points') | |||
this.find('.points') | |||
.html('Points Available: ' + points); | |||
}, | |||
@@ -409,9 +407,7 @@ define([ | |||
data: { | |||
cpn: 'passives', | |||
method: 'untickNode', | |||
data: { | |||
nodeId: node.id | |||
} | |||
data: {} | |||
} | |||
}); | |||
} | |||
@@ -85,10 +85,7 @@ define([ | |||
}, | |||
onUpdateQuest: function (quest) { | |||
let q = this.quests.find(function (q) { | |||
return (q.id === quest.id); | |||
}); | |||
let q = this.quests.find(f => f.id === quest.id); | |||
q.quest.isReady = quest.isReady; | |||
q.el.find('.description').html(quest.description); | |||
@@ -101,17 +98,13 @@ define([ | |||
}, | |||
onCompleteQuest: function (id) { | |||
let q = this.quests.find(function (q) { | |||
return (q.id === id); | |||
}); | |||
let q = this.quests.find(f => f.id === id); | |||
if (!q) | |||
return; | |||
q.el.remove(); | |||
this.quests.spliceWhere(function (q) { | |||
return (q.id === id); | |||
}); | |||
this.quests.spliceWhere(f => f.id === id); | |||
} | |||
}; | |||
}); |
@@ -130,23 +130,23 @@ define([ | |||
this.offEvent(this.eventClickInv); | |||
return; | |||
} else if ((!msg.item.slot) || (msg.item.noAugment)) { | |||
let msg = { | |||
let resultMsg = { | |||
msg: 'Incorrect Item Type', | |||
type: 'failure', | |||
zIndex: 9999999, | |||
top: 180 | |||
}; | |||
events.emit('onGetAnnouncement', msg); | |||
events.emit('onGetAnnouncement', resultMsg); | |||
return; | |||
} else if (msg.item.eq) { | |||
let msg = { | |||
let resultMsg = { | |||
msg: 'Cannot augment equipped items', | |||
type: 'failure', | |||
zIndex: 9999999, | |||
top: 180 | |||
}; | |||
events.emit('onGetAnnouncement', msg); | |||
events.emit('onGetAnnouncement', resultMsg); | |||
return; | |||
} | |||
@@ -247,7 +247,7 @@ define([ | |||
spritesheet = '../../../images/materials.png'; | |||
else if (item.quest) | |||
spritesheet = '../../../images/questItems.png'; | |||
else if (item.type === 'consumable') | |||
else if (item.type === 'consumable') | |||
spritesheet = '../../../images/consumables.png'; | |||
let el = $(templateItem) | |||
@@ -277,7 +277,6 @@ define([ | |||
let ttPos = null; | |||
if (el) { | |||
let elOffset = el.offset(); | |||
ttPos = { | |||
x: ~~(e.clientX + 32), | |||
y: ~~(e.clientY) | |||
@@ -52,9 +52,10 @@ define([ | |||
}) | |||
.next().html(hotkey); | |||
//HACK - we don't actually know how long a tick is | |||
this.onGetSpellCooldowns({ | |||
spell: spells[i].id, | |||
cd: spells[i].cd * 350 //HACK - we don't actually know how long a tick is | |||
cd: spells[i].cd * 350 | |||
}); | |||
} | |||
}, | |||
@@ -58,7 +58,7 @@ define([ | |||
spritesheet = '../../../images/materials.png'; | |||
else if (item.quest) | |||
spritesheet = '../../../images/questItems.png'; | |||
else if (item.type === 'consumable') | |||
else if (item.type === 'consumable') | |||
spritesheet = '../../../images/consumables.png'; | |||
} | |||
@@ -93,7 +93,7 @@ define([ | |||
callback: this.withdraw.bind(this, item) | |||
}], e); | |||
e.preventDefault; | |||
e.preventDefault(); | |||
return false; | |||
}, | |||
@@ -37,7 +37,7 @@ define([ | |||
events.emit('onContextMenu', context, e.event); | |||
e.event.preventDefault; | |||
e.event.preventDefault(); | |||
return false; | |||
}, | |||
@@ -100,7 +100,7 @@ define([ | |||
}); | |||
} | |||
stats = Object.keys(tempStats) | |||
let stats = Object.keys(tempStats) | |||
.map(function (s) { | |||
let isEnchanted = (s[0] === '_'); | |||
let statName = s; | |||
@@ -160,16 +160,16 @@ define([ | |||
return row; | |||
}).join(''); | |||
let name = item.name; | |||
let itemName = item.name; | |||
if (item.quantity > 1) | |||
name += ' x' + item.quantity; | |||
itemName += ' x' + item.quantity; | |||
let level = null; | |||
if (item.level) | |||
level = item.level.push ? item.level[0] + ' - ' + item.level[1] : item.level; | |||
let html = tplTooltip | |||
.replace('$NAME$', name) | |||
.replace('$NAME$', itemName) | |||
.replace('$QUALITY$', item.quality) | |||
.replace('$TYPE$', item.type) | |||
.replace('$SLOT$', item.slot) | |||
@@ -195,7 +195,7 @@ define([ | |||
// have to move away from zero by EPSILON, not a simple add | |||
if (delta >= 0) | |||
delta += Number.EPSILON; | |||
else | |||
else | |||
delta -= Number.EPSILON; | |||
delta = ~~((delta) * 100) / 100; | |||
@@ -268,7 +268,7 @@ define([ | |||
if (!item.ability) | |||
this.tooltip.find('.damage').hide(); | |||
else | |||
else | |||
this.tooltip.find('.info').hide(); | |||
if (item.spell) { | |||
@@ -76,7 +76,7 @@ define([ | |||
spritesheet = '../../../images/materials.png'; | |||
else if (item.quest) | |||
spritesheet = '../../../images/questItems.png'; | |||
else if (item.type === 'consumable') | |||
else if (item.type === 'consumable') | |||
spritesheet = '../../../images/consumables.png'; | |||
else if (item.type === 'skin') { | |||
offset = 4; | |||
@@ -105,9 +105,7 @@ define([ | |||
if (action === 'buy') { | |||
let noAfford = false; | |||
if (item.worth.currency) { | |||
let currencyItems = window.player.inventory.items.find(function (i) { | |||
return (i.name === item.worth.currency); | |||
}); | |||
let currencyItems = window.player.inventory.items.find(f => f.name === item.worth.currency); | |||
noAfford = ((!currencyItems) || (currencyItems.quantity < item.worth.amount)); | |||
} else | |||
noAfford = (item.worth * this.itemList.markup > window.player.trade.gold); | |||
@@ -51,7 +51,7 @@ define([ | |||
}, this); | |||
}, | |||
onSelectRecipe: function (el, name) { | |||
onSelectRecipe: function (el, recipeName) { | |||
el.parent().find('.selected').removeClass('selected'); | |||
el.addClass('selected'); | |||
@@ -63,7 +63,7 @@ define([ | |||
cpn: 'workbench', | |||
method: 'getRecipe', | |||
data: { | |||
name: name | |||
name: recipeName | |||
} | |||
}, | |||
callback: this.onGetRecipe.bind(this) | |||
@@ -132,11 +132,10 @@ define([ | |||
this.find('.title').html(''); | |||
this.find('.description').html(''); | |||
this.find('.materialList .material').remove(); | |||
let container = this.find('.materialList') | |||
this.find('.materialList') | |||
.css({ | |||
visibility: 'hidden' | |||
}); | |||
this.find('.btnCraft').addClass('disabled'); | |||
} | |||
}; | |||
@@ -49,15 +49,15 @@ define([ | |||
setOptions: function (options) { | |||
this.options = options; | |||
}, | |||
on: function (el, event, callback) { | |||
on: function (el, eventName, callback) { | |||
if (typeof (el) === 'string') | |||
el = this.find(el); | |||
else | |||
el = $(el); | |||
el.on(event, function () { | |||
el.on(eventName, function () { | |||
let args = [].slice.call(arguments, 1); | |||
args.splice(0, 0, event); | |||
args.splice(0, 0, eventName); | |||
callback.apply(null, args); | |||
}); | |||
@@ -122,9 +122,9 @@ define([ | |||
this.el.addClass('disabled'); | |||
}, | |||
onEvent: function (event, callback) { | |||
let list = this.eventCallbacks[event] || (this.eventCallbacks[event] = []); | |||
let eventCallback = events.on(event, callback); | |||
onEvent: function (eventName, callback) { | |||
let list = this.eventCallbacks[eventName] || (this.eventCallbacks[eventName] = []); | |||
let eventCallback = events.on(eventName, callback); | |||
list.push(eventCallback); | |||
return eventCallback; | |||
@@ -1,7 +1,5 @@ | |||
//Hack to bypass eslint | |||
let Obj = Object; | |||
Obj.defineProperty(Array.prototype, 'firstIndex', { | |||
//eslint-disable-next-line no-extend-native | |||
Object.defineProperty(Array.prototype, 'firstIndex', { | |||
enumerable: false, | |||
value: function (callback, thisArg) { | |||
let T = thisArg; | |||
@@ -26,7 +24,8 @@ Obj.defineProperty(Array.prototype, 'firstIndex', { | |||
} | |||
}); | |||
Obj.defineProperty(Array.prototype, 'spliceWhere', { | |||
//eslint-disable-next-line no-extend-native | |||
Object.defineProperty(Array.prototype, 'spliceWhere', { | |||
enumerable: false, | |||
value: function (callback, thisArg) { | |||
let T = thisArg; | |||
@@ -51,7 +50,8 @@ Obj.defineProperty(Array.prototype, 'spliceWhere', { | |||
} | |||
}); | |||
Obj.defineProperty(Array.prototype, 'spliceFirstWhere', { | |||
//eslint-disable-next-line no-extend-native | |||
Object.defineProperty(Array.prototype, 'spliceFirstWhere', { | |||
enumerable: false, | |||
value: function (callback, thisArg) { | |||
let T = thisArg; | |||
@@ -76,9 +76,11 @@ Obj.defineProperty(Array.prototype, 'spliceFirstWhere', { | |||
} | |||
}); | |||
Obj.defineProperty(Object.prototype, 'has', { | |||
//eslint-disable-next-line no-extend-native | |||
Object.defineProperty(Object.prototype, 'has', { | |||
enumerable: false, | |||
value: function (prop) { | |||
//eslint-disable-next-line no-undefined | |||
return (this.hasOwnProperty(prop) && this[prop] !== undefined && this[prop] !== null); | |||
} | |||
}); | |||