Merge pull request #4529 from HabitRPG/triad-bingo

Triad bingo
This commit is contained in:
Blade Barringer 2015-01-18 19:12:28 -06:00
commit 5a11dea855
4 changed files with 53 additions and 0 deletions

View file

@ -77,6 +77,18 @@ habitrpg.controller("InventoryCtrl",
return _.pick(inventory, function(v,k){return v>0;});
}
$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();
var potName = Content.hatchingPotions[potion.key].text();
@ -91,6 +103,13 @@ 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
&& $scope.calcTriadBingo()) {
User.user.achievements.triadBingo = true;
$rootScope.openModal('achievements/triadBingo');
}
}
$scope.purchase = function(type, item){

View file

@ -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,18 @@ UserSchema.pre('save', function(next) {
this.achievements.mountMaster = true
}
// Determines if Triad Bingo should be awarded
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
// automatically granted an item during a certain time period:

View file

@ -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-triadbingo
=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')

View file

@ -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-triadbingo(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')