mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 07:07:35 +01:00
award party {up,on} achiev when party reaches {2,4} members
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user