diff --git a/test/spec/controllers/inventoryCtrlSpec.js b/test/spec/controllers/inventoryCtrlSpec.js index a9637fa675..dd6b1dc794 100644 --- a/test/spec/controllers/inventoryCtrlSpec.js +++ b/test/spec/controllers/inventoryCtrlSpec.js @@ -249,7 +249,7 @@ describe('Inventory Controller', function() { it('returns true for Mystery Sets if there are no sets left to purchase', inject(function(Content) { sandbox.stub(Content, 'timeTravelerStore').returns({}); - expect(scope.hasAllTimeTravelerItems('mystery')).to.eql(true); + expect(scope.hasAllTimeTravelerItemsOfType('mystery')).to.eql(true); })); it('returns false for pets if user does not own all pets in the Time Travel Stable', function() { diff --git a/website/public/js/controllers/inventoryCtrl.js b/website/public/js/controllers/inventoryCtrl.js index 102303a76e..560663ee5c 100644 --- a/website/public/js/controllers/inventoryCtrl.js +++ b/website/public/js/controllers/inventoryCtrl.js @@ -250,11 +250,24 @@ habitrpg.controller("InventoryCtrl", }); }; - $scope.hasAllTimeTravelerItems = function(items) { - var itemsLeftInTimeTravlerStore = Content.timeTravelerStore(user.items.gear.owned); - var keys = Object.keys(itemsLeftInTimeTravlerStore); + $scope.hasAllTimeTravelerItems = function() { + return (hasAllTimeTravelerItemsOfType('mystery') && hasAllTimeTravelerItemsOfType('pets') && hasAllTimeTravelerItemsOfType('mounts')); + }; - return keys.length === 0; + $scope.hasAllTimeTravelerItemsOfType = function(type) { + if (type === 'mystery') { + var itemsLeftInTimeTravelerStore = Content.timeTravelerStore(user.items.gear.owned); + var keys = Object.keys(itemsLeftInTimeTravelerStore); + + return keys.length === 0; + } + if (type === 'pets' || type === 'mounts') { + for (var key in Content.timeTravelStable[type]) { + if (!user.items[type][key]) return false; + } + return true; + } + else return Console.log('Time Traveler item type must be in ["pets","mounts","mystery"]'); }; function _updateDropAnimalCount(items) {