From f5f33bd1b962c31b62f51770b0912d95f0582c46 Mon Sep 17 00:00:00 2001 From: Sabe Jones Date: Tue, 17 Nov 2015 16:56:11 -0500 Subject: [PATCH] fix(modals): SM modal fixes Fixes #6253, allows quest pets to appear in hatching and raising modals, and makes code for deciding whether or not to show a generic levelup modal a bit more readable per comments on #6042. --- website/public/js/controllers/inventoryCtrl.js | 6 +++--- website/public/js/controllers/notificationCtrl.js | 11 ++++++++--- website/views/shared/modals/hatch-pet.jade | 2 +- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/website/public/js/controllers/inventoryCtrl.js b/website/public/js/controllers/inventoryCtrl.js index 9bfacb0fa0..17a5948991 100644 --- a/website/public/js/controllers/inventoryCtrl.js +++ b/website/public/js/controllers/inventoryCtrl.js @@ -116,7 +116,7 @@ habitrpg.controller("InventoryCtrl", if (!$window.confirm(window.env.t('hatchAPot', {potion: potName, egg: eggName}))) return; user.ops.hatch({params:{egg:egg.key, hatchingPotion:potion.key}}); if (!user.preferences.suppressModals.hatchPet) { - $rootScope.hatchedPet = {egg: eggName, potion: potName, eggKey: egg.key, pet: 'Pet-' + egg.key + '-' + potion.key}; + $rootScope.hatchedPet = {egg: eggName, potion: potName, potionKey:potion.key, eggKey: egg.key, pet: 'Pet-' + egg.key + '-' + potion.key}; $rootScope.openModal('hatchPet', {controller: 'InventoryCtrl', size: 'sm'}); } $scope.selectedEgg = null; @@ -150,7 +150,7 @@ habitrpg.controller("InventoryCtrl", // Feeding Pet if ($scope.selectedFood) { var food = $scope.selectedFood; - var startingMounts = $scope.mountCount; + var startingMounts = Stats.totalCount(user.items.mounts); if (food.key === 'Saddle') { if (!$window.confirm(window.env.t('useSaddle', {pet: petDisplayName}))) return; } else if (!$window.confirm(window.env.t('feedPet', {name: petDisplayName, article: food.article, text: food.text()}))) { @@ -160,7 +160,7 @@ habitrpg.controller("InventoryCtrl", $scope.selectedFood = null; _updateDropAnimalCount(user.items); - if ($scope.mountCount > startingMounts && !user.preferences.suppressModals.raisePet) { + if (Stats.totalCount(user.items.mounts) > startingMounts && !user.preferences.suppressModals.raisePet) { $rootScope.raisedPet = {displayName: petDisplayName, spriteName: pet, egg: egg, potion: potion} $rootScope.openModal('raisePet', {controller:'InventoryCtrl',size:'sm'}); } diff --git a/website/public/js/controllers/notificationCtrl.js b/website/public/js/controllers/notificationCtrl.js index 34fd68f8a9..ac3fab9e6a 100644 --- a/website/public/js/controllers/notificationCtrl.js +++ b/website/public/js/controllers/notificationCtrl.js @@ -60,14 +60,19 @@ habitrpg.controller('NotificationCtrl', Notification.mp(mana); }); + // Levels that already display modals and should not trigger generic Level Up + var unlockLevels = { + '3': 'drop system', + '10': 'class system', + '50': 'Orb of Rebirth' + } + $rootScope.$watch('user.stats.lvl', function(after, before) { if (after <= before) return; Notification.lvl(); $rootScope.playSound('Level_Up'); if (User.user._tmp && User.user._tmp.drop && (User.user._tmp.drop.type === 'Quest')) return; - if (after === 3) return; // Drop system unlock. FIXME can we do this without hardcoding? - if (after === 10) return; // Class system unlock. FIXME as above - if (after === 50) return; // Orb of Rebirth unlock FIXME as above + if (unlockLevels['' + after]) return; if (!User.user.preferences.suppressModals.levelUp) $rootScope.openModal('levelUp', {controller:'UserCtrl', size:'sm'}); }); diff --git a/website/views/shared/modals/hatch-pet.jade b/website/views/shared/modals/hatch-pet.jade index a8f76d4f83..285eb13c95 100644 --- a/website/views/shared/modals/hatch-pet.jade +++ b/website/views/shared/modals/hatch-pet.jade @@ -17,7 +17,7 @@ script(type='text/ng-template', id='modals/hatchPet.html') +generatedAvatar p=env.t('earnedCompanion') br - button.btn.btn-primary(ng-click='choosePet(hatchedPet.eggKey, hatchedPet.potion); $close()')=env.t('displayNow') + button.btn.btn-primary(ng-click='choosePet(hatchedPet.eggKey, hatchedPet.potionKey); $close()')=env.t('displayNow') button.btn.btn-default(ng-click='$close()')=env.t('displayLater') .checkbox label(style='display:inline-block')=env.t('dontShowAgain')