diff --git a/public/js/app.js b/public/js/app.js
index adbcd0f6f8..575e8357ba 100644
--- a/public/js/app.js
+++ b/public/js/app.js
@@ -181,6 +181,10 @@ window.habitrpg = angular.module('habitrpg',
url: '/equipment',
templateUrl: "partials/options.inventory.equipment.html"
})
+ .state('options.inventory.timetravelers', {
+ url: '/timetravelers',
+ templateUrl: "partials/options.inventory.timetravelers.html"
+ })
// Options > Settings
.state('options.settings', {
diff --git a/public/js/controllers/groupsCtrl.js b/public/js/controllers/groupsCtrl.js
index 9efd8826eb..9f433fdf37 100644
--- a/public/js/controllers/groupsCtrl.js
+++ b/public/js/controllers/groupsCtrl.js
@@ -2,10 +2,6 @@
habitrpg.controller("GroupsCtrl", ['$scope', '$rootScope', 'Shared', 'Groups', '$http', '$q', 'User', 'Members', '$state', 'Notification',
function($scope, $rootScope, Shared, Groups, $http, $q, User, Members, $state, Notification) {
- Members.selectMember('d7f809df-81bd-4d58-992b-851d94bfaccb', function(){
- $rootScope.openModal('send-gift',{controller:'MemberModalCtrl'})
- });
-
$scope.isMemberOfPendingQuest = function(userid, group) {
if (!group.quest || !group.quest.members) return false;
diff --git a/src/controllers/payments/index.js b/src/controllers/payments/index.js
index df8f762382..9463b678c2 100644
--- a/src/controllers/payments/index.js
+++ b/src/controllers/payments/index.js
@@ -15,8 +15,8 @@ function revealMysteryItems(user) {
_.each(shared.content.gear.flat, function(item) {
if (
item.klass === 'mystery' &&
- moment().isAfter(item.mystery.start) &&
- moment().isBefore(item.mystery.end) &&
+ moment().isAfter(shared.content.mystery[item.mystery].start) &&
+ moment().isBefore(shared.content.mystery[item.mystery].end) &&
!user.items.gear.owned[item.key] &&
!~user.purchased.plan.mysteryItems.indexOf(item.key)
) {
diff --git a/views/options/inventory/index.jade b/views/options/inventory/index.jade
index d75bc6f317..af191f3de1 100644
--- a/views/options/inventory/index.jade
+++ b/views/options/inventory/index.jade
@@ -15,6 +15,9 @@ script(type='text/ng-template', id='partials/options.inventory.html')
li.equipment-tab(ng-class="{ active: $state.includes('options.inventory.equipment') }")
a(ui-sref='options.inventory.equipment')
=env.t('equipment')
+ li.equipment-tab(ng-class="{ active: $state.includes('options.inventory.timetravelers') }")
+ a(ui-sref='options.inventory.timetravelers')
+ | Time Travelers
.tab-content
.tab-pane.active
diff --git a/views/options/inventory/inventory.jade b/views/options/inventory/inventory.jade
index 05b8bde9ab..51885058cc 100644
--- a/views/options/inventory/inventory.jade
+++ b/views/options/inventory/inventory.jade
@@ -19,6 +19,33 @@ script(type='text/ng-template', id='partials/options.inventory.equipment.html')
div(ng-repeat='item in gear[klass]')
button.customize-option(popover='{{::item.notes()}}', popover-title='{{::item.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.equip({params:{type:"costume", key:item.key}})', class='shop_{{::item.key}}', ng-class='{selectableInventory: user.items.gear.costume[item.type] == item.key}')
+script(type='text/ng-template', id='partials/options.inventory.timetravelers.html')
+ .container-fluid
+ .stable.row(ng-if='user.purchased.plan.consecutive.trinkets <= 0')
+ .col-md-2
+ .npc_timetravelers
+ .col-md-10
+ .popover.static-popover.fade.right.in
+ .arrow
+ h3.popover-title Tyler and Vicky
+ .popover-content
+ p You'll need a Time Trinket to summon the mysterious Time Travelers! Subscribers earn one Time Trinket for every three months of consecutive subscribing. Come back when you have a Time Trinket, and the Time Travelers will fetch you a Subscriber Item Set from the past.... or maybe even the future.
+
+ .row.stable(ng-if='user.purchased.plan.consecutive.trinkets > 0')
+ .col-md-2
+ .npc_timetravelers
+ .col-md-10
+ .popover.static-popover.fade.right.in
+ .arrow
+ h3.popover-title Mysterious Time Travelers
+ .popover-content
+ p We see you have a Time Trinket, so we will happily travel back in time for you! Please choose the Mystery Item Set you would like. You can see a list of the past item sets here! If those don't satisfy you, perhaps you'd be interested in one of our fashionably futuristic Steampunk Item Sets?
+ .col-md-12
+ li.customize-menu.inventory-gear
+ menu.pets-menu(label='{{::set.text}}', ng-repeat='set in Content.timeTravelerStore(user.items.gear.owned)')
+ div(ng-repeat='item in set.items')
+ button.customize-option(popover='{{::item.notes()}}', popover-title='{{::item.text()}}', popover-trigger='mouseenter', popover-placement='right', ng-click='user.ops.buyMysterySet({params:{key:set.key}})', class='shop_{{::item.key}}')
+
script(type='text/ng-template', id='partials/options.inventory.drops.html')
.container-fluid
.row
diff --git a/views/shared/header/menu.jade b/views/shared/header/menu.jade
index 3ab0b882fc..24f4f27e16 100644
--- a/views/shared/header/menu.jade
+++ b/views/shared/header/menu.jade
@@ -47,6 +47,8 @@ nav.toolbar(ng-controller='AuthCtrl', ng-class='{active: isToolbarHidden}')
a(ui-sref='options.inventory.mounts')=env.t('mounts')
li
a(ui-sref='options.inventory.equipment')=env.t('equipment')
+ li
+ a(ui-sref='options.inventory.timetravelers') Time Travelers
ul.toolbar-submenu
li
a(target="_blank" ng-href='http://data.habitrpg.com?uuid={{user._id}}')=env.t('dataTool')
@@ -126,6 +128,8 @@ nav.toolbar(ng-controller='AuthCtrl', ng-class='{active: isToolbarHidden}')
a(ui-sref='options.inventory.mounts')=env.t('mounts')
li
a(ui-sref='options.inventory.equipment')=env.t('equipment')
+ li
+ a(ui-sref='options.inventory.timetravelers') Time Travelers
li.toolbar-button-dropdown
a(target="_blank" ng-href='http://data.habitrpg.com?uuid={{user._id}}')
span=env.t('data')