fix(incentives): return 0 for upcoming at end of list

Also adds some new strings for upcoming content, adds a news announcement, and compiles a recent sprites fix.
This commit is contained in:
Sabe Jones 2017-01-12 23:15:37 +00:00
parent 838c8b4e08
commit 2ce7915f06
14 changed files with 129 additions and 72 deletions

View file

@ -6,7 +6,7 @@
}
.promo_backgrounds_armoire_201602 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1545px 0px;
background-position: -1545px -295px;
width: 141px;
height: 294px;
}
@ -96,7 +96,7 @@
}
.promo_checkin_incentives {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1545px -295px;
background-position: -1545px 0px;
width: 141px;
height: 294px;
}
@ -138,16 +138,22 @@
}
.promo_contrib_spotlight_blade {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1405px -924px;
background-position: -1405px -1036px;
width: 89px;
height: 111px;
}
.promo_contrib_spotlight_cantras {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1405px -1036px;
background-position: -1264px -882px;
width: 87px;
height: 109px;
}
.promo_contrib_spotlight_megan {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1405px -924px;
width: 90px;
height: 111px;
}
.promo_cow {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px 0px;
@ -156,7 +162,7 @@
}
.promo_dilatoryDistress {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: 0px -1666px;
background-position: -819px -1666px;
width: 90px;
height: 90px;
}
@ -174,7 +180,7 @@
}
.promo_enchanted_armoire_201507 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1687px -732px;
background-position: -1687px -823px;
width: 217px;
height: 90px;
}
@ -186,7 +192,7 @@
}
.promo_enchanted_armoire_201509 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -699px -448px;
background-position: -273px -1666px;
width: 90px;
height: 90px;
}
@ -198,7 +204,7 @@
}
.promo_enchanted_armoire_201601 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -182px -1666px;
background-position: -1128px -927px;
width: 90px;
height: 90px;
}
@ -252,19 +258,19 @@
}
.promo_mystery_201405 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -455px -1666px;
background-position: -546px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201406 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1123px -648px;
background-position: -982px -542px;
width: 90px;
height: 96px;
}
.promo_mystery_201407 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1493px -1036px;
background-position: -1495px -1036px;
width: 42px;
height: 62px;
}
@ -276,7 +282,7 @@
}
.promo_mystery_201409 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -637px -1666px;
background-position: -728px -1666px;
width: 90px;
height: 90px;
}
@ -288,13 +294,13 @@
}
.promo_mystery_201411 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -728px -1666px;
background-position: -910px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201412 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1495px -924px;
background-position: -1496px -924px;
width: 42px;
height: 66px;
}
@ -306,13 +312,13 @@
}
.promo_mystery_201502 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -819px -1666px;
background-position: -1128px -745px;
width: 90px;
height: 90px;
}
.promo_mystery_201503 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -745px;
background-position: -1128px -836px;
width: 90px;
height: 90px;
}
@ -324,7 +330,7 @@
}
.promo_mystery_201505 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -546px -1666px;
background-position: -637px -1666px;
width: 90px;
height: 90px;
}
@ -342,25 +348,25 @@
}
.promo_mystery_201508 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -982px -624px;
background-position: -699px -448px;
width: 93px;
height: 90px;
}
.promo_mystery_201509 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -364px -1666px;
background-position: -455px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201510 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -982px -533px;
background-position: -982px -639px;
width: 93px;
height: 90px;
}
.promo_mystery_201511 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -273px -1666px;
background-position: -364px -1666px;
width: 90px;
height: 90px;
}
@ -378,43 +384,43 @@
}
.promo_mystery_201602 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -91px -1666px;
background-position: -182px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201603 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -1018px;
background-position: -91px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201604 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -982px -442px;
background-position: -1123px -654px;
width: 93px;
height: 90px;
}
.promo_mystery_201605 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -927px;
background-position: 0px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201606 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px -986px;
background-position: -1123px -548px;
width: 90px;
height: 105px;
}
.promo_mystery_201607 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -836px;
background-position: -1128px -1018px;
width: 90px;
height: 90px;
}
.promo_mystery_201608 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px -1092px;
background-position: -1264px -1096px;
width: 93px;
height: 90px;
}
@ -432,7 +438,7 @@
}
.promo_mystery_201611 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1123px -548px;
background-position: -982px -442px;
width: 90px;
height: 99px;
}
@ -444,7 +450,7 @@
}
.promo_mystery_3014 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1687px -823px;
background-position: -1687px -732px;
width: 217px;
height: 90px;
}
@ -504,7 +510,7 @@
}
.promo_rainbow_armor {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px -882px;
background-position: -1264px -992px;
width: 92px;
height: 103px;
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 KiB

After

Width:  |  Height:  |  Size: 986 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

View file

@ -6,7 +6,7 @@
}
.promo_backgrounds_armoire_201602 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1545px 0px;
background-position: -1545px -295px;
width: 141px;
height: 294px;
}
@ -96,7 +96,7 @@
}
.promo_checkin_incentives {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1545px -295px;
background-position: -1545px 0px;
width: 141px;
height: 294px;
}
@ -138,16 +138,22 @@
}
.promo_contrib_spotlight_blade {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1405px -924px;
background-position: -1405px -1036px;
width: 89px;
height: 111px;
}
.promo_contrib_spotlight_cantras {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1405px -1036px;
background-position: -1264px -882px;
width: 87px;
height: 109px;
}
.promo_contrib_spotlight_megan {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1405px -924px;
width: 90px;
height: 111px;
}
.promo_cow {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px 0px;
@ -156,7 +162,7 @@
}
.promo_dilatoryDistress {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: 0px -1666px;
background-position: -819px -1666px;
width: 90px;
height: 90px;
}
@ -174,7 +180,7 @@
}
.promo_enchanted_armoire_201507 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1687px -732px;
background-position: -1687px -823px;
width: 217px;
height: 90px;
}
@ -186,7 +192,7 @@
}
.promo_enchanted_armoire_201509 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -699px -448px;
background-position: -273px -1666px;
width: 90px;
height: 90px;
}
@ -198,7 +204,7 @@
}
.promo_enchanted_armoire_201601 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -182px -1666px;
background-position: -1128px -927px;
width: 90px;
height: 90px;
}
@ -252,19 +258,19 @@
}
.promo_mystery_201405 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -455px -1666px;
background-position: -546px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201406 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1123px -648px;
background-position: -982px -542px;
width: 90px;
height: 96px;
}
.promo_mystery_201407 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1493px -1036px;
background-position: -1495px -1036px;
width: 42px;
height: 62px;
}
@ -276,7 +282,7 @@
}
.promo_mystery_201409 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -637px -1666px;
background-position: -728px -1666px;
width: 90px;
height: 90px;
}
@ -288,13 +294,13 @@
}
.promo_mystery_201411 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -728px -1666px;
background-position: -910px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201412 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1495px -924px;
background-position: -1496px -924px;
width: 42px;
height: 66px;
}
@ -306,13 +312,13 @@
}
.promo_mystery_201502 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -819px -1666px;
background-position: -1128px -745px;
width: 90px;
height: 90px;
}
.promo_mystery_201503 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -745px;
background-position: -1128px -836px;
width: 90px;
height: 90px;
}
@ -324,7 +330,7 @@
}
.promo_mystery_201505 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -546px -1666px;
background-position: -637px -1666px;
width: 90px;
height: 90px;
}
@ -342,25 +348,25 @@
}
.promo_mystery_201508 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -982px -624px;
background-position: -699px -448px;
width: 93px;
height: 90px;
}
.promo_mystery_201509 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -364px -1666px;
background-position: -455px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201510 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -982px -533px;
background-position: -982px -639px;
width: 93px;
height: 90px;
}
.promo_mystery_201511 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -273px -1666px;
background-position: -364px -1666px;
width: 90px;
height: 90px;
}
@ -378,43 +384,43 @@
}
.promo_mystery_201602 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -91px -1666px;
background-position: -182px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201603 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -1018px;
background-position: -91px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201604 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -982px -442px;
background-position: -1123px -654px;
width: 93px;
height: 90px;
}
.promo_mystery_201605 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -927px;
background-position: 0px -1666px;
width: 90px;
height: 90px;
}
.promo_mystery_201606 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px -986px;
background-position: -1123px -548px;
width: 90px;
height: 105px;
}
.promo_mystery_201607 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1128px -836px;
background-position: -1128px -1018px;
width: 90px;
height: 90px;
}
.promo_mystery_201608 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px -1092px;
background-position: -1264px -1096px;
width: 93px;
height: 90px;
}
@ -432,7 +438,7 @@
}
.promo_mystery_201611 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1123px -548px;
background-position: -982px -442px;
width: 90px;
height: 99px;
}
@ -444,7 +450,7 @@
}
.promo_mystery_3014 {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1687px -823px;
background-position: -1687px -732px;
width: 217px;
height: 90px;
}
@ -504,7 +510,7 @@
}
.promo_rainbow_armor {
background-image: url(/static/sprites/spritesmith-largeSprites-0.png);
background-position: -1264px -882px;
background-position: -1264px -992px;
width: 92px;
height: 103px;
}

View file

@ -42,6 +42,7 @@
"spookySkins": "Spooky Skins",
"supernaturalSkins": "Supernatural Skins",
"splashySkins": "Splashy Skins",
"winterySkins": "Wintery Skins",
"rainbowColors": "Rainbow Colors",
"shimmerColors": "Shimmer Colors",
"hauntedColors": "Haunted Colors",

View file

@ -91,6 +91,8 @@
"weaponSpecialBardInstrumentNotes": "Strum a merry tune on this magical lute! Increases Intelligence and Perception by <%= attrs %> each.",
"weaponSpecialLunarScytheText": "Lunar Scythe",
"weaponSpecialLunarScytheNotes": "Wax this scythe regularly, or its power will wane. Increases Strength and Perception by <%= attrs %> each.",
"weaponSpecialMammothRiderSpearText": "Mammoth Rider Spear",
"weaponSpecialMammothRiderSpearNotes": "This rose quartz-tipped spear will imbue you with ancient spell-casting power. Increases Intelligence by <%= int %>.",
"weaponSpecialYetiText": "Yeti-Tamer Spear",
"weaponSpecialYetiNotes": "This spear allows its user to command any yeti. Increases Strength by <%= str %>. Limited Edition 2013-2014 Winter Gear.",
@ -329,6 +331,8 @@
"armorSpecialBardRobesNotes": "These colorful robes may be conspicuous, but you can sing your way out of any situation. Increases Perception by <%= per %>.",
"armorSpecialLunarWarriorArmorText": "Lunar Warrior Armor",
"armorSpecialLunarWarriorArmorNotes": "This armor is forged of moonstone and magical steel. Increases Strength and Constitution by <%= attrs %> each.",
"armorSpecialMammothRiderArmorText": "Mammoth Rider Armor",
"armorSpecialMammothRiderArmorNotes": "This suit of fur and leather includes a snazzy cape studded with rose quartz gems. It will protect you from bitter winds as you adventure in the coldest climes. Increases Constitution by <%= con %>.",
"armorSpecialYetiText": "Yeti-Tamer Robe",
"armorSpecialYetiNotes": "Fuzzy and fierce. Increases Constitution by <%= con %>. Limited Edition 2013-2014 Winter Gear.",
@ -624,6 +628,8 @@
"headSpecialBardHatNotes": "Stick a feather in your cap and call it \"productivity\"! Increases Intelligence by <%= int %>.",
"headSpecialLunarWarriorHelmText": "Lunar Warrior Helm",
"headSpecialLunarWarriorHelmNotes": "The power of the moon will strengthen you in battle! Increases Strength and Intelligence by <%= attrs %> each.",
"headSpecialMammothRiderHelmText": "Mammoth Rider Helm",
"headSpecialMammothRiderHelmNotes": "Don't let its fluffiness fool you--this hat will grant you piercing powers of perception! Increases Perception by <%= per %>.",
"headSpecialNyeText": "Absurd Party Hat",
"headSpecialNyeNotes": "You've received an Absurd Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
@ -907,6 +913,8 @@
"shieldSpecialTakeThisNotes": "This shield was earned by participating in a sponsored Challenge made by Take This. Congratulations! Increases all attributes by <%= attrs %>.",
"shieldSpecialMoonpearlShieldText": "Moonpearl Shield",
"shieldSpecialMoonpearlShieldNotes": "Designed for fast swimming, and also some defense. Increases Constitution by <%= con %>.",
"shieldSpecialMammothRiderHornText": "Mammoth Rider's Horn",
"shieldSpecialMammothRiderHornNotes": "One blow on this mighty rose quartz horn and you'll summon powerful magical forces. Increases Strength by <%= str %>.",
"shieldSpecialGoldenknightText": "Mustaine's Milestone Mashing Morning Star",
"shieldSpecialGoldenknightNotes": "Meetings, monsters, malaise: managed! Mash! Increases Constitution and Perception by <%= attrs %> each.",

View file

@ -42,6 +42,13 @@ let armor = {
value: 130,
canOwn: ownsItem('armor_special_lunarWarriorArmor'),
},
mammothRiderArmor: {
text: t('armorSpecialMammothRiderArmorText'),
notes: t('armorSpecialMammothRiderArmorNotes', { con: 15 }),
con: 15,
value: 130,
canOwn: ownsItem('armor_special_mammothRiderArmor'),
},
yeti: {
event: EVENTS.winter,
specialClass: 'warrior',
@ -676,6 +683,13 @@ let head = {
value: 130,
canOwn: ownsItem('head_special_lunarWarriorHelm'),
},
mammothRiderHelm: {
text: t('headSpecialMammothRiderHelmText'),
notes: t('headSpecialMammothRiderHelmNotes', { per: 15 }),
per: 15,
value: 130,
canOwn: ownsItem('head_special_mammothRiderHelm'),
},
nye: {
event: EVENTS.nye,
text: t('headSpecialNyeText'),
@ -1347,6 +1361,13 @@ let shield = {
value: 130,
canOwn: ownsItem('shield_special_moonpearlShield'),
},
mammothRiderHorn: {
text: t('shieldSpecialMammothRiderHornText'),
notes: t('shieldSpecialMammothRiderHornNotes', { str: 15 }),
str: 15,
value: 130,
canOwn: ownsItem('shield_special_mammothRiderHorn'),
},
yeti: {
event: EVENTS.winter,
specialClass: 'warrior',
@ -1729,6 +1750,14 @@ let weapon = {
value: 130,
canOwn: ownsItem('weapon_special_lunarScythe'),
},
mammothRiderSpear: {
text: t('weaponSpecialMammothRiderSpearText'),
notes: t('weaponSpecialMammothRiderSpearNotes', { int: 15 }),
twoHanded: true,
int: 15,
value: 130,
canOwn: ownsItem('weapon_special_mammothRiderSpear'),
},
yeti: {
event: EVENTS.winter,
specialClass: 'warrior',

View file

@ -171,7 +171,7 @@ function awardLoginIncentives (user) {
notificationData.message = i18n.t('unlockedCheckInReward', user.preferences.language);
}
notificationData.nextRewardAt = loginIncentives[user.loginIncentives].nextRewardAt;
notificationData.nextRewardAt = loginIncentives[user.loginIncentives].nextRewardAt || 0;
user.addNotification('LOGIN_INCENTIVE', notificationData);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 KiB

After

Width:  |  Height:  |  Size: 986 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

After

Width:  |  Height:  |  Size: 160 KiB

View file

@ -16,7 +16,7 @@ script(id='modals/login-incentives-reward-unlocked.html', type='text/ng-template
.row(style="font-size: 1.5rem;")
.col-md-8.col-md-offset-2.text-center
p {{env.t('earnedRewardForDevotion', {reward: data.rewardText})}}
.col-md-12.text-center(ng-show="user.loginIncentives < 50")
.col-md-12.text-center(ng-show="data.nextRewardAt")
h4 {{env.t('nextRewardUnlocksIn', {numberOfCheckinsLeft: data.nextRewardAt - user.loginIncentives})}}
.modal-footer
.row

View file

@ -11,12 +11,12 @@ script(id='modals/login-incentives.html', type='text/ng-template')
.row
div(ng-if="nextReward.rewardKey.length === 1" class="{{nextReward.rewardKey[0]}}", style="margin: 0 auto;")
div(ng-repeat="reward in nextReward.rewardKey", ng-if="nextReward.rewardKey.length > 1" class="{{reward}}", style="float: left;")
.row
.row(ng-show="data.nextRewardAt")
h4 {{env.t('countLeft', {count: data.nextRewardAt - user.loginIncentives})}}
.row(style="font-size: 1.5rem;")
.col-md-8.col-md-offset-2.text-center
p=env.t('incentivesDescription')
.col-md-12.text-center(ng-show="user.loginIncentives < 50")
.col-md-12.text-center(ng-show="data.nextRewardAt")
h3 {{env.t('nextRewardUnlocksIn', {numberOfCheckinsLeft: data.nextRewardAt - user.loginIncentives})}}
.modal-footer
a.btn.btn-primary.col-md-6.col-md-offset-3(ng-click='$close()')=env.t('awesome')

View file

@ -1,18 +1,25 @@
h2 1/10/2017 - NEW PET QUEST: TRICERATOPS!
h2 1/12/2017 - CONTRIBUTOR SPOTLIGHT: MEGAN!
hr
tr
td
.quest_triceratops.pull-right
h3 Triceratops Pet Quest!
p An enchanted Triceratops is causing the Stoïkalm Volcanoes to erupt! Get the latest pet quest, <a href='/#/options/inventory/quests'>the Trampling Triceratops</a>, and earn some tricky Triceratops pets by completing your real-life tasks.
p.small.muted Art by McCoyly, plumilla, *~Seraphina~*, PainterProphet, and beffymaroo
p.small.muted Written by Lillith of Alfheim
.promo_contrib_spotlight_megan.pull-right
h3 Habitica Blog: Contributor Spotlight on Megan
p We've posted a new <a href='https://habitica.wordpress.com/2017/01/12/contributor-spotlight-megan/' target='_blank'>Contributor Spotlight</a> on the blog! Check out our latest interview with Megan, a moderator and pixel artist, to learn more about she uses Habitica.
p.small.muted by Megan, Beffymaroo, and Lemoness
if menuItem !== 'oldNews'
hr
a(href='/static/old-news', target='_blank') Read older news
mixin oldNews
h2 1/10/2017 - NEW PET QUEST: TRICERATOPS!
tr
td
.quest_triceratops.pull-right
h3 Triceratops Pet Quest!
p An enchanted Triceratops is causing the Stoïkalm Volcanoes to erupt! Get the latest pet quest, <a href='/#/options/inventory/quests'>the Trampling Triceratops</a>, and earn some tricky Triceratops pets by completing your real-life tasks.
p.small.muted Art by McCoyly, plumilla, *~Seraphina~*, PainterProphet, and beffymaroo
p.small.muted Written by Lillith of Alfheim
h2 1/5/2017 - NEW YEAR'S RESOLUTION CHALLENGE, LAST CHANCE FOR GIFT-1-GET-1 SUBSCRIPTIONS, AND USE CASE SPOTLIGHT
tr
td