award party {up,on} achiev when party reaches {2,4} members

This commit is contained in:
Kaitlin Hipkin
2016-03-08 20:55:18 -05:00
parent 167eb8973a
commit d2d3b9deab
3 changed files with 55 additions and 3 deletions

View File

@@ -2,6 +2,9 @@
habitrpg.controller("PartyCtrl", ['$rootScope','$scope','Groups','Chat','User','Challenges','$state','$compile','Analytics','Quests','Social',
function($rootScope,$scope,Groups,Chat,User,Challenges,$state,$compile,Analytics,Quests,Social) {
var user = User.user;
$scope.type = 'party';
$scope.text = window.env.t('party');
$scope.group = $rootScope.party = Groups.party();
@@ -11,6 +14,20 @@ habitrpg.controller("PartyCtrl", ['$rootScope','$scope','Groups','Chat','User','
if ($state.is('options.social.party')) {
$scope.group.$syncParty(); // Sync party automatically when navigating to party page
// Checks if user's party has reached 2 players for the first time.
if(!user.achievements.partyUp
&& $scope.group.memberCount >= 2) {
user.achievements.partyUp = true;
$rootScope.openModal('achievements/partyUp', {controller:'UserCtrl', size:'sm'});
}
// Checks if user's party has reached 4 players for the first time.
if(!user.achievements.partyOn
&& $scope.group.memberCount >= 4) {
user.achievements.partyOn = true;
$rootScope.openModal('achievements/partyOn', {controller:'UserCtrl', size:'sm'});
}
}
Chat.seenMessage($scope.group._id);

View File

@@ -59,7 +59,9 @@ var UserSchema = new Schema({
greeting: Number,
thankyou: Number,
costumeContests: Number,
birthday: Number
birthday: Number,
partyUp: Boolean,
partyOn: Boolean
},
auth: {
blocked: Boolean,
@@ -519,7 +521,7 @@ UserSchema.pre('save', function(next) {
var mountMasterProgress = shared.count.mountMasterProgress(this.items.mounts);
if (mountMasterProgress >= 90 || this.achievements.mountMasterCount > 0) {
this.achievements.mountMaster = true
this.achievements.mountMaster = true;
}
// Determines if Triad Bingo should be awarded
@@ -531,6 +533,18 @@ UserSchema.pre('save', function(next) {
this.achievements.triadBingo = true;
}
// Determines if Party Up should be awarded
if (this.party.memberCount >= 2) {
this.achievements.partyUp = true;
}
// Determines if Party On should be awarded
if (this.party.memberCount >= 4) {
this.achievements.partyOn = true;
}
// Enable weekly recap emails for old users who sign in
if(this.flags.lastWeeklyRecapDiscriminator){
// Enable weekly recap emails in 24 hours

View File

@@ -83,7 +83,6 @@ script(id='modals/achievements/beastMaster.html', type='text/ng-template')
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
+achievementFooter
// Mount Master
script(id='modals/achievements/mountMaster.html', type='text/ng-template')
.modal-content(style='min-width:28em')
@@ -132,3 +131,25 @@ script(id='modals/achievements/rebirth.html', type='text/ng-template')
br
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
+achievementFooter
// Party Up
script(id='modals/achievements/partyUp.html', type='text/ng-template')
.modal-content(style='min-width:28em')
.modal-body.text-center
h3(style='margin-bottom:0')=env.t('modalAchievement')
+achievementAvatar('partyUp',0)
p=env.t('partyUpAchievement')
br
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
+achievementFooter
// Party On
script(id='modals/achievements/partyOn.html', type='text/ng-template')
.modal-content(style='min-width:28em')
.modal-body.text-center
h3(style='margin-bottom:0')=env.t('modalAchievement')
+achievementAvatar('partyOn',0)
p=env.t('partyOnAchievement')
br
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
+achievementFooter