feat(content): golden achievements

This commit is contained in:
Sabe Jones
2020-08-18 15:13:06 -05:00
parent 29c21f09e1
commit 6255c5dcc7
16 changed files with 199 additions and 125 deletions

View File

@@ -1,5 +1,5 @@
/* eslint-disable no-console */ /* 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'; import { model as User } from '../../../website/server/models/user';
const progressCount = 1000; const progressCount = 1000;
@@ -14,31 +14,31 @@ async function updateUser (user) {
if (user && user.items && user.items.pets) { if (user && user.items && user.items.pets) {
const pets = user.items.pets; const pets = user.items.pets;
if (pets['Wolf-CottonCandyPink'] > 0 if (pets['Wolf-Golden'] > 0
&& pets['TigerCub-CottonCandyPink'] > 0 && pets['TigerCub-Golden'] > 0
&& pets['PandaCub-CottonCandyPink'] > 0 && pets['PandaCub-Golden'] > 0
&& pets['LionCub-CottonCandyPink'] > 0 && pets['LionCub-Golden'] > 0
&& pets['Fox-CottonCandyPink'] > 0 && pets['Fox-Golden'] > 0
&& pets['FlyingPig-CottonCandyPink'] > 0 && pets['FlyingPig-Golden'] > 0
&& pets['Dragon-CottonCandyPink'] > 0 && pets['Dragon-Golden'] > 0
&& pets['Cactus-CottonCandyPink'] > 0 && pets['Cactus-Golden'] > 0
&& pets['BearCub-CottonCandyPink'] > 0) { && pets['BearCub-Golden'] > 0) {
set['achievements.tickledPink'] = true; set['achievements.goodAsGold'] = true;
} }
} }
if (user && user.items && user.items.mounts) { if (user && user.items && user.items.mounts) {
const mounts = user.items.mounts; const mounts = user.items.mounts;
if (mounts['Wolf-CottonCandyPink'] if (mounts['Wolf-Golden']
&& mounts['TigerCub-CottonCandyPink'] && mounts['TigerCub-Golden']
&& mounts['PandaCub-CottonCandyPink'] && mounts['PandaCub-Golden']
&& mounts['LionCub-CottonCandyPink'] && mounts['LionCub-Golden']
&& mounts['Fox-CottonCandyPink'] && mounts['Fox-Golden']
&& mounts['FlyingPig-CottonCandyPink'] && mounts['FlyingPig-Golden']
&& mounts['Dragon-CottonCandyPink'] && mounts['Dragon-Golden']
&& mounts['Cactus-CottonCandyPink'] && mounts['Cactus-Golden']
&& mounts['BearCub-CottonCandyPink'] ) { && mounts['BearCub-Golden'] ) {
set['achievements.rosyOutlook'] = true; set['achievements.allThatGlitters'] = true;
} }
} }
@@ -50,7 +50,7 @@ async function updateUser (user) {
module.exports = async function processUsers () { module.exports = async function processUsers () {
let query = { let query = {
migration: { $ne: MIGRATION_NAME }, migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2020-02-01') }, 'auth.timestamps.loggedin': { $gt: new Date('2020-08-01') },
}; };
const fields = { const fields = {

View File

@@ -10,6 +10,12 @@
width: 423px; width: 423px;
height: 147px; 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 { .promo_mystery_202008 {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: 0px -335px; background-position: 0px -335px;
@@ -18,7 +24,7 @@
} }
.promo_take_this { .promo_take_this {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -596px -187px; background-position: -671px -187px;
width: 96px; width: 96px;
height: 69px; height: 69px;
} }
@@ -30,7 +36,7 @@
} }
.scene_reading { .scene_reading {
background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png');
background-position: -424px -187px; background-position: -295px -335px;
width: 171px; width: 171px;
height: 144px; height: 144px;
} }

View File

@@ -1,42 +1,48 @@
.achievement-alien { .achievement-alien {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1323px -1628px; background-position: -1671px -1480px;
width: 24px; width: 24px;
height: 26px; height: 26px;
} }
.achievement-alien2x { .achievement-alien2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1655px -1480px; background-position: -524px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-allYourBase2x { .achievement-allThatGlitters2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -954px -1480px; background-position: -954px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-alpha2x { .achievement-allYourBase2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -426px -1549px;
width: 48px;
height: 52px;
}
.achievement-aridAuthority2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1019px -1480px; background-position: -1019px -1480px;
width: 64px; width: 64px;
height: 56px; 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 { .achievement-armor2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -475px -1549px; background-position: -622px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-backToBasics2x { .achievement-backToBasics2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1214px -1480px; background-position: -1279px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
@@ -48,25 +54,25 @@
} }
.achievement-bewilder2x { .achievement-bewilder2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -524px -1549px; background-position: -671px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-birthday2x { .achievement-birthday2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -573px -1549px; background-position: -720px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-boot2x { .achievement-boot2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -622px -1549px; background-position: -769px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-bow2x { .achievement-bow2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -671px -1549px; background-position: -818px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -78,85 +84,85 @@
} }
.achievement-burnout2x { .achievement-burnout2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -720px -1549px; background-position: -867px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-cactus2x { .achievement-cactus2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -769px -1549px; background-position: -916px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-cake2x { .achievement-cake2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -818px -1549px; background-position: -965px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-cave2x { .achievement-cave2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -867px -1549px; background-position: -1014px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-challenge2x { .achievement-challenge2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -916px -1549px; background-position: -1063px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-comment2x { .achievement-comment2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -965px -1549px; background-position: -1112px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-completedTask2x { .achievement-completedTask2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1263px -1480px; background-position: -1328px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-congrats2x { .achievement-congrats2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1014px -1549px; background-position: -1161px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-costumeContest2x { .achievement-costumeContest2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1063px -1549px; background-position: -1210px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-createdTask2x { .achievement-createdTask2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1312px -1480px; background-position: -1377px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-dilatory2x { .achievement-dilatory2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1112px -1549px; background-position: -1259px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-dustDevil2x { .achievement-dustDevil2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1361px -1480px; background-position: -1426px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-dysheartener2x { .achievement-dysheartener2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1161px -1549px; background-position: -1308px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-fedPet2x { .achievement-fedPet2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1410px -1480px; background-position: -1475px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
@@ -168,55 +174,61 @@
} }
.achievement-friends2x { .achievement-friends2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1210px -1549px; background-position: -1357px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-getwell2x { .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-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1406px -1549px; background-position: -1406px -1549px;
width: 48px; width: 48px;
height: 52px; 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-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1455px -1549px; background-position: -1455px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-habiticaDay2x { .achievement-greeting2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1504px -1549px; background-position: -1504px -1549px;
width: 48px; width: 48px;
height: 52px; 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 { .achievement-hatchedPet2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1459px -1480px; background-position: -1573px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-heart2x { .achievement-heart2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1553px -1549px; background-position: 0px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -228,13 +240,13 @@
} }
.achievement-karaoke-2x { .achievement-karaoke-2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1602px -1549px; background-position: -49px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-karaoke { .achievement-karaoke {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1348px -1628px; background-position: -1671px -1507px;
width: 24px; width: 24px;
height: 26px; height: 26px;
} }
@@ -246,7 +258,7 @@
} }
.achievement-lostMasterclasser2x { .achievement-lostMasterclasser2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1651px -1549px; background-position: -98px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -258,67 +270,67 @@
} }
.achievement-monsterMagus2x { .achievement-monsterMagus2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1508px -1480px; background-position: -1622px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-ninja2x { .achievement-ninja2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: 0px -1628px; background-position: -147px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-npc2x { .achievement-npc2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -49px -1628px; background-position: -196px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-nye2x { .achievement-nye2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -98px -1628px; background-position: -245px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-partyOn2x { .achievement-partyOn2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -147px -1628px; background-position: -294px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-partyUp2x { .achievement-partyUp2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -196px -1628px; background-position: -343px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-pearlyPro2x { .achievement-pearlyPro2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1084px -1480px; background-position: -1149px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-perfect2x { .achievement-perfect2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -245px -1628px; background-position: -392px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-primedForPainting2x { .achievement-primedForPainting2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1557px -1480px; background-position: -426px -1549px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-purchasedEquipment2x { .achievement-purchasedEquipment2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1606px -1480px; background-position: -475px -1549px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-rat2x { .achievement-rat2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -294px -1628px; background-position: -441px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -330,67 +342,67 @@
} }
.achievement-royally-loyal2x { .achievement-royally-loyal2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -343px -1628px; background-position: -490px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-seafoam2x { .achievement-seafoam2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -392px -1628px; background-position: -539px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-shield2x { .achievement-shield2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -441px -1628px; background-position: -588px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-shinySeed2x { .achievement-shinySeed2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -490px -1628px; background-position: -637px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-snowball2x { .achievement-snowball2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -539px -1628px; background-position: -686px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-spookySparkles2x { .achievement-spookySparkles2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -588px -1628px; background-position: -735px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-stoikalm2x { .achievement-stoikalm2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -637px -1628px; background-position: -784px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-sun2x { .achievement-sun2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -686px -1628px; background-position: -833px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-sword2x { .achievement-sword2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -735px -1628px; background-position: -882px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-thankyou2x { .achievement-thankyou2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -784px -1628px; background-position: -931px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-thermometer2x { .achievement-thermometer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -833px -1628px; background-position: -980px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -402,61 +414,61 @@
} }
.achievement-tree2x { .achievement-tree2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -882px -1628px; background-position: -1029px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-triadbingo2x { .achievement-triadbingo2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -931px -1628px; background-position: -1078px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-ultimate-healer2x { .achievement-ultimate-healer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -980px -1628px; background-position: -1127px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-ultimate-mage2x { .achievement-ultimate-mage2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1029px -1628px; background-position: -1176px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-ultimate-rogue2x { .achievement-ultimate-rogue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1078px -1628px; background-position: -1225px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-ultimate-warrior2x { .achievement-ultimate-warrior2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1127px -1628px; background-position: -1274px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-undeadUndertaker2x { .achievement-undeadUndertaker2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1149px -1480px; background-position: -1214px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-unearned2x { .achievement-unearned2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1176px -1628px; background-position: -1323px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-valentine2x { .achievement-valentine2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1225px -1628px; background-position: -1372px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-wolf2x { .achievement-wolf2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1274px -1628px; background-position: -1421px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

After

Width:  |  Height:  |  Size: 470 KiB

View File

@@ -335,6 +335,22 @@ const NOTIFICATIONS = {
achievement: 'freshwaterFriends', // defined manually until the server sends all the necessary data 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 { export default {
@@ -394,7 +410,7 @@ export default {
'ACHIEVEMENT_MONSTER_MAGUS', 'ACHIEVEMENT_UNDEAD_UNDERTAKER', 'ACHIEVEMENT_PRIMED_FOR_PAINTING', 'ACHIEVEMENT_MONSTER_MAGUS', 'ACHIEVEMENT_UNDEAD_UNDERTAKER', 'ACHIEVEMENT_PRIMED_FOR_PAINTING',
'ACHIEVEMENT_PEARLY_PRO', 'ACHIEVEMENT_TICKLED_PINK', 'ACHIEVEMENT_ROSY_OUTLOOK', 'ACHIEVEMENT', 'ACHIEVEMENT_PEARLY_PRO', 'ACHIEVEMENT_TICKLED_PINK', 'ACHIEVEMENT_ROSY_OUTLOOK', 'ACHIEVEMENT',
'ONBOARDING_COMPLETE', 'FIRST_DROPS', 'ACHIEVEMENT_BUG_BONANZA', 'ACHIEVEMENT_BARE_NECESSITIES', '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 => { ].forEach(type => {
handledNotifications[type] = true; handledNotifications[type] = true;
}); });
@@ -810,6 +826,8 @@ export default {
case 'ACHIEVEMENT_BUG_BONANZA': case 'ACHIEVEMENT_BUG_BONANZA':
case 'ACHIEVEMENT_BARE_NECESSITIES': case 'ACHIEVEMENT_BARE_NECESSITIES':
case 'ACHIEVEMENT_FRESHWATER_FRIENDS': case 'ACHIEVEMENT_FRESHWATER_FRIENDS':
case 'ACHIEVEMENT_GOOD_AS_GOLD':
case 'ACHIEVEMENT_ALL_THAT_GLITTERS':
case 'GENERIC_ACHIEVEMENT': case 'GENERIC_ACHIEVEMENT':
this.showNotificationWithModal(notification); this.showNotificationWithModal(notification);
break; break;

View File

@@ -84,5 +84,11 @@
"achievementBareNecessitiesModalText": "You completed the Monkey, Sloth, and Treeling pet quests!", "achievementBareNecessitiesModalText": "You completed the Monkey, Sloth, and Treeling pet quests!",
"achievementFreshwaterFriends": "Freshwater Friends", "achievementFreshwaterFriends": "Freshwater Friends",
"achievementFreshwaterFriendsText": "Has completed Axolotl, Frog, and Hippo pet quests.", "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!"
} }

View File

@@ -202,6 +202,16 @@ const basicAchievs = {
titleKey: 'achievementFreshwaterFriends', titleKey: 'achievementFreshwaterFriends',
textKey: 'achievementFreshwaterFriendsText', textKey: 'achievementFreshwaterFriendsText',
}, },
goodAsGold: {
icon: 'achievement-goodAsGold',
titleKey: 'achievementGoodAsGold',
textKey: 'achievementGoodAsGoldText',
},
allThatGlitters: {
icon: 'achievement-allThatGlitters',
titleKey: 'achievementAllThatGlitters',
textKey: 'achievementAllThatGlittersText',
},
}; };
Object.assign(achievementsData, basicAchievs); Object.assign(achievementsData, basicAchievs);

View File

@@ -341,4 +341,11 @@ export const ANIMAL_COLOR_ACHIEVEMENTS = [
mountAchievement: 'rosyOutlook', mountAchievement: 'rosyOutlook',
mountNotificationType: 'ACHIEVEMENT_ROSY_OUTLOOK', mountNotificationType: 'ACHIEVEMENT_ROSY_OUTLOOK',
}, },
{
color: 'Golden',
petAchievement: 'goodAsGold',
petNotificationType: 'ACHIEVEMENT_GOOD_AS_GOLD',
mountAchievement: 'allThatGlitters',
mountNotificationType: 'ACHIEVEMENT_ALL_THAT_GLITTERS',
},
]; ];

View File

@@ -202,6 +202,8 @@ function _getBasicAchievements (user, language) {
_addSimple(result, user, { path: 'bugBonanza', language }); _addSimple(result, user, { path: 'bugBonanza', language });
_addSimple(result, user, { path: 'bareNecessities', language }); _addSimple(result, user, { path: 'bareNecessities', language });
_addSimple(result, user, { path: 'freshwaterFriends', 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: 'beastMaster', language });
_addSimpleWithMasterCount(result, user, { path: 'mountMaster', language }); _addSimpleWithMasterCount(result, user, { path: 'mountMaster', language });

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -4,7 +4,7 @@ const api = {};
// @TODO export this const, cannot export it from here because only routes are exported from // @TODO export this const, cannot export it from here because only routes are exported from
// controllers // controllers
const LAST_ANNOUNCEMENT_TITLE = 'BLOG POST: MYSTIC HOURGLASSES!'; const LAST_ANNOUNCEMENT_TITLE = 'NEW PET COLLECTION BADGES!';
const worldDmg = { // @TODO const worldDmg = { // @TODO
bailey: false, bailey: false,
}; };
@@ -31,21 +31,30 @@ api.getNews = {
<div class="mr-3 ${baileyClass}"></div> <div class="mr-3 ${baileyClass}"></div>
<div class="media-body"> <div class="media-body">
<h1 class="align-self-center">${res.t('newStuff')}</h1> <h1 class="align-self-center">${res.t('newStuff')}</h1>
<h2>8/13/2020 - ${LAST_ANNOUNCEMENT_TITLE}</h2> <h2>8/18/2020 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
</div> </div>
</div> </div>
<hr/> <hr/>
<div class="promo_time_travelers center-block"></div>
<p> <p>
This month's <a href='https://habitica.wordpress.com/2020/08/12/mystic-hourglass/' We're releasing a new achievement so you can celebrate your successes in the world of
target='_blank'>featured Wiki article</a> is about Mystic Hourglasses! We hope that it Habitican pet collecting! Earn the Good as Gold and All That Glitters achievements by
will help you learn more about Habitica's Mysterious Time Travelers and all their shop collecting Golden pets and mounts and you'll earn a nifty badge for your profile.
has to offer. Be sure to check it out, and let us know what you think by reaching out on
<a href='https://twitter.com/habitica' target='_blank'>Twitter</a>, <a
href='http://blog.habitrpg.com' target='_blank'>Tumblr</a>, and <a
href='https://facebook.com/habitica' target='_blank'>Facebook</a>.
</p> </p>
<div class="small mb-3">by shanaqui and the Wiki Wizards</div> <p>
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.
</p>
<div class="small mb-3">by Jokerat and SabreCat</div>
<h3>Task Scoring and Notification Improvements!</h3>
<p>
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!
</p>
<div class="small mb-3">by paglias, negue, and Apollo</div>
</div> </div>
`, `,
}); });

View File

@@ -136,6 +136,8 @@ export default new Schema({
bugBonanza: Boolean, bugBonanza: Boolean,
bareNecessities: Boolean, bareNecessities: Boolean,
freshwaterFriends: Boolean, freshwaterFriends: Boolean,
goodAsGold: Boolean,
allThatGlitters: Boolean,
// Onboarding Guide // Onboarding Guide
createdTask: Boolean, createdTask: Boolean,
completedTask: Boolean, completedTask: Boolean,

View File

@@ -57,6 +57,8 @@ const NOTIFICATION_TYPES = [
'ACHIEVEMENT_BUG_BONANZA', 'ACHIEVEMENT_BUG_BONANZA',
'ACHIEVEMENT_BARE_NECESSITIES', 'ACHIEVEMENT_BARE_NECESSITIES',
'ACHIEVEMENT_FRESHWATER_FRIENDS', 'ACHIEVEMENT_FRESHWATER_FRIENDS',
'ACHIEVEMENT_GOOD_AS_GOLD',
'ACHIEVEMENT_ALL_THAT_GLITTERS',
'ACHIEVEMENT', // generic achievement notification, details inside `notification.data` 'ACHIEVEMENT', // generic achievement notification, details inside `notification.data`
]; ];