Merge branch 'develop' into task-difficulty-context-classes

This commit is contained in:
Bill Parrott
2015-02-17 22:31:27 -06:00
35 changed files with 2738 additions and 2647 deletions

View File

@@ -1,8 +1,3 @@
{ {
"directory": "website/public/bower_components", "directory": "website/public/bower_components"
"storage" : {
"packages" : ".bower-cache",
"registry" : ".bower-registry"
},
"tmp" : ".bower-tmp"
} }

3
Vagrantfile vendored
View File

@@ -5,6 +5,9 @@
VAGRANTFILE_API_VERSION = "2" VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/vagrant", "1"]
end
config.vm.box = "thepeopleseason/habitrpg" config.vm.box = "thepeopleseason/habitrpg"
config.ssh.forward_agent = true config.ssh.forward_agent = true

View File

@@ -2924,6 +2924,11 @@ api.questEggs = {
text: t('questEggTRexText'), text: t('questEggTRexText'),
adjective: t('questEggTRexAdjective'), adjective: t('questEggTRexAdjective'),
canBuy: false canBuy: false
},
Rock: {
text: t('questEggRockText'),
adjective: t('questEggRockAdjective'),
canBuy: false
} }
}; };
@@ -4307,6 +4312,36 @@ api.quests = {
gp: 55, gp: 55,
exp: 500 exp: 500
} }
},
rock: {
text: t('questRockText'),
notes: t('questRockNotes'),
completion: t('questRockCompletion'),
value: 4,
boss: {
name: t('questRockBoss'),
hp: 400,
str: 1.5
},
drop: {
items: [
{
type: 'eggs',
key: 'Rock',
text: t('questRockDropRockEgg')
}, {
type: 'eggs',
key: 'Rock',
text: t('questRockDropRockEgg')
}, {
type: 'eggs',
key: 'Rock',
text: t('questRockDropRockEgg')
}
],
gp: 31,
exp: 200
}
} }
}; };

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 KiB

After

Width:  |  Height:  |  Size: 246 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 77 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 187 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 495 KiB

After

Width:  |  Height:  |  Size: 495 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 328 KiB

After

Width:  |  Height:  |  Size: 327 KiB

View File

@@ -370,7 +370,7 @@
width: 105px; width: 105px;
height: 105px; height: 105px;
} }
.Mount_Head_Rock-Gold { .Mount_Head_Rock-Golden {
background-image: url(spritesmith5.png); background-image: url(spritesmith5.png);
background-position: -106px -832px; background-position: -106px -832px;
width: 105px; width: 105px;
@@ -1846,7 +1846,7 @@
width: 75px; width: 75px;
height: 93px; height: 93px;
} }
.Pet-Rock-Gold { .Pet-Rock-Golden {
background-image: url(spritesmith5.png); background-image: url(spritesmith5.png);
background-position: -1860px -1476px; background-position: -1860px -1476px;
width: 75px; width: 75px;

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -72,6 +72,9 @@
"questEggTRexText": "Tyrannosaur", "questEggTRexText": "Tyrannosaur",
"questEggTRexAdjective": "tiny-armed", "questEggTRexAdjective": "tiny-armed",
"questEggRockText": "Rock",
"questEggRockAdjective": "lively",
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into a <%= eggAdjective(locale) %> <%= eggText(locale) %>.", "eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into a <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
"hatchingPotionBase": "Base", "hatchingPotionBase": "Base",

View File

@@ -22,9 +22,7 @@
"party": "Party", "party": "Party",
"createAParty": "Create A Party", "createAParty": "Create A Party",
"noPartyText": "You are either not in a party or your party is taking a while to load. You can either create one and invite friends, or if you want to join an existing party, have them enter your Unique User ID below and then come back here to look for the invitation:", "noPartyText": "You are either not in a party or your party is taking a while to load. You can either create one and invite friends, or if you want to join an existing party, have them enter your Unique User ID below and then come back here to look for the invitation:",
"startLFG": "To advertise your new party or find one to join, go to ", "LFG": "To advertise your new party or find one to join, go to the <%= linkStart %>Party Wanted (Looking for Group)<%= linkEnd %> Guild.",
"linkLFG": "The Archery",
"endLFG": " on the Wiki.",
"create": "Create", "create": "Create",
"userId": "User ID", "userId": "User ID",
"invite": "Invite", "invite": "Invite",

View File

@@ -197,5 +197,11 @@
"questTRexUndeadRageDescription": "This bar fills when you don't complete your Dailies. When it is full, the Skeletal Tyrannosaur will heal 30% of its remaining health!", "questTRexUndeadRageDescription": "This bar fills when you don't complete your Dailies. When it is full, the Skeletal Tyrannosaur will heal 30% of its remaining health!",
"questTRexUndeadRageEffect": "`Skeletal Tyrannosaur uses SKELETON HEALING!`\n\nThe monster lets forth an unearthly roar, and some of its damaged bones knit back together!", "questTRexUndeadRageEffect": "`Skeletal Tyrannosaur uses SKELETON HEALING!`\n\nThe monster lets forth an unearthly roar, and some of its damaged bones knit back together!",
"questTRexDropTRexEgg": "Tyrannosaur (Egg)" "questTRexDropTRexEgg": "Tyrannosaur (Egg)",
"questRockText": "Escape the Cave Creature",
"questRockNotes": "Crossing Habitica's Meandering Mountains with some friends, you make camp one night in a beautiful cave laced with shining minerals. But when you wake up the next morning, the entrance has disappeared, and the floor of the cave is shifting underneath you.<br><br>\"The mountain's alive!\" shouts your companion @pfeffernusse. \"These aren't crystals - these are teeth!\"<br><br>@Painter de Cluster grabs your hand. \"We'll have to find another way out stay with me and don't get distracted, or we could be trapped in here forever!\"",
"questRockBoss": "Crystal Colossus",
"questRockCompletion": "Your diligence has allowed you to find a safe path through the living mountain. Standing in the sunshine, your friend @intune notices something glinting on the ground by the caves exit. You stoop to pick it up, and see that its a small rock with a vein of gold running through it. Beside it are a number of other rocks with rather peculiar shapes. They almost look like… eggs?",
"questRockDropRockEgg": "Rock (Egg)"
} }

View File

@@ -798,6 +798,7 @@ api.questEggs =
Owl: text: t('questEggOwlText'), adjective: t('questEggOwlAdjective'), canBuy: false Owl: text: t('questEggOwlText'), adjective: t('questEggOwlAdjective'), canBuy: false
Penguin: text: t('questEggPenguinText'), adjective: t('questEggPenguinAdjective'), canBuy: false Penguin: text: t('questEggPenguinText'), adjective: t('questEggPenguinAdjective'), canBuy: false
TRex: text: t('questEggTRexText'), adjective: t('questEggTRexAdjective'), canBuy: false TRex: text: t('questEggTRexText'), adjective: t('questEggTRexAdjective'), canBuy: false
Rock: text: t('questEggRockText'), adjective: t('questEggRockAdjective'), canBuy: false
_.each api.questEggs, (egg,key) -> _.each api.questEggs, (egg,key) ->
_.defaults egg, _.defaults egg,
@@ -1511,6 +1512,24 @@ api.quests =
gp: 55 gp: 55
exp: 500 exp: 500
rock:
text: t('questRockText')
notes: t('questRockNotes')
completion: t('questRockCompletion')
value: 4
boss:
name: t('questRockBoss')
hp: 400
str: 1.5
drop:
items: [
{type: 'eggs', key: 'Rock', text: t('questRockDropRockEgg')}
{type: 'eggs', key: 'Rock', text: t('questRockDropRockEgg')}
{type: 'eggs', key: 'Rock', text: t('questRockDropRockEgg')}
]
gp: 31
exp: 200
_.each api.quests, (v,key) -> _.each api.quests, (v,key) ->
_.defaults v, {key,canBuy:true} _.defaults v, {key,canBuy:true}
b = v.boss b = v.boss

View File

@@ -40,7 +40,7 @@ echo Installing GraphicsMagick - provides gm and convert...
apt-get install -qq graphicsmagick apt-get install -qq graphicsmagick
echo Installing phantomjs and dependency... echo Installing phantomjs and dependency...
apt-get install -qq phantomjs libicu48 apt-get install -qq libicu48
echo Installing requirements for grunt-spritesmith... echo Installing requirements for grunt-spritesmith...
apt-get install -qq pkg-config libcairo2-dev libjpeg-dev apt-get install -qq pkg-config libcairo2-dev libjpeg-dev
@@ -63,10 +63,10 @@ apt-get install -qq nodejs
cd /vagrant cd /vagrant
echo Installing grunt/bower... echo Installing grunt/bower...
npm install -g grunt-cli bower npm install -g grunt-cli bower phantomjs
echo Installing HabitRPG echo Installing HabitRPG
npm install npm install --no-bin-link
echo Installing Bower packages echo Installing Bower packages
sudo -H -u vagrant bower --config.interactive=false install -f sudo -H -u vagrant bower --config.interactive=false install -f

View File

@@ -41,6 +41,8 @@ a.hint:hover
.popover .popover
hr hr
margin: 10px 0 margin: 10px 0
ul
padding-left: 10px
@media (max-width: 768px) @media (max-width: 768px)
.container-fluid .container-fluid

View File

@@ -84,14 +84,12 @@ angular.module('habitrpg')
$scope._expandedMenu = ($scope._expandedMenu == menu) ? null : menu; $scope._expandedMenu = ($scope._expandedMenu == menu) ? null : menu;
}; };
function selectNotificationValue(mysteryValue, invitationValue, holidayCardValue, unallocatedValue, messageValue, noneValue) { function selectNotificationValue(mysteryValue, invitationValue, unallocatedValue, messageValue, noneValue) {
var user = $scope.user; var user = $scope.user;
if (user.purchased && user.purchased.plan && user.purchased.plan.mysteryItems && user.purchased.plan.mysteryItems.length) { if (user.purchased && user.purchased.plan && user.purchased.plan.mysteryItems && user.purchased.plan.mysteryItems.length) {
return mysteryValue; return mysteryValue;
} else if ((user.invitations.party && user.invitations.party.id) || (user.invitations.guilds && user.invitations.guilds.length > 0)) { } else if ((user.invitations.party && user.invitations.party.id) || (user.invitations.guilds && user.invitations.guilds.length > 0)) {
return invitationValue; return invitationValue;
} else if ((user.items.special.valentineReceived[0] || user.items.special.nyeReceived[0])) {
return holidayCardValue;
} else if (user.flags.classSelected && !(user.preferences && user.preferences.disableClasses) && user.stats.points) { } else if (user.flags.classSelected && !(user.preferences && user.preferences.disableClasses) && user.stats.points) {
return unallocatedValue; return unallocatedValue;
} else if (!(_.isEmpty(user.newMessages))) { } else if (!(_.isEmpty(user.newMessages))) {
@@ -105,14 +103,13 @@ angular.module('habitrpg')
return selectNotificationValue( return selectNotificationValue(
"glyphicon-gift", "glyphicon-gift",
"glyphicon-user", "glyphicon-user",
"glyphicon-envelope",
"glyphicon-plus-sign", "glyphicon-plus-sign",
"glyphicon-comment", "glyphicon-comment",
"glyphicon-comment inactive"); "glyphicon-comment inactive");
}; };
$scope.hasNoNotifications = function() { $scope.hasNoNotifications = function() {
return selectNotificationValue(false, false, false, false, false, true); return selectNotificationValue(false, false, false, false, true);
} }
// ------ Social ---------- // ------ Social ----------

View File

@@ -79,7 +79,7 @@ habitrpg.controller("RootCtrl", ['$scope', '$rootScope', '$location', 'User', '$
$rootScope.playSound = function(id){ $rootScope.playSound = function(id){
if (!user.preferences.sound || user.preferences.sound == 'off') return; if (!user.preferences.sound || user.preferences.sound == 'off') return;
var theme = user.preferences.sound; var theme = user.preferences.sound;
var file = 'audio/' + theme + '/' + id; var file = 'common/audio/' + theme + '/' + id;
document.getElementById('oggSource').src = file + '.ogg'; document.getElementById('oggSource').src = file + '.ogg';
document.getElementById('mp3Source').src = file + '.mp3'; document.getElementById('mp3Source').src = file + '.mp3';
document.getElementById('sound').load(); document.getElementById('sound').load();

View File

@@ -183,7 +183,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
| {{::egg.value}}&nbsp; | {{::egg.value}}&nbsp;
span.Pet_Currency_Gem1x.inline-gems span.Pet_Currency_Gem1x.inline-gems
//- buyable quest eggs //- buyable quest eggs
each egg,quest in {gryphon:'Gryphon',hedgehog:'Hedgehog',ghost_stag:'Deer',rat:'Rat',octopus:'Octopus',dilatory_derby:'Seahorse',harpy:'Parrot',rooster:'Rooster',spider:'Spider',owl:'Owl',penguin:'Penguin'} each egg,quest in {gryphon:'Gryphon',hedgehog:'Hedgehog',ghost_stag:'Deer',rat:'Rat',octopus:'Octopus',dilatory_derby:'Seahorse',harpy:'Parrot',rooster:'Rooster',spider:'Spider',owl:'Owl',penguin:'Penguin',rock:'Rock'}
div(ng-show='user.achievements.quests.#{quest} > 1') div(ng-show='user.achievements.quests.#{quest} > 1')
button.customize-option(popover='{{::Content.eggs.#{egg}.notes()}}', popover-title!=env.t("egg", {eggType: "{{::Content.eggs.#{egg}.text()}}"}), popover-trigger='mouseenter', popover-placement='top', popover-append-to-body='true', ng-click='purchase("eggs", Content.eggs.#{egg})', class='Pet_Egg_#{egg}') button.customize-option(popover='{{::Content.eggs.#{egg}.notes()}}', popover-title!=env.t("egg", {eggType: "{{::Content.eggs.#{egg}.text()}}"}), popover-trigger='mouseenter', popover-placement='top', popover-append-to-body='true', ng-click='purchase("eggs", Content.eggs.#{egg})', class='Pet_Egg_#{egg}')
p p
@@ -244,7 +244,7 @@ script(type='text/ng-template', id='partials/options.inventory.drops.html')
p p
| 20&nbsp; | 20&nbsp;
span.shop_gold span.shop_gold
div // div
button.customize-option(popover='{{::Content.spells.special.valentine.notes()}}', popover-title='{{::Content.spells.special.valentine.text()}}', popover-trigger='mouseenter', popover-placement='right', popover-append-to-body='true', ng-click='castStart(Content.spells.special.valentine)', class='inventory_special_valentine') button.customize-option(popover='{{::Content.spells.special.valentine.notes()}}', popover-title='{{::Content.spells.special.valentine.text()}}', popover-trigger='mouseenter', popover-placement='right', popover-append-to-body='true', ng-click='castStart(Content.spells.special.valentine)', class='inventory_special_valentine')
p p
| {{Content.spells.special.valentine.value}} | {{Content.spells.special.valentine.value}}

View File

@@ -36,12 +36,7 @@ script(type='text/ng-template', id='partials/options.social.party.html')
=env.t('noPartyText') =env.t('noPartyText')
pre.prettyprint. pre.prettyprint.
{{user.id}} {{user.id}}
p p!=env.t('LFG', {linkStart: "<a href='https://habitrpg.com/#/options/groups/guilds/f2db2a7f-13c5-454d-b3ee-ea1f5089e601'>", linkEnd: "</a>"})
=env.t('startLFG')
|&nbsp;
a(href="http://habitrpg.wikia.com/wiki/Board:The_Archery_-_LFG")=env.t('linkLFG')
|&nbsp;
=env.t('endLFG')
include ./create-group include ./create-group
script(type='text/ng-template', id='partials/options.social.guilds.public.html') script(type='text/ng-template', id='partials/options.social.guilds.public.html')

View File

@@ -34,7 +34,7 @@
a(target='_blank', href='/static/community-guidelines')=env.t('communityGuidelines') a(target='_blank', href='/static/community-guidelines')=env.t('communityGuidelines')
tr tr
td td
a(target='_blank', href='http://habitrpg.wikia.com/wiki/Board:The_Archery_-_LFG')=env.t('lfgPosts') a(href='https://habitrpg.com/#/options/groups/guilds/f2db2a7f-13c5-454d-b3ee-ea1f5089e601')=env.t('lfgPosts')
tr tr
td td
a(target='_blank', href='https://vimeo.com/57654086')=env.t('tutorial') a(target='_blank', href='https://vimeo.com/57654086')=env.t('tutorial')

View File

@@ -202,7 +202,7 @@ nav.toolbar(ng-controller='AuthCtrl', ng-class='{active: isToolbarHidden}')
span {{v.name}} span {{v.name}}
a(ng-click='Groups.seenMessage(k)', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true') a(ng-click='Groups.seenMessage(k)', popover=env.t('clear'),popover-placement='right',popover-trigger='mouseenter',popover-append-to-body='true')
span.glyphicon.glyphicon-remove-circle span.glyphicon.glyphicon-remove-circle
li(ng-if='user.items.special.valentineReceived[0] || user.items.special.nyeReceived[0]') // li(ng-if='user.items.special.valentineReceived[0] || user.items.special.nyeReceived[0]')
a(ng-click='$state.go("options.inventory.drops"); expandMenu(null)') a(ng-click='$state.go("options.inventory.drops"); expandMenu(null)')
span.glyphicon.glyphicon-envelope span.glyphicon.glyphicon-envelope
span=env.t('holidayCard') span=env.t('holidayCard')

View File

@@ -1,21 +1,38 @@
h5 2/12/2015 - VALENTINE'S DAY AND NEW HAIRSTYLES! h5 2/17/2015 - NEW PET QUEST AND COMMUNITY GUIDELINE UPDATES
hr hr
tr tr
td td
h5 Happy Valentine's Day! .quest_rock.pull-right
p Help motivate all of the lovely people in your life by sending them a caring valentine. Valentines can be purchased for 10 gold from the Market. For spreading love and joy throughout the community, both the giver AND the receiver get a coveted "adoring friends" badge. Hooray! h5 New Pet Quest: Rocks!
p.small.muted by Lemoness and SabreCat p It seemed like a simple hike... until we discovered that the cave was alive! You can get the newest Pet Quest, "Escape the Cave Creature," in the <a href='https://habitrpg.com/#/options/inventory/drops' target='_blank'>Market</a>. If you defeat it, you'll get some cuddly pet rocks!
p.small.muted by itokro, Pfeffernusse, Painter de Cluster, and intone
tr tr
td td
h5 New Hairstyles! h5 Community Guideline Updates
.promo_updos.pull-right p We've updated the <a href='https://habitrpg.com/static/community-guidelines' target='_blank'>Community Guidelines</a> to include the following:
p There are a new set of updo hairstyles available in the <a href='https://habitrpg.com/#/options/profile/avatar' target='_blank'>Avatar Customization page</a>! Have fun customizing your characters. ul
p.small.muted by Crystalphoenix, Mariahm, Painter de Cluster, Leephon, Beffymaroo, Sungabraverday, Lemoness, and Bailey li Blade, a new mod, is listed!
li Private Messages have been added to the guidelines for Private Spaces.
li Spamming is now expressly forbidden.
li Sexism has been added to the list of unacceptable behaviors.
li Making duplicate accounts to circumvent consequences is now expressly forbidden.
hr hr
a(href='/static/old-news', target='_blank') Read older news a(href='/static/old-news', target='_blank') Read older news
mixin oldNews mixin oldNews
h5 2/12/2015
tr
td
h5 Happy Valentine's Day!
p Help motivate all of the lovely people in your life by sending them a caring valentine. Valentines can be purchased for 10 gold from the Market. For spreading love and joy throughout the community, both the giver AND the receiver get a coveted "adoring friends" badge. Hooray!
p.small.muted by Lemoness and SabreCat
tr
td
h5 New Hairstyles!
.promo_updos.pull-right
p There are a new set of updo hairstyles available in the <a href='https://habitrpg.com/#/options/profile/avatar' target='_blank'>Avatar Customization page</a>! Have fun customizing your characters.
p.small.muted by Crystalphoenix, Mariahm, Painter de Cluster, Leephon, Beffymaroo, Sungabraverday, Lemoness, and Bailey
h5 2/8/2015 h5 2/8/2015
tr tr
td td

View File

@@ -46,6 +46,7 @@ div(ng-if='profile.achievements.streak || user._id == profile._id')
.achievement.achievement-thermometer(ng-show='profile.achievements.streak') .achievement.achievement-thermometer(ng-show='profile.achievements.streak')
div(ng-class='{muted: !profile.achievements.streak}') div(ng-class='{muted: !profile.achievements.streak}')
h5(ng-show='profile.achievements.streak > 1 || !profile.achievements.streak') h5(ng-show='profile.achievements.streak > 1 || !profile.achievements.streak')
| {{profile.achievements.streak || 0 }}&nbsp; | {{profile.achievements.streak || 0 }}&nbsp;
=env.t('streakName') =env.t('streakName')
small(ng-show='profile.achievements.streak > 1 || !profile.achievements.streak')=env.t('streakText', {streaks: "{{profile.achievements.streak || 0 }}"}) small(ng-show='profile.achievements.streak > 1 || !profile.achievements.streak')=env.t('streakText', {streaks: "{{profile.achievements.streak || 0 }}"})
@@ -53,10 +54,12 @@ div(ng-if='profile.achievements.streak || user._id == profile._id')
=env.t('streakSingular') =env.t('streakSingular')
small(ng-show='profile.achievements.streak == 1')=env.t('streakSingularText') small(ng-show='profile.achievements.streak == 1')=env.t('streakSingularText')
hr hr
div(ng-if='profile.achievements.perfect || user._id == profile._id') div(ng-if='profile.achievements.perfect || user._id == profile._id')
.achievement.achievement-perfect(ng-show='profile.achievements.perfect') .achievement.achievement-perfect(ng-show='profile.achievements.perfect')
div(ng-class='{muted: !profile.achievements.perfect}') div(ng-class='{muted: !profile.achievements.perfect}')
h5(ng-show='profile.achievements.perfect > 1 || !profile.achievements.perfect') h5(ng-show='profile.achievements.perfect > 1 || !profile.achievements.perfect')
| {{profile.achievements.perfect || 0 }}&nbsp; | {{profile.achievements.perfect || 0 }}&nbsp;
=env.t('perfectName') =env.t('perfectName')
small(ng-show='profile.achievements.perfect > 1 || !profile.achievements.perfect')=env.t('perfectText', {perfects: "{{profile.achievements.perfect || 0 }}"}) small(ng-show='profile.achievements.perfect > 1 || !profile.achievements.perfect')=env.t('perfectText', {perfects: "{{profile.achievements.perfect || 0 }}"})
@@ -101,6 +104,7 @@ div(ng-if='profile.achievements.triadBingo || user._id == profile._id')
.achievement.achievement-triadbingo(ng-show='profile.achievements.triadBingo') .achievement.achievement-triadbingo(ng-show='profile.achievements.triadBingo')
div(ng-class='{muted: !profile.achievements.triadBingo}') div(ng-class='{muted: !profile.achievements.triadBingo}')
h5=env.t('triadBingoName') h5=env.t('triadBingoName')
small=env.t('triadBingoText') small=env.t('triadBingoText')
small(ng-if='profile.achievements.triadBingoCount') small(ng-if='profile.achievements.triadBingoCount')
=env.t('triadBingoText2', {count: "{{profile.achievements.triadBingoCount}}"}) =env.t('triadBingoText2', {count: "{{profile.achievements.triadBingoCount}}"})
@@ -125,11 +129,15 @@ div(ng-if='::profile.achievements.helpedHabit')
+aLink('http://community.habitrpg.com/node/290', env.t('helpedText2')) +aLink('http://community.habitrpg.com/node/290', env.t('helpedText2'))
hr hr
div(ng-if=':: profile.achievements.originalUser || profile.achievements.veteran') div(ng-if=':: profile.achievements.veteran')
.achievement.achievement-cake .achievement.achievement-cake
div(ng-if='::profile.achievements.veteran') div(ng-if='::profile.achievements.veteran')
h5=env.t('veteran') h5=env.t('veteran')
small=env.t('veteranText') small=env.t('veteranText')
hr
div(ng-if=':: profile.achievements.originalUser')
.achievement.achievement-alpha
div(ng-if='::profile.achievements.originalUser') div(ng-if='::profile.achievements.originalUser')
h5=env.t('originalUser') h5=env.t('originalUser')
small!=env.t('originalUserText') small!=env.t('originalUserText')
@@ -173,6 +181,7 @@ div(ng-if='::profile.achievements.habitBirthdays')
.achievement.achievement-habitBirthday .achievement.achievement-habitBirthday
h5=env.t('habitBirthday') h5=env.t('habitBirthday')
small(ng-if='::profile.achievements.habitBirthdays == 1') small(ng-if='::profile.achievements.habitBirthdays == 1')
=env.t('habitBirthdayText') =env.t('habitBirthdayText')
small(ng-if='::profile.achievements.habitBirthdays > 1') small(ng-if='::profile.achievements.habitBirthdays > 1')
=env.t('habitBirthdayPluralText', {number: "{{profile.achievements.habitBirthdays}}"}) =env.t('habitBirthdayPluralText', {number: "{{profile.achievements.habitBirthdays}}"})