End Summer Splash 2016 (#7857)
* chore(event): end Summer Splash 2016 * fix(event): disable Seasonal Shop buys
@@ -1,9 +1,9 @@
|
||||
/* Comment out for holiday events */
|
||||
/* .npc_ian {
|
||||
.npc_ian {
|
||||
background: url("/common/img/sprites/npc_ian.gif") no-repeat;
|
||||
width: 78px;
|
||||
height: 135px;
|
||||
} */
|
||||
}
|
||||
|
||||
.quest_burnout {
|
||||
background: url("/common/img/sprites/quest_burnout.gif") no-repeat;
|
||||
|
||||
526
common/dist/sprites/spritesmith-main-10.css
vendored
BIN
common/dist/sprites/spritesmith-main-10.png
vendored
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 147 KiB |
3204
common/dist/sprites/spritesmith-main-11.css
vendored
BIN
common/dist/sprites/spritesmith-main-11.png
vendored
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
664
common/dist/sprites/spritesmith-main-12.css
vendored
BIN
common/dist/sprites/spritesmith-main-12.png
vendored
|
Before Width: | Height: | Size: 153 KiB After Width: | Height: | Size: 155 KiB |
748
common/dist/sprites/spritesmith-main-13.css
vendored
BIN
common/dist/sprites/spritesmith-main-13.png
vendored
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 51 KiB |
1018
common/dist/sprites/spritesmith-main-5.css
vendored
BIN
common/dist/sprites/spritesmith-main-5.png
vendored
|
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 174 KiB |
450
common/dist/sprites/spritesmith-main-6.css
vendored
BIN
common/dist/sprites/spritesmith-main-6.png
vendored
|
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 377 KiB |
842
common/dist/sprites/spritesmith-main-7.css
vendored
BIN
common/dist/sprites/spritesmith-main-7.png
vendored
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
644
common/dist/sprites/spritesmith-main-8.css
vendored
BIN
common/dist/sprites/spritesmith-main-8.png
vendored
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 135 KiB |
502
common/dist/sprites/spritesmith-main-9.css
vendored
BIN
common/dist/sprites/spritesmith-main-9.png
vendored
|
Before Width: | Height: | Size: 150 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.8 KiB |
@@ -96,9 +96,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummerRogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerWarrior: {
|
||||
event: EVENTS.summer,
|
||||
@@ -107,9 +104,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummerWarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerMage: {
|
||||
event: EVENTS.summer,
|
||||
@@ -118,9 +112,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummerMageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerHealer: {
|
||||
event: EVENTS.summer,
|
||||
@@ -129,9 +120,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummerHealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallRogue: {
|
||||
event: EVENTS.fall,
|
||||
@@ -242,9 +230,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummer2015RogueNotes', { per: 15 }),
|
||||
value: 90,
|
||||
per: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Warrior: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -253,9 +238,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummer2015WarriorNotes', { con: 9 }),
|
||||
value: 90,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Mage: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -264,9 +246,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummer2015MageNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Healer: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -275,9 +254,6 @@ let armor = {
|
||||
notes: t('armorSpecialSummer2015HealerNotes', { con: 15 }),
|
||||
value: 90,
|
||||
con: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Rogue: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -438,9 +414,6 @@ let body = {
|
||||
text: t('bodySpecialSummerHealerText'),
|
||||
notes: t('bodySpecialSummerHealerNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerMage: {
|
||||
event: EVENTS.summer,
|
||||
@@ -448,9 +421,6 @@ let body = {
|
||||
text: t('bodySpecialSummerMageText'),
|
||||
notes: t('bodySpecialSummerMageNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Healer: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -458,9 +428,6 @@ let body = {
|
||||
text: t('bodySpecialSummer2015HealerText'),
|
||||
notes: t('bodySpecialSummer2015HealerNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Mage: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -468,9 +435,6 @@ let body = {
|
||||
text: t('bodySpecialSummer2015MageText'),
|
||||
notes: t('bodySpecialSummer2015MageNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Rogue: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -478,9 +442,6 @@ let body = {
|
||||
text: t('bodySpecialSummer2015RogueText'),
|
||||
notes: t('bodySpecialSummer2015RogueNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Warrior: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -488,9 +449,6 @@ let body = {
|
||||
text: t('bodySpecialSummer2015WarriorText'),
|
||||
notes: t('bodySpecialSummer2015WarriorNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -503,9 +461,6 @@ let eyewear = {
|
||||
text: t('eyewearSpecialSummerRogueText'),
|
||||
notes: t('eyewearSpecialSummerRogueNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerWarrior: {
|
||||
event: EVENTS.summer,
|
||||
@@ -513,9 +468,6 @@ let eyewear = {
|
||||
text: t('eyewearSpecialSummerWarriorText'),
|
||||
notes: t('eyewearSpecialSummerWarriorNotes'),
|
||||
value: 20,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
blackTopFrame: {
|
||||
gearSet: 'glasses',
|
||||
@@ -650,9 +602,6 @@ let head = {
|
||||
notes: t('headSpecialSummerRogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerWarrior: {
|
||||
event: EVENTS.summer,
|
||||
@@ -661,9 +610,6 @@ let head = {
|
||||
notes: t('headSpecialSummerWarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerMage: {
|
||||
event: EVENTS.summer,
|
||||
@@ -672,9 +618,6 @@ let head = {
|
||||
notes: t('headSpecialSummerMageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerHealer: {
|
||||
event: EVENTS.summer,
|
||||
@@ -683,9 +626,6 @@ let head = {
|
||||
notes: t('headSpecialSummerHealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallRogue: {
|
||||
event: EVENTS.fall,
|
||||
@@ -796,9 +736,6 @@ let head = {
|
||||
notes: t('headSpecialSummer2015RogueNotes', { per: 9 }),
|
||||
value: 60,
|
||||
per: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Warrior: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -807,9 +744,6 @@ let head = {
|
||||
notes: t('headSpecialSummer2015WarriorNotes', { str: 9 }),
|
||||
value: 60,
|
||||
str: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Mage: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -818,9 +752,6 @@ let head = {
|
||||
notes: t('headSpecialSummer2015MageNotes', { per: 7 }),
|
||||
value: 60,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Healer: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -829,9 +760,6 @@ let head = {
|
||||
notes: t('headSpecialSummer2015HealerNotes', { int: 7 }),
|
||||
value: 60,
|
||||
int: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Rogue: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1216,9 +1144,6 @@ let shield = {
|
||||
notes: t('shieldSpecialSummerRogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerWarrior: {
|
||||
event: EVENTS.summer,
|
||||
@@ -1227,9 +1152,6 @@ let shield = {
|
||||
notes: t('shieldSpecialSummerWarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerHealer: {
|
||||
event: EVENTS.summer,
|
||||
@@ -1238,9 +1160,6 @@ let shield = {
|
||||
notes: t('shieldSpecialSummerHealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallRogue: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1321,9 +1240,6 @@ let shield = {
|
||||
notes: t('shieldSpecialSummer2015RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Warrior: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -1332,9 +1248,6 @@ let shield = {
|
||||
notes: t('shieldSpecialSummer2015WarriorNotes', { con: 7 }),
|
||||
value: 70,
|
||||
con: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Healer: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -1343,9 +1256,6 @@ let shield = {
|
||||
notes: t('shieldSpecialSummer2015HealerNotes', { con: 9 }),
|
||||
value: 70,
|
||||
con: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Rogue: {
|
||||
event: EVENTS.fall2015,
|
||||
@@ -1534,9 +1444,6 @@ let weapon = {
|
||||
notes: t('weaponSpecialSummerRogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerWarrior: {
|
||||
event: EVENTS.summer,
|
||||
@@ -1545,9 +1452,6 @@ let weapon = {
|
||||
notes: t('weaponSpecialSummerWarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerMage: {
|
||||
event: EVENTS.summer,
|
||||
@@ -1558,9 +1462,6 @@ let weapon = {
|
||||
value: 160,
|
||||
int: 15,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summerHealer: {
|
||||
event: EVENTS.summer,
|
||||
@@ -1569,9 +1470,6 @@ let weapon = {
|
||||
notes: t('weaponSpecialSummerHealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fallRogue: {
|
||||
event: EVENTS.fall,
|
||||
@@ -1682,9 +1580,6 @@ let weapon = {
|
||||
notes: t('weaponSpecialSummer2015RogueNotes', { str: 8 }),
|
||||
value: 80,
|
||||
str: 8,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Warrior: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -1693,9 +1588,6 @@ let weapon = {
|
||||
notes: t('weaponSpecialSummer2015WarriorNotes', { str: 15 }),
|
||||
value: 90,
|
||||
str: 15,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Mage: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -1706,9 +1598,6 @@ let weapon = {
|
||||
value: 160,
|
||||
int: 15,
|
||||
per: 7,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
summer2015Healer: {
|
||||
event: EVENTS.summer2015,
|
||||
@@ -1717,9 +1606,6 @@ let weapon = {
|
||||
notes: t('weaponSpecialSummer2015HealerNotes', { int: 9 }),
|
||||
value: 90,
|
||||
int: 9,
|
||||
canBuy: () => {
|
||||
return true;
|
||||
},
|
||||
},
|
||||
fall2015Rogue: {
|
||||
event: EVENTS.fall2015,
|
||||
|
||||
@@ -34,7 +34,7 @@ dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) {
|
||||
count++;
|
||||
|
||||
// specify user data to change:
|
||||
var set = {'migration':migrationName, 'flags.newStuff':true};
|
||||
var set = {'flags.newStuff':true};
|
||||
|
||||
dbUsers.update({_id:user._id}, {$set:set});
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
.container-fluid
|
||||
.stable.row: .col-xs-12
|
||||
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_open'}").pull-left-sm.col-centered
|
||||
div(class="#{env.worldDmg.seasonalShop ? 'seasonalshop_broken' : 'seasonalshop_closed'}").pull-left-sm.col-centered
|
||||
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
|
||||
.arrow.hidden-xs
|
||||
h3.popover-title!=env.t('seasonalShopTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
|
||||
h3.popover-title!=env.t('seasonalShopClosedTitle', {linkStart:"<a href='http://blog.habitrpg.com/who' target='_blank'>", linkEnd: "</a>"})
|
||||
.popover-content
|
||||
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopSummerText')
|
||||
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopSummerText')
|
||||
p(ng-if='!env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
|
||||
p(ng-if='env.worldDmg.seasonalShop')!=env.t('seasonalShopClosedText')
|
||||
|
||||
.well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
|
||||
// .well(ng-if='User.user.achievements.rebirths > 0')=env.t('seasonalShopRebirth')
|
||||
|
||||
li.customize-menu.inventory-gear
|
||||
// li.customize-menu.inventory-gear
|
||||
menu.pets-menu(label=env.t('seasonalItems'))
|
||||
div
|
||||
button.customize-option(class='inventory_special_seafoam',
|
||||
|
||||
@@ -169,7 +169,7 @@ mixin customizeProfile(mobile)
|
||||
+buyPref('skin', ['pastelPink','pastelOrange','pastelYellow','pastelGreen','pastelBlue','pastelPurple','pastelRainbowChevron','pastelRainbowDiagonal'], 'pastelSkins', 'disabled')
|
||||
+buyPref('skin', ['monster','pumpkin','skeleton','zombie','ghost','shadow'], 'spookySkins', 'disabled')
|
||||
+buyPref('skin', ['candycorn','ogre','pumpkin2','reptile','shadow2','skeleton2','transparent','zombie2'], 'supernaturalSkins', 'disabled')
|
||||
+buyPref('skin', ['clownfish','deepocean','merblue','mergold','mergreen','merruby','shark','tropicalwater'], 'splashySkins')
|
||||
+buyPref('skin', ['clownfish','deepocean','merblue','mergold','mergreen','merruby','shark','tropicalwater'], 'splashySkins', 'disabled')
|
||||
|
||||
|
||||
script(id='partials/options.profile.avatar.html', type='text/ng-template')
|
||||
|
||||
@@ -1,26 +1,42 @@
|
||||
h2 7/31/2016 - HABITICA NAMING DAY AND GRYPHON PETS/MOUNTS!
|
||||
h2 8/1/2016 - TAKE THIS CHALLENGE AND GUILD SPOTLIGHT
|
||||
hr
|
||||
tr
|
||||
td
|
||||
span.Mount_Body_Gryphon-RoyalPurple.pull-right
|
||||
span.Mount_Head_Gryphon-RoyalPurple.pull-right(style='margin:0')
|
||||
h3 Habitica Naming Day
|
||||
p Happy Habitica Naming day! In honor of the day when we changed the name of the app from HabitRPG to Habitica, we've given everyone an achievement, as well as some delicious cake for your pets and mounts.
|
||||
p.small.muted by Lemoness and SabreCat
|
||||
.promo_takethis_armor.pull-right
|
||||
h3 New Take This Challenge
|
||||
p The next Take This Challenge has launched, <a href='/#/options/groups/challenges/ee2b3c87-13f0-422a-af3c-309102d4f7e6'>Cast of Characters</a>, with a focus on picturing your feelings as characters in a story. Be sure to check it out to earn additional pieces of the Take This armor set!
|
||||
br
|
||||
p <a href='http://www.takethis.org/' target='_blank'>Take This</a> is a nonprofit that seeks to inform the gamer community about mental health issues, to provide education about mental disorders and mental illness prevention, and to reduce the stigma of mental illness.
|
||||
br
|
||||
p Congratulations to the winners of the last Take This Challenge, "Check Your HP": grand prize winner bookguinea, and runners-up abbey, SeanXiaaa, pushkin89, fightorflight, and ProfDzul. Plus, all participants in that Challenge have received a piece of the <a href='http://habitica.wikia.com/wiki/Event_Item_Sequences#Take_This_Armor_Set' target='_blank'>Take This item set</a>. Enjoy!
|
||||
p.small.muted by Lemoness, SabreCat, Doctor B, and the Take This team
|
||||
tr
|
||||
td
|
||||
.Pet-Gryphon-RoyalPurple.pull-right
|
||||
h3 Habitica Gryphon Mount and Pet
|
||||
p Speaking of pets and mounts, we've given all new users our Purple Gryphon Mount, Melior! If you already received Melior last year, we've given you his little sister Meliora, a Purple Gryphon Pet. You can find them in the Rare Pet/Rare Mount sections of the stable!
|
||||
br
|
||||
p Thanks for being a Habitica user -- you all mean so much to us. We hope that you enjoy your presents!
|
||||
p.small.muted by Lemoness and Baconsaur
|
||||
h3 GUILD SPOTLIGHT
|
||||
p There's a new <a href='https://habitica.wordpress.com/category/guild-spotlight/' target='_blank'>Guild Spotlight on the blog</a>! Check it out now to learn about some awesome Habitica Guilds that highlight fun fandoms.
|
||||
p.small.muted by Lemoness
|
||||
|
||||
if menuItem !== 'oldNews'
|
||||
hr
|
||||
a(href='/static/old-news', target='_blank') Read older news
|
||||
|
||||
mixin oldNews
|
||||
h2 7/31/2016 - HABITICA NAMING DAY AND GRYPHON PETS/MOUNTS!
|
||||
tr
|
||||
td
|
||||
span.Mount_Body_Gryphon-RoyalPurple.pull-right
|
||||
span.Mount_Head_Gryphon-RoyalPurple.pull-right(style='margin:0')
|
||||
h3 Habitica Naming Day
|
||||
p Happy Habitica Naming day! In honor of the day when we changed the name of the app from HabitRPG to Habitica, we've given everyone an achievement, as well as some delicious cake for your pets and mounts.
|
||||
p.small.muted by Lemoness and SabreCat
|
||||
tr
|
||||
td
|
||||
.Pet-Gryphon-RoyalPurple.pull-right
|
||||
h3 Habitica Gryphon Mount and Pet
|
||||
p Speaking of pets and mounts, we've given all new users our Purple Gryphon Mount, Melior! If you already received Melior last year, we've given you his little sister Meliora, a Purple Gryphon Pet. You can find them in the Rare Pet/Rare Mount sections of the stable!
|
||||
br
|
||||
p Thanks for being a Habitica user -- you all mean so much to us. We hope that you enjoy your presents!
|
||||
p.small.muted by Lemoness and Baconsaur
|
||||
h2 7/29/2016 - LAST CHANCE FOR SUMMER SPLASH; MOBILE UPDATES
|
||||
tr
|
||||
td
|
||||
|
||||