feat(content): bundle and cheevo

This commit is contained in:
Sabe Jones
2021-02-16 17:00:39 -06:00
parent 0fad23ad80
commit ee1f95bb67
16 changed files with 321 additions and 136 deletions

View File

@@ -59,25 +59,57 @@ export default function hatch (user, req = {}, analytics) {
checkOnboardingStatus(user, req, analytics);
}
forEach(content.animalColorAchievements, achievement => {
if (!user.achievements[achievement.petAchievement]) {
const petIndex = findIndex(
keys(content.dropEggs),
animal => !user.items.pets[`${animal}-${achievement.color}`] || user.items.pets[`${animal}-${achievement.color}`] <= 0,
);
if (petIndex === -1) {
user.achievements[achievement.petAchievement] = true;
if (user.addNotification) {
const achievementString = `achievement${upperFirst(achievement.petAchievement)}`;
user.addNotification(achievement.petNotificationType, {
achievement: achievement.petAchievement,
message: `${i18n.t('modalAchievement')} ${i18n.t(achievementString)}`,
modalText: i18n.t(`${achievementString}ModalText`),
});
if (content.dropEggs[egg]) {
forEach(content.animalColorAchievements, achievement => {
if (hatchingPotion !== achievement.color) return;
if (!user.achievements[achievement.petAchievement]) {
const petIndex = findIndex(
keys(content.dropEggs),
animal => !user.items.pets[`${animal}-${achievement.color}`] || user.items.pets[`${animal}-${achievement.color}`] <= 0,
);
if (petIndex === -1) {
user.achievements[achievement.petAchievement] = true;
if (user.addNotification) {
const achievementString = `achievement${upperFirst(achievement.petAchievement)}`;
user.addNotification(achievement.petNotificationType, {
achievement: achievement.petAchievement,
message: `${i18n.t('modalAchievement')} ${i18n.t(achievementString)}`,
modalText: i18n.t(`${achievementString}ModalText`),
});
}
}
}
}
});
});
}
if (content.dropHatchingPotions[hatchingPotion]) {
forEach(content.animalSetAchievements, achievement => {
if (!user.achievements[achievement.achievementKey]) {
if (achievement.type === 'pet') {
let achieved = true;
forEach(achievement.species, species => {
if (!achieved) return;
const petIndex = findIndex(
keys(content.dropHatchingPotions),
color => !user.items.pets[`${species}-${color}`],
);
if (petIndex !== -1) achieved = false;
});
if (achieved) {
user.achievements[achievement.achievementKey] = true;
if (user.addNotification) {
const achievementString = `achievement${upperFirst(achievement.achievementKey)}`;
user.addNotification(achievement.notificationType, {
achievement: achievement.achievementKey,
message: `${i18n.t('modalAchievement')} ${i18n.t(achievementString)}`,
modalText: i18n.t(`${achievementString}ModalText`),
});
}
}
}
}
});
}
if (analytics && moment().diff(user.auth.timestamps.created, 'days') < 7) {
analytics.track('pet hatch', {