From ff4c2ade96d8aab851f8dfd1bb87008b892fd910 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:32:41 -0600 Subject: [PATCH 1/9] Added triadBingo to achievement list --- views/shared/profiles/achievements.jade | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 5e7f901fc9..fd9047d21c 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -96,6 +96,15 @@ div(ng-if='profile.achievements.mountMaster || user._id == profile._id') =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr +div(ng-if='profile.achievements.triadBingo || user._id == profile._id') + .achievement.achievement-wolf(ng-show='profile.achievements.triadBingo') + div(ng-class='{muted: !profile.achievements.triadBingo}') + h5=env.t('triadBingoName') + small=env.t('triadBingoText') + small(ng-if='profile.achievements.triadBingoCount') + =env.t('triadBingoText2', {count: "{{profile.achievements.triadBingoCount}}"}) + hr + div(ng-if='profile.achievements.rebirths') .achievement.achievement-sun h5(ng-if='profile.achievements.rebirths == 1')=env.t('rebirthBegan') From cecb2792e026827fd4eb1a4eabef46aa5bcd6dd1 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:41:36 -0600 Subject: [PATCH 2/9] Added logic so triad bingo only appears in achievements after mount master has been reached --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 92e0ec0e89..22e214e27d 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -96,7 +96,7 @@ div(ng-if='profile.achievements.mountMaster || (profile.achievements.beastMaster =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr -div(ng-if='profile.achievements.triadBingo || user._id == profile._id') +div(ng-if='profile.achievements.triadBingo || (profile.achievements.mountMaster && user._id == profile._id)') .achievement.achievement-wolf(ng-show='profile.achievements.triadBingo') div(ng-class='{muted: !profile.achievements.triadBingo}') h5=env.t('triadBingoName') From e5b6e64a98c6e95c79b2fa89d0c19f6c3c76e2c5 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:47:07 -0600 Subject: [PATCH 3/9] Added preliminary logic for opening triadBingo modal --- public/js/controllers/inventoryCtrl.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index f82781ac57..6807d33d4e 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -91,6 +91,15 @@ habitrpg.controller("InventoryCtrl", User.user.achievements.beastMaster = true; $rootScope.openModal('achievements/beastMaster'); } + + // Checks if Triad Bingo has been reached for the first time + if(!User.user.achievements.triadBingo + && Shared.countPets(null, User.user.items.pets) >= 90 + && Shared.countMounts(null, User.user.items.mounts) >= 90) { + // @TODO Loop through pets and make sure all are > -1 + //User.user.achievements.triadBingo = true; + //$rootScope.openModal('achievements/triadBingo'); + } } $scope.purchase = function(type, item){ From 3ba057258f566f4f7b40407c523a9904a8b32a67 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:49:19 -0600 Subject: [PATCH 4/9] Added triad bingo achievement modal --- views/shared/modals/achievements.jade | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/views/shared/modals/achievements.jade b/views/shared/modals/achievements.jade index a8857f9110..52dc2737e9 100644 --- a/views/shared/modals/achievements.jade +++ b/views/shared/modals/achievements.jade @@ -41,6 +41,17 @@ script(id='modals/achievements/mountMaster.html', type='text/ng-template') .modal-footer button.btn.btn-default(ng-click='$close()')=env.t('ok') +// Triad Bingo +script(id='modals/achievements/triadBingo.html', type='text/ng-template') + .modal-header + h4=env.t('modalAchievement') + .modal-body + p + .achievement.achievement-wolf + =env.t('triadBingoAchievement') + .modal-footer + button.btn.btn-default(ng-click='$close()')=env.t('ok') + // Contributor // activated by user.flags.contributor script(id='modals/achievements/contributor.html', type='text/ng-template') From ca1f4890ea015d97c8bb665aaf0f183d67ed9f14 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 11:55:23 -0600 Subject: [PATCH 5/9] Corrected icon for triad bingo --- views/shared/modals/achievements.jade | 2 +- views/shared/profiles/achievements.jade | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/views/shared/modals/achievements.jade b/views/shared/modals/achievements.jade index 52dc2737e9..9d1decd66c 100644 --- a/views/shared/modals/achievements.jade +++ b/views/shared/modals/achievements.jade @@ -47,7 +47,7 @@ script(id='modals/achievements/triadBingo.html', type='text/ng-template') h4=env.t('modalAchievement') .modal-body p - .achievement.achievement-wolf + .achievement.achievement-triadbingo =env.t('triadBingoAchievement') .modal-footer button.btn.btn-default(ng-click='$close()')=env.t('ok') diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 22e214e27d..69b60f0d41 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -97,7 +97,7 @@ div(ng-if='profile.achievements.mountMaster || (profile.achievements.beastMaster hr div(ng-if='profile.achievements.triadBingo || (profile.achievements.mountMaster && user._id == profile._id)') - .achievement.achievement-wolf(ng-show='profile.achievements.triadBingo') + .achievement.achievement-triadbingo(ng-show='profile.achievements.triadBingo') div(ng-class='{muted: !profile.achievements.triadBingo}') h5=env.t('triadBingoName') small=env.t('triadBingoText') From 7860819ee3e286fdd68c6a3ccef905807f37284d Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 12:27:51 -0600 Subject: [PATCH 6/9] Added shell for awarding triad bingo --- src/models/user.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/models/user.js b/src/models/user.js index 91d1740ed8..e7da19f1d4 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -38,6 +38,8 @@ var UserSchema = new Schema({ beastMasterCount: Number, mountMaster: Boolean, mountMasterCount: Number, + triadBingo: Boolean, + triadBingoCount: Number, veteran: Boolean, snowball: Number, spookDust: Number, @@ -450,6 +452,12 @@ UserSchema.pre('save', function(next) { this.achievements.mountMaster = true } + // Determines if Triad Bingo should be awarded + + if (mountCount >= 90 || this.achievements.triadBingoCount > 0) { + // @TODO loop through pets and make sure they're all greater than -1 + //this.achievements.triadBingo = true + } // EXAMPLE CODE for allowing all existing and new players to be // automatically granted an item during a certain time period: From e25472759a3b2168a1b8a873674a20ad64b81f05 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 16:43:48 -0600 Subject: [PATCH 7/9] Added triad bingo achievment --- public/js/controllers/inventoryCtrl.js | 16 ++++++++++++---- src/models/user.js | 12 +++++++++--- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index 6807d33d4e..de5a82333e 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -77,6 +77,13 @@ habitrpg.controller("InventoryCtrl", return _.pick(inventory, function(v,k){return v>0;}); } + $scope.calcTriadBingo = function() { + for (var p in User.user.items.pets) { + if(User.user.items.pets[p] < 0) return false; + } + return true; + }; + $scope.hatch = function(egg, potion){ var eggName = Content.eggs[egg.key].text(); var potName = Content.hatchingPotions[potion.key].text(); @@ -95,10 +102,11 @@ habitrpg.controller("InventoryCtrl", // Checks if Triad Bingo has been reached for the first time if(!User.user.achievements.triadBingo && Shared.countPets(null, User.user.items.pets) >= 90 - && Shared.countMounts(null, User.user.items.mounts) >= 90) { - // @TODO Loop through pets and make sure all are > -1 - //User.user.achievements.triadBingo = true; - //$rootScope.openModal('achievements/triadBingo'); + && Shared.countMounts(null, User.user.items.mounts) >= 90 + && $scope.calcTriadBingo()) { + + User.user.achievements.triadBingo = true; + $rootScope.openModal('achievements/triadBingo'); } } diff --git a/src/models/user.js b/src/models/user.js index e7da19f1d4..d136e31e6f 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -454,9 +454,15 @@ UserSchema.pre('save', function(next) { // Determines if Triad Bingo should be awarded - if (mountCount >= 90 || this.achievements.triadBingoCount > 0) { - // @TODO loop through pets and make sure they're all greater than -1 - //this.achievements.triadBingo = true + var giveTriadBingo = function(pets) { + for(var p in pets) { + if(pets[p] == -1) return false; + } + return true; + }; + + if ((mountCount >= 90 && giveTriadBingo(this.items.pets)) || this.achievements.triadBingoCount > 0) { + this.achievements.triadBingo = true; } // EXAMPLE CODE for allowing all existing and new players to be From f5e9568cef15eefe2c3683a5456b59cd8df19435 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 16 Jan 2015 21:33:58 -0600 Subject: [PATCH 8/9] Consolidated calcTriadBingo function --- public/js/controllers/inventoryCtrl.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/public/js/controllers/inventoryCtrl.js b/public/js/controllers/inventoryCtrl.js index de5a82333e..02572e7f7f 100644 --- a/public/js/controllers/inventoryCtrl.js +++ b/public/js/controllers/inventoryCtrl.js @@ -78,11 +78,16 @@ habitrpg.controller("InventoryCtrl", } $scope.calcTriadBingo = function() { + var hasPets = Shared.countPets(null, User.user.items.pets) >= 90 ; + var hasMounts = Shared.countMounts(null, User.user.items.mounts) >= 90; + + if(!(hasPets && hasMounts)) return false; + for (var p in User.user.items.pets) { if(User.user.items.pets[p] < 0) return false; } return true; - }; + } $scope.hatch = function(egg, potion){ var eggName = Content.eggs[egg.key].text(); @@ -101,10 +106,7 @@ habitrpg.controller("InventoryCtrl", // Checks if Triad Bingo has been reached for the first time if(!User.user.achievements.triadBingo - && Shared.countPets(null, User.user.items.pets) >= 90 - && Shared.countMounts(null, User.user.items.mounts) >= 90 && $scope.calcTriadBingo()) { - User.user.achievements.triadBingo = true; $rootScope.openModal('achievements/triadBingo'); } From f64bc5b2ed5c275ac7c6e82bf7fab0911bebeefa Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Sat, 17 Jan 2015 09:54:16 -0600 Subject: [PATCH 9/9] Removed if that would hide the triad bingo achievement until mount master attained --- views/shared/profiles/achievements.jade | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/shared/profiles/achievements.jade b/views/shared/profiles/achievements.jade index 095d720698..af414f15b5 100644 --- a/views/shared/profiles/achievements.jade +++ b/views/shared/profiles/achievements.jade @@ -96,7 +96,7 @@ div(ng-if='profile.achievements.mountMaster || user._id == profile._id') =env.t('mountMasterText2', {count: "{{profile.achievements.mountMasterCount}}"}) hr -div(ng-if='profile.achievements.triadBingo || (profile.achievements.mountMaster && user._id == profile._id)') +div(ng-if='profile.achievements.triadBingo || user._id == profile._id') .achievement.achievement-triadbingo(ng-show='profile.achievements.triadBingo') div(ng-class='{muted: !profile.achievements.triadBingo}') h5=env.t('triadBingoName')