mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +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',
|
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) {
|
function($rootScope,$scope,Groups,Chat,User,Challenges,$state,$compile,Analytics,Quests,Social) {
|
||||||
|
|
||||||
|
var user = User.user;
|
||||||
|
|
||||||
$scope.type = 'party';
|
$scope.type = 'party';
|
||||||
$scope.text = window.env.t('party');
|
$scope.text = window.env.t('party');
|
||||||
$scope.group = $rootScope.party = Groups.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')) {
|
if ($state.is('options.social.party')) {
|
||||||
$scope.group.$syncParty(); // Sync party automatically when navigating to party page
|
$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);
|
Chat.seenMessage($scope.group._id);
|
||||||
|
|||||||
@@ -59,7 +59,9 @@ var UserSchema = new Schema({
|
|||||||
greeting: Number,
|
greeting: Number,
|
||||||
thankyou: Number,
|
thankyou: Number,
|
||||||
costumeContests: Number,
|
costumeContests: Number,
|
||||||
birthday: Number
|
birthday: Number,
|
||||||
|
partyUp: Boolean,
|
||||||
|
partyOn: Boolean
|
||||||
},
|
},
|
||||||
auth: {
|
auth: {
|
||||||
blocked: Boolean,
|
blocked: Boolean,
|
||||||
@@ -519,7 +521,7 @@ UserSchema.pre('save', function(next) {
|
|||||||
var mountMasterProgress = shared.count.mountMasterProgress(this.items.mounts);
|
var mountMasterProgress = shared.count.mountMasterProgress(this.items.mounts);
|
||||||
|
|
||||||
if (mountMasterProgress >= 90 || this.achievements.mountMasterCount > 0) {
|
if (mountMasterProgress >= 90 || this.achievements.mountMasterCount > 0) {
|
||||||
this.achievements.mountMaster = true
|
this.achievements.mountMaster = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Determines if Triad Bingo should be awarded
|
// Determines if Triad Bingo should be awarded
|
||||||
@@ -531,6 +533,18 @@ UserSchema.pre('save', function(next) {
|
|||||||
this.achievements.triadBingo = true;
|
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
|
// Enable weekly recap emails for old users who sign in
|
||||||
if(this.flags.lastWeeklyRecapDiscriminator){
|
if(this.flags.lastWeeklyRecapDiscriminator){
|
||||||
// Enable weekly recap emails in 24 hours
|
// 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')
|
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
|
||||||
+achievementFooter
|
+achievementFooter
|
||||||
|
|
||||||
|
|
||||||
// Mount Master
|
// Mount Master
|
||||||
script(id='modals/achievements/mountMaster.html', type='text/ng-template')
|
script(id='modals/achievements/mountMaster.html', type='text/ng-template')
|
||||||
.modal-content(style='min-width:28em')
|
.modal-content(style='min-width:28em')
|
||||||
@@ -132,3 +131,25 @@ script(id='modals/achievements/rebirth.html', type='text/ng-template')
|
|||||||
br
|
br
|
||||||
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
|
button.btn.btn-primary(ng-click='$close()')=env.t('huzzah')
|
||||||
+achievementFooter
|
+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