mirror of
https://github.com/sudoxnym/habitica.git
synced 2026-07-14 16:02:14 +00:00
commit
5a11dea855
4 changed files with 53 additions and 0 deletions
|
|
@ -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){
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
|
|
@ -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')
|
||||
|
|
|
|||
Loading…
Reference in a new issue