feat(content): Shade pet/mount collection achievements

This commit is contained in:
Sabe Jones
2021-10-21 10:49:22 -05:00
parent 73b3d9bc56
commit d2ddb743b6
14 changed files with 320 additions and 178 deletions

View File

@@ -0,0 +1,82 @@
/* eslint-disable no-console */
const MIGRATION_NAME = '20211021_pet_color_achievements';
import { model as User } from '../../../website/server/models/user';
const progressCount = 1000;
let count = 0;
async function updateUser (user) {
count++;
const set = {
migration: MIGRATION_NAME,
};
if (user && user.items && user.items.pets) {
const pets = user.items.pets;
if (pets['Wolf-Shade'] > 0
&& pets['TigerCub-Shade'] > 0
&& pets['PandaCub-Shade'] > 0
&& pets['LionCub-Shade'] > 0
&& pets['Fox-Shade'] > 0
&& pets['FlyingPig-Shade'] > 0
&& pets['Dragon-Shade'] > 0
&& pets['Cactus-Shade'] > 0
&& pets['BearCub-Shade'] > 0) {
set['achievements.shadyCustomer'] = true;
}
}
if (user && user.items && user.items.mounts) {
const mounts = user.items.mounts;
if (mounts['Wolf-Shade']
&& mounts['TigerCub-Shade']
&& mounts['PandaCub-Shade']
&& mounts['LionCub-Shade']
&& mounts['Fox-Shade']
&& mounts['FlyingPig-Shade']
&& mounts['Dragon-Shade']
&& mounts['Cactus-Shade']
&& mounts['BearCub-Shade'] ) {
set['achievements.shadeOfItAll'] = true;
}
}
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
return await User.update({ _id: user._id }, { $set: set }).exec();
}
export default async function processUsers () {
let query = {
migration: { $ne: MIGRATION_NAME },
'auth.timestamps.loggedin': { $gt: new Date('2021-10-01') },
};
const fields = {
_id: 1,
items: 1,
};
while (true) { // eslint-disable-line no-constant-condition
const users = await User // eslint-disable-line no-await-in-loop
.find(query)
.limit(250)
.sort({_id: 1})
.select(fields)
.lean()
.exec();
if (users.length === 0) {
console.warn('All appropriate users found and modified.');
console.warn(`\n${count} users processed\n`);
break;
} else {
query._id = {
$gt: users[users.length - 1]._id,
};
}
await Promise.all(users.map(updateUser)); // eslint-disable-line no-await-in-loop
}
};

View File

@@ -1,48 +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: -1667px -1480px; background-position: -1659px -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: -485px -1549px; background-position: -583px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-allThatGlitters2x { .achievement-allThatGlitters2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -853px -1480px; background-position: -715px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-allYourBase2x { .achievement-allYourBase2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -918px -1480px; background-position: -780px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-alpha2x { .achievement-alpha2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -534px -1549px; background-position: -632px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-aridAuthority2x { .achievement-aridAuthority2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -983px -1480px; background-position: -845px -1480px;
width: 64px; width: 64px;
height: 56px; 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: -583px -1549px; background-position: -681px -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: -1373px -1480px; background-position: -1365px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
@@ -54,127 +54,127 @@
} }
.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: -632px -1549px; background-position: -730px -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: -681px -1549px; background-position: -779px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-boneCollector2x { .achievement-boneCollector2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1422px -1480px; background-position: -1414px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.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: -730px -1549px; background-position: -828px -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: -779px -1549px; background-position: -877px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-bugBonanza2x { .achievement-bugBonanza2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -487px -1480px; background-position: -349px -1480px;
width: 60px; width: 60px;
height: 64px; height: 64px;
} }
.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: -828px -1549px; background-position: -926px -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: -877px -1549px; background-position: -975px -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: -926px -1549px; background-position: -1024px -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: -975px -1549px; background-position: -1073px -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: -1024px -1549px; background-position: -1122px -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: -1073px -1549px; background-position: -1171px -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: -1471px -1480px; background-position: -1463px -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: -1122px -1549px; background-position: -1220px -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: -1171px -1549px; background-position: -1269px -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: -1520px -1480px; background-position: -1512px -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: -1220px -1549px; background-position: -1318px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-domesticated2x { .achievement-domesticated2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -548px -1480px; background-position: -410px -1480px;
width: 60px; width: 60px;
height: 64px; height: 64px;
} }
.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: -1569px -1480px; background-position: -1561px -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: -1269px -1549px; background-position: -1367px -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: -1618px -1480px; background-position: -1610px -1480px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
@@ -186,13 +186,13 @@
} }
.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: -1318px -1549px; background-position: -1416px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-getwell2x { .achievement-getwell2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1367px -1549px; background-position: -1465px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -204,31 +204,31 @@
} }
.achievement-goodluck2x { .achievement-goodluck2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1416px -1549px; background-position: -1514px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-greeting2x { .achievement-greeting2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1465px -1549px; background-position: -1563px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-guild2x { .achievement-guild2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1514px -1549px; background-position: -1612px -1549px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-habitBirthday2x { .achievement-habitBirthday2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1563px -1549px; background-position: 0px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-habiticaDay2x { .achievement-habiticaDay2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1612px -1549px; background-position: -49px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -240,25 +240,25 @@
} }
.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: 0px -1628px; background-position: -98px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-justAddWater2x { .achievement-justAddWater2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -609px -1480px; background-position: -471px -1480px;
width: 60px; width: 60px;
height: 64px; height: 64px;
} }
.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: -49px -1628px; background-position: -147px -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: -1667px -1507px; background-position: -1659px -1507px;
width: 24px; width: 24px;
height: 26px; height: 26px;
} }
@@ -270,19 +270,19 @@
} }
.achievement-legendaryBestiary2x { .achievement-legendaryBestiary2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -670px -1480px; background-position: -532px -1480px;
width: 60px; width: 60px;
height: 64px; height: 64px;
} }
.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: -98px -1628px; background-position: -196px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-mindOverMatter2x { .achievement-mindOverMatter2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -731px -1480px; background-position: -593px -1480px;
width: 60px; width: 60px;
height: 64px; height: 64px;
} }
@@ -294,43 +294,43 @@
} }
.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: -147px -1628px; background-position: -245px -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: -196px -1628px; background-position: -294px -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: -245px -1628px; background-position: -343px -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: -294px -1628px; background-position: -392px -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: -343px -1628px; background-position: -441px -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: -1048px -1480px; background-position: -910px -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: -392px -1628px; background-position: -490px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
@@ -348,37 +348,37 @@
} }
.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: -441px -1628px; background-position: -539px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-redLetterDay2x { .achievement-redLetterDay2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1113px -1480px; background-position: -975px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-rosyOutlook2x { .achievement-rosyOutlook2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -349px -1480px; background-position: -1040px -1480px;
width: 68px; width: 64px;
height: 68px; height: 56px;
} }
.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: -490px -1628px; background-position: -588px -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: -539px -1628px; background-position: -637px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }
.achievement-seasonalSpecialist2x { .achievement-seasonalSpecialist2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -792px -1480px; background-position: -654px -1480px;
width: 60px; width: 60px;
height: 64px; height: 64px;
} }
@@ -388,141 +388,153 @@
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-shield2x { .achievement-shadeOfItAll2x {
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: -1105px -1480px;
width: 48px;
height: 52px;
}
.achievement-shinySeed2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -637px -1628px;
width: 48px;
height: 52px;
}
.achievement-skeletonCrew2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1178px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.achievement-snowball2x { .achievement-shadyCustomer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -686px -1628px;
width: 48px;
height: 52px;
}
.achievement-spookySparkles2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -735px -1628px;
width: 48px;
height: 52px;
}
.achievement-stoikalm2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -784px -1628px;
width: 48px;
height: 52px;
}
.achievement-sun2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -833px -1628px;
width: 48px;
height: 52px;
}
.achievement-sword2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -882px -1628px;
width: 48px;
height: 52px;
}
.achievement-thankyou2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -931px -1628px;
width: 48px;
height: 52px;
}
.achievement-thermometer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -980px -1628px;
width: 48px;
height: 52px;
}
.achievement-tickledPink2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -418px -1480px;
width: 68px;
height: 68px;
}
.achievement-tree2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1029px -1628px;
width: 48px;
height: 52px;
}
.achievement-triadbingo2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1078px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-healer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1127px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-mage2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1176px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-rogue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1225px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-warrior2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1274px -1628px;
width: 48px;
height: 52px;
}
.achievement-undeadUndertaker2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1243px -1480px;
width: 64px;
height: 56px;
}
.achievement-unearned2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1323px -1628px;
width: 48px;
height: 52px;
}
.achievement-valentine2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1372px -1628px;
width: 48px;
height: 52px;
}
.achievement-violetsAreBlue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -436px -1549px; background-position: -436px -1549px;
width: 48px; width: 48px;
height: 56px; height: 56px;
} }
.achievement-shield2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -686px -1628px;
width: 48px;
height: 52px;
}
.achievement-shinySeed2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -735px -1628px;
width: 48px;
height: 52px;
}
.achievement-skeletonCrew2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1170px -1480px;
width: 64px;
height: 56px;
}
.achievement-snowball2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -784px -1628px;
width: 48px;
height: 52px;
}
.achievement-spookySparkles2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -833px -1628px;
width: 48px;
height: 52px;
}
.achievement-stoikalm2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -882px -1628px;
width: 48px;
height: 52px;
}
.achievement-sun2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -931px -1628px;
width: 48px;
height: 52px;
}
.achievement-sword2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -980px -1628px;
width: 48px;
height: 52px;
}
.achievement-thankyou2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1029px -1628px;
width: 48px;
height: 52px;
}
.achievement-thermometer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1078px -1628px;
width: 48px;
height: 52px;
}
.achievement-tickledPink2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -485px -1549px;
width: 48px;
height: 56px;
}
.achievement-tree2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1127px -1628px;
width: 48px;
height: 52px;
}
.achievement-triadbingo2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1176px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-healer2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1225px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-mage2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1274px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-rogue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1323px -1628px;
width: 48px;
height: 52px;
}
.achievement-ultimate-warrior2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1372px -1628px;
width: 48px;
height: 52px;
}
.achievement-undeadUndertaker2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1235px -1480px;
width: 64px;
height: 56px;
}
.achievement-unearned2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1421px -1628px;
width: 48px;
height: 52px;
}
.achievement-valentine2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1470px -1628px;
width: 48px;
height: 52px;
}
.achievement-violetsAreBlue2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -534px -1549px;
width: 48px;
height: 56px;
}
.achievement-wildBlueYonder2x { .achievement-wildBlueYonder2x {
background-image: url('~@/assets/images/sprites/spritesmith-main-0.png'); background-image: url('~@/assets/images/sprites/spritesmith-main-0.png');
background-position: -1308px -1480px; background-position: -1300px -1480px;
width: 64px; width: 64px;
height: 56px; height: 56px;
} }
.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: -1421px -1628px; background-position: -1519px -1628px;
width: 48px; width: 48px;
height: 52px; height: 52px;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 KiB

After

Width:  |  Height:  |  Size: 464 KiB

View File

@@ -426,6 +426,22 @@ const NOTIFICATIONS = {
achievement: 'domesticated', achievement: 'domesticated',
}, },
}, },
ACHIEVEMENT_SHADY_CUSTOMER: {
achievement: true,
label: $t => `${$t('achievement')}: ${$t('achievementShadyCustomer')}`,
modalId: 'generic-achievement',
data: {
achievement: 'shadyCustomer',
},
},
ACHIEVEMENT_SHADE_OF_IT_ALL: {
achievement: true,
label: $t => `${$t('achievement')}: ${$t('achievementShadeOfItAll')}`,
modalId: 'generic-achievement',
data: {
achievement: 'shadeOfItAll',
},
},
}; };
export default { export default {
@@ -489,6 +505,7 @@ export default {
'ACHIEVEMENT_BONE_COLLECTOR', 'ACHIEVEMENT_SKELETON_CREW', 'ACHIEVEMENT_SEEING_RED', 'ACHIEVEMENT_BONE_COLLECTOR', 'ACHIEVEMENT_SKELETON_CREW', 'ACHIEVEMENT_SEEING_RED',
'ACHIEVEMENT_RED_LETTER_DAY', 'ACHIEVEMENT_LEGENDARY_BESTIARY', 'ACHIEVEMENT_SEASONAL_SPECIALIST', 'ACHIEVEMENT_RED_LETTER_DAY', 'ACHIEVEMENT_LEGENDARY_BESTIARY', 'ACHIEVEMENT_SEASONAL_SPECIALIST',
'ACHIEVEMENT_VIOLETS_ARE_BLUE', 'ACHIEVEMENT_WILD_BLUE_YONDER', 'ACHIEVEMENT_DOMESTICATED', 'ACHIEVEMENT_VIOLETS_ARE_BLUE', 'ACHIEVEMENT_WILD_BLUE_YONDER', 'ACHIEVEMENT_DOMESTICATED',
'ACHIEVEMENT_SHADY_CUSTOMER', 'ACHIEVEMENT_SHADE_OF_IT_ALL',
].forEach(type => { ].forEach(type => {
handledNotifications[type] = true; handledNotifications[type] = true;
}); });
@@ -920,6 +937,8 @@ export default {
case 'ACHIEVEMENT_VIOLETS_ARE_BLUE': case 'ACHIEVEMENT_VIOLETS_ARE_BLUE':
case 'ACHIEVEMENT_WILD_BLUE_YONDER': case 'ACHIEVEMENT_WILD_BLUE_YONDER':
case 'ACHIEVEMENT_DOMESTICATED': case 'ACHIEVEMENT_DOMESTICATED':
case 'ACHIEVEMENT_SHADY_CUSTOMER':
case 'ACHIEVEMENT_SHADE_OF_IT_ALL':
case 'GENERIC_ACHIEVEMENT': case 'GENERIC_ACHIEVEMENT':
this.showNotificationWithModal(notification); this.showNotificationWithModal(notification);
break; break;

View File

@@ -117,5 +117,11 @@
"achievementWildBlueYonderModalText": "You tamed all the Cotton Candy Blue Mounts!", "achievementWildBlueYonderModalText": "You tamed all the Cotton Candy Blue Mounts!",
"achievementDomesticated": "E-I-E-I-O", "achievementDomesticated": "E-I-E-I-O",
"achievementDomesticatedText": "Has hatched all standard colors of domesticated pets: Ferret, Guinea Pig, Rooster, Flying Pig, Rat, Bunny, Horse, and Cow!", "achievementDomesticatedText": "Has hatched all standard colors of domesticated pets: Ferret, Guinea Pig, Rooster, Flying Pig, Rat, Bunny, Horse, and Cow!",
"achievementDomesticatedModalText": "You collected all the domesticated pets!" "achievementDomesticatedModalText": "You collected all the domesticated pets!",
"achievementShadyCustomer": "Shady Customer",
"achievementShadyCustomerText": "Has collected all Shade Pets.",
"achievementShadyCustomerModalText": "You collected all the Shade Pets!",
"achievementShadeOfItAll": "The Shade of It All",
"achievementShadeOfItAllText": "Has tamed all Shade Mounts.",
"achievementShadeOfItAllModalText": "You tamed all the Shade Mounts!"
} }

View File

@@ -257,6 +257,16 @@ const basicAchievs = {
titleKey: 'achievementDomesticated', titleKey: 'achievementDomesticated',
textKey: 'achievementDomesticatedText', textKey: 'achievementDomesticatedText',
}, },
shadyCustomer: {
icon: 'achievement-shadyCustomer',
titleKey: 'achievementShadyCustomer',
textKey: 'achievementShadyCustomerText',
},
shadeOfItAll: {
icon: 'achievement-shadeOfItAll',
titleKey: 'achievementShadeOfItAll',
textKey: 'achievementShadeOfItAllText',
},
}; };
Object.assign(achievementsData, basicAchievs); Object.assign(achievementsData, basicAchievs);

View File

@@ -62,6 +62,13 @@ const ANIMAL_COLOR_ACHIEVEMENTS = [
mountAchievement: 'wildBlueYonder', mountAchievement: 'wildBlueYonder',
mountNotificationType: 'ACHIEVEMENT_WILD_BLUE_YONDER', mountNotificationType: 'ACHIEVEMENT_WILD_BLUE_YONDER',
}, },
{
color: 'Shade',
petAchievement: 'shadyCustomer',
petNotificationType: 'ACHIEVEMENT_SHADY_CUSTOMER',
mountAchievement: 'shadeOfItAll',
mountNotificationType: 'ACHIEVEMENT_SHADE_OF_IT_ALL',
},
]; ];
export default ANIMAL_COLOR_ACHIEVEMENTS; export default ANIMAL_COLOR_ACHIEVEMENTS;

View File

@@ -213,6 +213,8 @@ function _getBasicAchievements (user, language) {
_addSimple(result, user, { path: 'violetsAreBlue', language }); _addSimple(result, user, { path: 'violetsAreBlue', language });
_addSimple(result, user, { path: 'wildBlueYonder', language }); _addSimple(result, user, { path: 'wildBlueYonder', language });
_addSimple(result, user, { path: 'domesticated', language }); _addSimple(result, user, { path: 'domesticated', language });
_addSimple(result, user, { path: 'shadyCustomer', language });
_addSimple(result, user, { path: 'shadeOfItAll', 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.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

@@ -145,6 +145,8 @@ export default new Schema({
violetsAreBlue: Boolean, violetsAreBlue: Boolean,
wildBlueYonder: Boolean, wildBlueYonder: Boolean,
domesticated: Boolean, domesticated: Boolean,
shadyCustomer: Boolean,
shadeOfItAll: Boolean,
// Onboarding Guide // Onboarding Guide
createdTask: Boolean, createdTask: Boolean,
completedTask: Boolean, completedTask: Boolean,

View File

@@ -68,6 +68,8 @@ const NOTIFICATION_TYPES = [
'ACHIEVEMENT_VIOLETS_ARE_BLUE', 'ACHIEVEMENT_VIOLETS_ARE_BLUE',
'ACHIEVEMENT_WILD_BLUE_YONDER', 'ACHIEVEMENT_WILD_BLUE_YONDER',
'ACHIEVEMENT_DOMESTICATED', 'ACHIEVEMENT_DOMESTICATED',
'ACHIEVEMENT_SHADY_CUSTOMER',
'ACHIEVEMENT_SHADE_OF_IT_ALL',
'ACHIEVEMENT', // generic achievement notification, details inside `notification.data` 'ACHIEVEMENT', // generic achievement notification, details inside `notification.data`
'DROP_CAP_REACHED', 'DROP_CAP_REACHED',
]; ];