diff --git a/migrations/archive/2020/20200218_pet_color_achievements.js b/migrations/archive/2020/20200818_pet_color_achievements.js similarity index 57% rename from migrations/archive/2020/20200218_pet_color_achievements.js rename to migrations/archive/2020/20200818_pet_color_achievements.js index 6639d1fd86..af6d62b938 100644 --- a/migrations/archive/2020/20200218_pet_color_achievements.js +++ b/migrations/archive/2020/20200818_pet_color_achievements.js @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -const MIGRATION_NAME = '20200218_pet_color_achievements'; +const MIGRATION_NAME = '20200818_pet_color_achievements'; import { model as User } from '../../../website/server/models/user'; const progressCount = 1000; @@ -14,31 +14,31 @@ async function updateUser (user) { if (user && user.items && user.items.pets) { const pets = user.items.pets; - if (pets['Wolf-CottonCandyPink'] > 0 - && pets['TigerCub-CottonCandyPink'] > 0 - && pets['PandaCub-CottonCandyPink'] > 0 - && pets['LionCub-CottonCandyPink'] > 0 - && pets['Fox-CottonCandyPink'] > 0 - && pets['FlyingPig-CottonCandyPink'] > 0 - && pets['Dragon-CottonCandyPink'] > 0 - && pets['Cactus-CottonCandyPink'] > 0 - && pets['BearCub-CottonCandyPink'] > 0) { - set['achievements.tickledPink'] = true; + if (pets['Wolf-Golden'] > 0 + && pets['TigerCub-Golden'] > 0 + && pets['PandaCub-Golden'] > 0 + && pets['LionCub-Golden'] > 0 + && pets['Fox-Golden'] > 0 + && pets['FlyingPig-Golden'] > 0 + && pets['Dragon-Golden'] > 0 + && pets['Cactus-Golden'] > 0 + && pets['BearCub-Golden'] > 0) { + set['achievements.goodAsGold'] = true; } } if (user && user.items && user.items.mounts) { const mounts = user.items.mounts; - if (mounts['Wolf-CottonCandyPink'] - && mounts['TigerCub-CottonCandyPink'] - && mounts['PandaCub-CottonCandyPink'] - && mounts['LionCub-CottonCandyPink'] - && mounts['Fox-CottonCandyPink'] - && mounts['FlyingPig-CottonCandyPink'] - && mounts['Dragon-CottonCandyPink'] - && mounts['Cactus-CottonCandyPink'] - && mounts['BearCub-CottonCandyPink'] ) { - set['achievements.rosyOutlook'] = true; + if (mounts['Wolf-Golden'] + && mounts['TigerCub-Golden'] + && mounts['PandaCub-Golden'] + && mounts['LionCub-Golden'] + && mounts['Fox-Golden'] + && mounts['FlyingPig-Golden'] + && mounts['Dragon-Golden'] + && mounts['Cactus-Golden'] + && mounts['BearCub-Golden'] ) { + set['achievements.allThatGlitters'] = true; } } @@ -50,7 +50,7 @@ async function updateUser (user) { module.exports = async function processUsers () { let query = { migration: { $ne: MIGRATION_NAME }, - 'auth.timestamps.loggedin': { $gt: new Date('2020-02-01') }, + 'auth.timestamps.loggedin': { $gt: new Date('2020-08-01') }, }; const fields = { diff --git a/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css b/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css index 8a64c62050..9ce0c87170 100644 --- a/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css +++ b/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css @@ -10,6 +10,12 @@ width: 423px; height: 147px; } +.promo_golden_achievements { + background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); + background-position: -424px -187px; + width: 246px; + height: 112px; +} .promo_mystery_202008 { background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); background-position: 0px -335px; @@ -18,7 +24,7 @@ } .promo_take_this { background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); - background-position: -596px -187px; + background-position: -671px -187px; width: 96px; height: 69px; } @@ -30,7 +36,7 @@ } .scene_reading { background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); - background-position: -424px -187px; + background-position: -295px -335px; width: 171px; height: 144px; } diff --git a/website/client/src/assets/css/sprites/spritesmith-main-0.css b/website/client/src/assets/css/sprites/spritesmith-main-0.css index 92bd43a401..729b27ba5c 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main-0.css +++ b/website/client/src/assets/css/sprites/spritesmith-main-0.css @@ -1,42 +1,48 @@ .achievement-alien { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1323px -1628px; + background-position: -1671px -1480px; width: 24px; height: 26px; } .achievement-alien2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1655px -1480px; + background-position: -524px -1549px; width: 48px; height: 52px; } -.achievement-allYourBase2x { +.achievement-allThatGlitters2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-position: -954px -1480px; width: 64px; height: 56px; } -.achievement-alpha2x { - background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -426px -1549px; - width: 48px; - height: 52px; -} -.achievement-aridAuthority2x { +.achievement-allYourBase2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-position: -1019px -1480px; width: 64px; height: 56px; } +.achievement-alpha2x { + background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); + background-position: -573px -1549px; + width: 48px; + height: 52px; +} +.achievement-aridAuthority2x { + background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); + background-position: -1084px -1480px; + width: 64px; + height: 56px; +} .achievement-armor2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -475px -1549px; + background-position: -622px -1549px; width: 48px; height: 52px; } .achievement-backToBasics2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1214px -1480px; + background-position: -1279px -1480px; width: 48px; height: 56px; } @@ -48,25 +54,25 @@ } .achievement-bewilder2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -524px -1549px; + background-position: -671px -1549px; width: 48px; height: 52px; } .achievement-birthday2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -573px -1549px; + background-position: -720px -1549px; width: 48px; height: 52px; } .achievement-boot2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -622px -1549px; + background-position: -769px -1549px; width: 48px; height: 52px; } .achievement-bow2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -671px -1549px; + background-position: -818px -1549px; width: 48px; height: 52px; } @@ -78,85 +84,85 @@ } .achievement-burnout2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -720px -1549px; + background-position: -867px -1549px; width: 48px; height: 52px; } .achievement-cactus2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -769px -1549px; + background-position: -916px -1549px; width: 48px; height: 52px; } .achievement-cake2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -818px -1549px; + background-position: -965px -1549px; width: 48px; height: 52px; } .achievement-cave2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -867px -1549px; + background-position: -1014px -1549px; width: 48px; height: 52px; } .achievement-challenge2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -916px -1549px; + background-position: -1063px -1549px; width: 48px; height: 52px; } .achievement-comment2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -965px -1549px; + background-position: -1112px -1549px; width: 48px; height: 52px; } .achievement-completedTask2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1263px -1480px; + background-position: -1328px -1480px; width: 48px; height: 56px; } .achievement-congrats2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1014px -1549px; + background-position: -1161px -1549px; width: 48px; height: 52px; } .achievement-costumeContest2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1063px -1549px; + background-position: -1210px -1549px; width: 48px; height: 52px; } .achievement-createdTask2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1312px -1480px; + background-position: -1377px -1480px; width: 48px; height: 56px; } .achievement-dilatory2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1112px -1549px; + background-position: -1259px -1549px; width: 48px; height: 52px; } .achievement-dustDevil2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1361px -1480px; + background-position: -1426px -1480px; width: 48px; height: 56px; } .achievement-dysheartener2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1161px -1549px; + background-position: -1308px -1549px; width: 48px; height: 52px; } .achievement-fedPet2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1410px -1480px; + background-position: -1475px -1480px; width: 48px; height: 56px; } @@ -168,55 +174,61 @@ } .achievement-friends2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1210px -1549px; + background-position: -1357px -1549px; width: 48px; height: 52px; } .achievement-getwell2x { - background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1259px -1549px; - width: 48px; - height: 52px; -} -.achievement-goodluck2x { - background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1308px -1549px; - width: 48px; - height: 52px; -} -.achievement-greeting2x { - background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1357px -1549px; - width: 48px; - height: 52px; -} -.achievement-guild2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-position: -1406px -1549px; width: 48px; height: 52px; } -.achievement-habitBirthday2x { +.achievement-goodAsGold2x { + background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); + background-position: -1524px -1480px; + width: 48px; + height: 56px; +} +.achievement-goodluck2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-position: -1455px -1549px; width: 48px; height: 52px; } -.achievement-habiticaDay2x { +.achievement-greeting2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-position: -1504px -1549px; width: 48px; height: 52px; } +.achievement-guild2x { + background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); + background-position: -1553px -1549px; + width: 48px; + height: 52px; +} +.achievement-habitBirthday2x { + background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); + background-position: -1602px -1549px; + width: 48px; + height: 52px; +} +.achievement-habiticaDay2x { + background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); + background-position: -1651px -1549px; + width: 48px; + height: 52px; +} .achievement-hatchedPet2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1459px -1480px; + background-position: -1573px -1480px; width: 48px; height: 56px; } .achievement-heart2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1553px -1549px; + background-position: 0px -1628px; width: 48px; height: 52px; } @@ -228,13 +240,13 @@ } .achievement-karaoke-2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1602px -1549px; + background-position: -49px -1628px; width: 48px; height: 52px; } .achievement-karaoke { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1348px -1628px; + background-position: -1671px -1507px; width: 24px; height: 26px; } @@ -246,7 +258,7 @@ } .achievement-lostMasterclasser2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1651px -1549px; + background-position: -98px -1628px; width: 48px; height: 52px; } @@ -258,67 +270,67 @@ } .achievement-monsterMagus2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1508px -1480px; + background-position: -1622px -1480px; width: 48px; height: 56px; } .achievement-ninja2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: 0px -1628px; + background-position: -147px -1628px; width: 48px; height: 52px; } .achievement-npc2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -49px -1628px; + background-position: -196px -1628px; width: 48px; height: 52px; } .achievement-nye2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -98px -1628px; + background-position: -245px -1628px; width: 48px; height: 52px; } .achievement-partyOn2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -147px -1628px; + background-position: -294px -1628px; width: 48px; height: 52px; } .achievement-partyUp2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -196px -1628px; + background-position: -343px -1628px; width: 48px; height: 52px; } .achievement-pearlyPro2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1084px -1480px; + background-position: -1149px -1480px; width: 64px; height: 56px; } .achievement-perfect2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -245px -1628px; + background-position: -392px -1628px; width: 48px; height: 52px; } .achievement-primedForPainting2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1557px -1480px; + background-position: -426px -1549px; width: 48px; height: 56px; } .achievement-purchasedEquipment2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1606px -1480px; + background-position: -475px -1549px; width: 48px; height: 56px; } .achievement-rat2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -294px -1628px; + background-position: -441px -1628px; width: 48px; height: 52px; } @@ -330,67 +342,67 @@ } .achievement-royally-loyal2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -343px -1628px; + background-position: -490px -1628px; width: 48px; height: 52px; } .achievement-seafoam2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -392px -1628px; + background-position: -539px -1628px; width: 48px; height: 52px; } .achievement-shield2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -441px -1628px; + background-position: -588px -1628px; width: 48px; height: 52px; } .achievement-shinySeed2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -490px -1628px; + background-position: -637px -1628px; width: 48px; height: 52px; } .achievement-snowball2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -539px -1628px; + background-position: -686px -1628px; width: 48px; height: 52px; } .achievement-spookySparkles2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -588px -1628px; + background-position: -735px -1628px; width: 48px; height: 52px; } .achievement-stoikalm2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -637px -1628px; + background-position: -784px -1628px; width: 48px; height: 52px; } .achievement-sun2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -686px -1628px; + background-position: -833px -1628px; width: 48px; height: 52px; } .achievement-sword2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -735px -1628px; + background-position: -882px -1628px; width: 48px; height: 52px; } .achievement-thankyou2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -784px -1628px; + background-position: -931px -1628px; width: 48px; height: 52px; } .achievement-thermometer2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -833px -1628px; + background-position: -980px -1628px; width: 48px; height: 52px; } @@ -402,61 +414,61 @@ } .achievement-tree2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -882px -1628px; + background-position: -1029px -1628px; width: 48px; height: 52px; } .achievement-triadbingo2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -931px -1628px; + background-position: -1078px -1628px; width: 48px; height: 52px; } .achievement-ultimate-healer2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -980px -1628px; + background-position: -1127px -1628px; width: 48px; height: 52px; } .achievement-ultimate-mage2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1029px -1628px; + background-position: -1176px -1628px; width: 48px; height: 52px; } .achievement-ultimate-rogue2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1078px -1628px; + background-position: -1225px -1628px; width: 48px; height: 52px; } .achievement-ultimate-warrior2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1127px -1628px; + background-position: -1274px -1628px; width: 48px; height: 52px; } .achievement-undeadUndertaker2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1149px -1480px; + background-position: -1214px -1480px; width: 64px; height: 56px; } .achievement-unearned2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1176px -1628px; + background-position: -1323px -1628px; width: 48px; height: 52px; } .achievement-valentine2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1225px -1628px; + background-position: -1372px -1628px; width: 48px; height: 52px; } .achievement-wolf2x { background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); - background-position: -1274px -1628px; + background-position: -1421px -1628px; width: 48px; height: 52px; } diff --git a/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png b/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png index c1737591d0..0bec3fe3d5 100644 Binary files a/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png and b/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png differ diff --git a/website/client/src/assets/images/sprites/spritesmith-main-0.png b/website/client/src/assets/images/sprites/spritesmith-main-0.png index 947772391d..4d345865ca 100644 Binary files a/website/client/src/assets/images/sprites/spritesmith-main-0.png and b/website/client/src/assets/images/sprites/spritesmith-main-0.png differ diff --git a/website/client/src/components/notifications.vue b/website/client/src/components/notifications.vue index c41bf0ed87..251eb46522 100644 --- a/website/client/src/components/notifications.vue +++ b/website/client/src/components/notifications.vue @@ -335,6 +335,22 @@ const NOTIFICATIONS = { achievement: 'freshwaterFriends', // defined manually until the server sends all the necessary data }, }, + ACHIEVEMENT_GOOD_AS_GOLD: { + achievement: true, + label: $t => `${$t('achievement')}: ${$t('achievementGoodAsGold')}`, + modalId: 'generic-achievement', + data: { + achievement: 'goodAsGold', // defined manually until the server sends all the necessary data + }, + }, + ACHIEVEMENT_ALL_THAT_GLITTERS: { + achievement: true, + label: $t => `${$t('achievement')}: ${$t('achievementAllThatGlitters')}`, + modalId: 'generic-achievement', + data: { + achievement: 'allThatGlitters', // defined manually until the server sends all the necessary data + }, + }, }; export default { @@ -394,7 +410,7 @@ export default { 'ACHIEVEMENT_MONSTER_MAGUS', 'ACHIEVEMENT_UNDEAD_UNDERTAKER', 'ACHIEVEMENT_PRIMED_FOR_PAINTING', 'ACHIEVEMENT_PEARLY_PRO', 'ACHIEVEMENT_TICKLED_PINK', 'ACHIEVEMENT_ROSY_OUTLOOK', 'ACHIEVEMENT', 'ONBOARDING_COMPLETE', 'FIRST_DROPS', 'ACHIEVEMENT_BUG_BONANZA', 'ACHIEVEMENT_BARE_NECESSITIES', - 'ACHIEVEMENT_FRESHWATER_FRIENDS', + 'ACHIEVEMENT_FRESHWATER_FRIENDS', 'ACHIEVEMENT_GOOD_AS_GOLD', 'ACHIEVEMENT_ALL_THAT_GLITTERS', ].forEach(type => { handledNotifications[type] = true; }); @@ -810,6 +826,8 @@ export default { case 'ACHIEVEMENT_BUG_BONANZA': case 'ACHIEVEMENT_BARE_NECESSITIES': case 'ACHIEVEMENT_FRESHWATER_FRIENDS': + case 'ACHIEVEMENT_GOOD_AS_GOLD': + case 'ACHIEVEMENT_ALL_THAT_GLITTERS': case 'GENERIC_ACHIEVEMENT': this.showNotificationWithModal(notification); break; diff --git a/website/common/locales/en/achievements.json b/website/common/locales/en/achievements.json index 28679b6576..12048bf875 100644 --- a/website/common/locales/en/achievements.json +++ b/website/common/locales/en/achievements.json @@ -84,5 +84,11 @@ "achievementBareNecessitiesModalText": "You completed the Monkey, Sloth, and Treeling pet quests!", "achievementFreshwaterFriends": "Freshwater Friends", "achievementFreshwaterFriendsText": "Has completed Axolotl, Frog, and Hippo pet quests.", - "achievementFreshwaterFriendsModalText": "You completed the Axolotl, Frog, and Hippo pet quests!" + "achievementFreshwaterFriendsModalText": "You completed the Axolotl, Frog, and Hippo pet quests!", + "achievementGoodAsGold": "Good As Gold", + "achievementGoodAsGoldText": "Has collected all Golden pets.", + "achievementGoodAsGoldModalText": "You collected all the Golden Pets!", + "achievementAllThatGlitters": "All That Glitters", + "achievementAllThatGlittersText": "Has tamed all Golden Mounts.", + "achievementAllThatGlittersModalText": "You tamed all the Golden Mounts!" } diff --git a/website/common/script/content/achievements.js b/website/common/script/content/achievements.js index 457f36841b..4f808103d4 100644 --- a/website/common/script/content/achievements.js +++ b/website/common/script/content/achievements.js @@ -202,6 +202,16 @@ const basicAchievs = { titleKey: 'achievementFreshwaterFriends', textKey: 'achievementFreshwaterFriendsText', }, + goodAsGold: { + icon: 'achievement-goodAsGold', + titleKey: 'achievementGoodAsGold', + textKey: 'achievementGoodAsGoldText', + }, + allThatGlitters: { + icon: 'achievement-allThatGlitters', + titleKey: 'achievementAllThatGlitters', + textKey: 'achievementAllThatGlittersText', + }, }; Object.assign(achievementsData, basicAchievs); diff --git a/website/common/script/content/constants.js b/website/common/script/content/constants.js index 831e17f582..d86a35e5d3 100644 --- a/website/common/script/content/constants.js +++ b/website/common/script/content/constants.js @@ -341,4 +341,11 @@ export const ANIMAL_COLOR_ACHIEVEMENTS = [ mountAchievement: 'rosyOutlook', mountNotificationType: 'ACHIEVEMENT_ROSY_OUTLOOK', }, + { + color: 'Golden', + petAchievement: 'goodAsGold', + petNotificationType: 'ACHIEVEMENT_GOOD_AS_GOLD', + mountAchievement: 'allThatGlitters', + mountNotificationType: 'ACHIEVEMENT_ALL_THAT_GLITTERS', + }, ]; diff --git a/website/common/script/libs/achievements.js b/website/common/script/libs/achievements.js index e3e17af4c0..89ae2fc270 100644 --- a/website/common/script/libs/achievements.js +++ b/website/common/script/libs/achievements.js @@ -202,6 +202,8 @@ function _getBasicAchievements (user, language) { _addSimple(result, user, { path: 'bugBonanza', language }); _addSimple(result, user, { path: 'bareNecessities', language }); _addSimple(result, user, { path: 'freshwaterFriends', language }); + _addSimple(result, user, { path: 'goodAsGold', language }); + _addSimple(result, user, { path: 'allThatGlitters', language }); _addSimpleWithMasterCount(result, user, { path: 'beastMaster', language }); _addSimpleWithMasterCount(result, user, { path: 'mountMaster', language }); diff --git a/website/raw_sprites/spritesmith/achievements/achievement-allThatGlitters2x.png b/website/raw_sprites/spritesmith/achievements/achievement-allThatGlitters2x.png new file mode 100644 index 0000000000..4869fc62c6 Binary files /dev/null and b/website/raw_sprites/spritesmith/achievements/achievement-allThatGlitters2x.png differ diff --git a/website/raw_sprites/spritesmith/achievements/achievement-goodAsGold2x.png b/website/raw_sprites/spritesmith/achievements/achievement-goodAsGold2x.png new file mode 100644 index 0000000000..299d3f120e Binary files /dev/null and b/website/raw_sprites/spritesmith/achievements/achievement-goodAsGold2x.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_golden_achievements.png b/website/raw_sprites/spritesmith_large/promo_golden_achievements.png new file mode 100644 index 0000000000..68a91ddb5f Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_golden_achievements.png differ diff --git a/website/server/controllers/api-v3/news.js b/website/server/controllers/api-v3/news.js index 58f84a3668..0ce7ff4c0a 100644 --- a/website/server/controllers/api-v3/news.js +++ b/website/server/controllers/api-v3/news.js @@ -4,7 +4,7 @@ const api = {}; // @TODO export this const, cannot export it from here because only routes are exported from // controllers -const LAST_ANNOUNCEMENT_TITLE = 'BLOG POST: MYSTIC HOURGLASSES!'; +const LAST_ANNOUNCEMENT_TITLE = 'NEW PET COLLECTION BADGES!'; const worldDmg = { // @TODO bailey: false, }; @@ -31,21 +31,30 @@ api.getNews = {
- This month's featured Wiki article is about Mystic Hourglasses! We hope that it - will help you learn more about Habitica's Mysterious Time Travelers and all their shop - has to offer. Be sure to check it out, and let us know what you think by reaching out on - Twitter, Tumblr, and Facebook. + We're releasing a new achievement so you can celebrate your successes in the world of + Habitican pet collecting! Earn the Good as Gold and All That Glitters achievements by + collecting Golden pets and mounts and you'll earn a nifty badge for your profile.
-+ If you already have all the Golden pets and/or mounts in your stable, you'll receive the + badge automatically! Check your profile and celebrate your new achievement with pride. +
++ We've made an improvement to scoring your tasks via the Record Yesterday's Activity tool + on web! Previously, you'd see your stats increase as you checked things off in that + modal. Once the change goes live, you'll only see your stats increase and get + notifications about rewards and damage once you click to start a new day. You'll also + receive reduced popups with totals in stats gained rather than individual stat changes. + We hope you enjoy this change! +
+