diff --git a/src/client/js/components/spellbook.js b/src/client/js/components/spellbook.js index 9d0d98ec..a8af47d1 100644 --- a/src/client/js/components/spellbook.js +++ b/src/client/js/components/spellbook.js @@ -80,7 +80,7 @@ define([ this.spells.splice(existIndex, 1, s); return; } - + if (this.spells.length - 1 >= s.id) this.spells.splice(s.id, 0, s); else @@ -141,7 +141,7 @@ define([ }, tabTarget: function() { - this.onMouseDown(null, objects.getClosest(window.player.x, window.player.y, 10, this.target)); + this.onMouseDown(null, objects.getClosest(window.player.x, window.player.y, 10, this.shiftDown, this.target)); }, build: function(destroy) { @@ -151,7 +151,7 @@ define([ data: { instanceModule: 'customMap', method: 'customize', - data: { + data: { tile: 189, direction: this.obj.keyboardMover.direction, destroy: destroy @@ -288,4 +288,4 @@ define([ this.targetSprite.y = this.target.y * scale; } }; -}); \ No newline at end of file +}); diff --git a/src/client/js/objects/objects.js b/src/client/js/objects/objects.js index 8b4059df..9e01c194 100644 --- a/src/client/js/objects/objects.js +++ b/src/client/js/objects/objects.js @@ -46,7 +46,7 @@ define([ events.emit('onMobHover', mob); }, - getClosest: function(x, y, maxDistance, fromMob, callback) { + getClosest: function(x, y, maxDistance, reverse, fromMob, callback) { var objects = this.objects; var oLen = objects.length; @@ -79,7 +79,13 @@ define([ return (l.id == fromMob.id); }); - return list[(fromIndex + 1) % list.length]; + if (reverse) { + fromIndex = (fromIndex === 0 ? list.length : fromIndex) - 1; + } else { + fromIndex = (fromIndex + 1) % list.length; + } + + return list[fromIndex]; }, onRezone: function(oldZone) { @@ -341,4 +347,4 @@ define([ } } }; -}); \ No newline at end of file +});