feat(sharing): More achievements

This commit is contained in:
Sabe Jones
2015-11-10 00:08:17 -05:00
parent eed4207c6d
commit 875f2ac552
4 changed files with 65 additions and 55 deletions

View File

@@ -128,7 +128,7 @@ habitrpg.controller("InventoryCtrl",
if(!user.achievements.beastMaster if(!user.achievements.beastMaster
&& $scope.petCount >= 90) { && $scope.petCount >= 90) {
User.user.achievements.beastMaster = true; User.user.achievements.beastMaster = true;
$rootScope.openModal('achievements/beastMaster'); $rootScope.openModal('achievements/beastMaster', {controller:'UserCtrl'});
} }
// Checks if Triad Bingo has been reached for the first time // Checks if Triad Bingo has been reached for the first time

View File

@@ -62,15 +62,20 @@ habitrpg.controller('NotificationCtrl',
$rootScope.$watch('user.stats.lvl', function(after, before) { $rootScope.$watch('user.stats.lvl', function(after, before) {
if (after <= before) return; 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 (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 === 3) return; // Drop system unlock. FIXME can we do this without hardcoding?
if (after === 50) return; // Orb of Rebirth unlock FIXME as above if (after === 50) return; // Orb of Rebirth unlock FIXME as above
if (!User.user.flags.classSelected && User.user.stats.lvl >= 10) return $rootScope.openModal('chooseClass', {controller:'UserCtrl', keyboard:false, backdrop:'static'});
Notification.lvl();
$rootScope.playSound('Level_Up');
if (!User.user.preferences.suppressModals.levelUp) $rootScope.openModal('levelUp', {controller:'UserCtrl', size:'sm'}); if (!User.user.preferences.suppressModals.levelUp) $rootScope.openModal('levelUp', {controller:'UserCtrl', size:'sm'});
}); });
$rootScope.$watch('!user.flags.classSelected && user.stats.lvl >= 10', function(after, before){
if(after){
$rootScope.openModal('chooseClass', {controller:'UserCtrl', keyboard:false, backdrop:'static'});
}
});
$rootScope.$watch('user._tmp.crit', function(after, before){ $rootScope.$watch('user._tmp.crit', function(after, before){
if (after == before || !after) return; if (after == before || !after) return;
var amount = User.user._tmp.crit * 100 - 100; var amount = User.user._tmp.crit * 100 - 100;
@@ -139,7 +144,7 @@ habitrpg.controller('NotificationCtrl',
$rootScope.$watch('user.achievements.ultimateGearSets', function(after, before){ $rootScope.$watch('user.achievements.ultimateGearSets', function(after, before){
if (_.isEqual(after,before) || !_.contains(User.user.achievements.ultimateGearSets, true)) return; if (_.isEqual(after,before) || !_.contains(User.user.achievements.ultimateGearSets, true)) return;
$rootScope.openModal('achievements/ultimateGear'); $rootScope.openModal('achievements/ultimateGear', {controller:'UserCtrl'});
}, true); }, true);
$rootScope.$watch('user.flags.armoireEmpty', function(after,before){ $rootScope.$watch('user.flags.armoireEmpty', function(after,before){

View File

@@ -2,29 +2,32 @@ include ../avatar/generated_avatar
mixin achievementFooter mixin achievementFooter
.modal-footer(style='margin-top:0', ng-init='loadWidgets()') .modal-footer(style='margin-top:0', ng-init='loadWidgets()')
.container-fluid .container-fluid
.row .row.text-center
.col-xs-3 .col-xs-4
a.twitter-share-button(href='https://twitter.com/intent/tweet?text=I earned a new achievement in Habitica!&via=habitica&url=https://habitrpg-gamma.herokuapp.com/social/achievement&count=none')=env.t('tweet') a.twitter-share-button(href='https://twitter.com/intent/tweet?text=I earned a new achievement in Habitica!&via=habitica&url=https://habitrpg-gamma.herokuapp.com/social/achievement&count=none')=env.t('tweet')
.col-xs-4(style='margin-left:.8em') .col-xs-4
.fb-share-button(data-href='https://habitrpg-gamma.herokuapp.com/social/achievement', data-layout='button') .fb-share-button(data-href='https://habitrpg-gamma.herokuapp.com/social/achievement', data-layout='button')
.col-xs-4(style='margin-left:.8em') .col-xs-4
a.tumblr-share-button(data-href='https://habitrpg-gamma.herokuapp.com/social/achievement', data-notes='none') a.tumblr-share-button(data-href='https://habitrpg-gamma.herokuapp.com/social/achievement', data-notes='none')
mixin achievementAvatar(badge,margin)
.container-fluid
.row
.col-xs-4(style='padding:0')
div(class='achievement-#{badge}2x' style='margin: 2em auto')
.col-xs-4(style='padding:0')
.herobox(style='padding:0; width:0; height:7em; margin:auto #{margin}em')
.character-sprites(style='width:0')
+generatedAvatar
.col-xs-4(style='padding:0')
div(class='achievement-#{badge}2x' style='margin: 2em auto')
// Streak // Streak
script(id='modals/achievements/streak.html', type='text/ng-template') script(id='modals/achievements/streak.html', type='text/ng-template')
.modal-content(style='min-width:28em') .modal-content(style='min-width:28em')
.modal-body.text-center .modal-body.text-center
h3(style='margin-bottom: 0')=env.t('streakAchievement') h3(style='margin-bottom: 0')=env.t('streakAchievement')
.container-fluid +achievementAvatar('thermometer',2.5)
.row
.col-xs-4(style='padding:0')
.achievement-thermometer2x(style='margin: 2em auto')
.col-xs-4(style='padding:0')
.herobox(style='padding:0; width:0; height:7em; margin:auto 2.5em')
.character-sprites(style='width:0')
+generatedAvatar
.col-xs-4(style='padding:0')
.achievement-thermometer2x(style='margin: 2em auto')
h4(ng-if='user.achievements.streak === 1')=env.t('firstStreakAchievement') h4(ng-if='user.achievements.streak === 1')=env.t('firstStreakAchievement')
h4(ng-if='user.achievements.streak > 1')=env.t('streakAchievementCount', {streaks:'{{::user.achievements.streak}}'}) h4(ng-if='user.achievements.streak > 1')=env.t('streakAchievementCount', {streaks:'{{::user.achievements.streak}}'})
p=env.t('twentyOneDays') p=env.t('twentyOneDays')
@@ -38,44 +41,46 @@ script(id='modals/achievements/streak.html', type='text/ng-template')
// Max Gear // Max Gear
script(id='modals/achievements/ultimateGear.html', type='text/ng-template') script(id='modals/achievements/ultimateGear.html', type='text/ng-template')
.modal-header .modal-content(style='min-width:28em')
h4=env.t('modalAchievement') .modal-body.text-center
.modal-body h3(style='margin-bottom:0')=env.t('modalAchievement')
.achievement.achievement-armor +achievementAvatar('armor',2.5)
p=env.t('gearAchievement') p=env.t('gearAchievement')
br br
table.multi-achievement table.multi-achievement
tr tr
td(ng-if='::user.achievements.ultimateGearSets.healer').multi-achievement td(ng-if='::user.achievements.ultimateGearSets.healer').multi-achievement
.achievement-ultimate-healer.multi-achievement .achievement-ultimate-healer2x.multi-achievement
=env.t('healer') =env.t('healer')
td(ng-if='::user.achievements.ultimateGearSets.wizard').multi-achievement td(ng-if='::user.achievements.ultimateGearSets.wizard').multi-achievement
.achievement-ultimate-mage.multi-achievement .achievement-ultimate-mage2x.multi-achievement
=env.t('mage') =env.t('mage')
td(ng-if='::user.achievements.ultimateGearSets.rogue').multi-achievement td(ng-if='::user.achievements.ultimateGearSets.rogue').multi-achievement
.achievement-ultimate-rogue.multi-achievement .achievement-ultimate-rogue2x.multi-achievement
=env.t('rogue') =env.t('rogue')
td(ng-if='::user.achievements.ultimateGearSets.warrior').multi-achievement td(ng-if='::user.achievements.ultimateGearSets.warrior').multi-achievement
.achievement-ultimate-warrior.multi-achievement .achievement-ultimate-warrior2x.multi-achievement
=env.t('warrior') =env.t('warrior')
br br
p(ng-if='!(user.achievements.ultimateGearSets.healer && user.achievements.ultimateGearSets.wizard && user.achievements.ultimateGearSets.rogue && user.achievements.ultimateGearSets.warrior)')!=env.t('moreGearAchievements') div(ng-if='!(user.achievements.ultimateGearSets.healer && user.achievements.ultimateGearSets.wizard && user.achievements.ultimateGearSets.rogue && user.achievements.ultimateGearSets.warrior)')
p!=env.t('moreGearAchievements')
br br
.shop_armoire.pull-right .shop_armoire.pull-right
p!=env.t("armoireUnlocked") p!=env.t("armoireUnlocked")
.modal-footer br
button.btn.btn-default(ng-click='$close()')=env.t('ok') button.btn.btn-primary(ng-click='$close()')=env.t('ok')
+achievementFooter
// Beast Master // Beast Master
script(id='modals/achievements/beastMaster.html', type='text/ng-template') script(id='modals/achievements/beastMaster.html', type='text/ng-template')
.modal-header .modal-content(style='min-width:28em')
h4=env.t('modalAchievement') .modal-body.text-center
.modal-body h3(style='margin-bottom:0')=env.t('modalAchievement')
p +achievementAvatar('rat',0)
.achievement.achievement-rat p=env.t('beastAchievement')
=env.t('beastAchievement') br
.modal-footer button.btn.btn-primary(ng-click='$close()')=env.t('ok')
button.btn.btn-default(ng-click='$close()')=env.t('ok') +achievementFooter
// Mount Master // Mount Master

View File

@@ -3,7 +3,7 @@ extends ./layout
block extraHead block extraHead
- var socialPage = 'achievement' - var socialPage = 'achievement'
- var socialTitle = 'Earned an Achievement!' - var socialTitle = 'Earned an Achievement!'
- var socialDescription = 'I earned a new Achievement! In Habitica, badges recognize players for changing their lives for the better.' - var socialDescription = 'I earned a new Achievement on Habitica for working to improve my life!'
block content block content
include ./landing-page include ./landing-page