diff --git a/habitica-images b/habitica-images index d66a5ea922..e8f76ad308 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit d66a5ea922d91815d4419b718ff38a80e11667f7 +Subproject commit e8f76ad308e256fb65306cfe880cabdc98c818cd diff --git a/package-lock.json b/package-lock.json index 239cceb274..f6cd142c7e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "habitica", - "version": "4.251.0", + "version": "4.252.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 31d5f83242..ede5b90f2a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "habitica", "description": "A habit tracker app which treats your goals like a Role Playing Game.", - "version": "4.251.0", + "version": "4.252.0", "main": "./website/server/index.js", "dependencies": { "@babel/core": "^7.19.6", diff --git a/website/common/locales/en/achievements.json b/website/common/locales/en/achievements.json index b4b577280b..ad43c35688 100644 --- a/website/common/locales/en/achievements.json +++ b/website/common/locales/en/achievements.json @@ -141,5 +141,8 @@ "achievementWoodlandWizardModalText": "You collected all the forest pets!", "achievementBoneToPick": "Bone to Pick", "achievementBoneToPickText": "Has hatched all the Classic and Quest Skeleton Pets!", - "achievementBoneToPickModalText": "You collected all the Classic and Quest Skeleton Pets!" + "achievementBoneToPickModalText": "You collected all the Classic and Quest Skeleton Pets!", + "achievementPolarPro": "Polar Pro", + "achievementPolarProText": "Has hatched all Polar pets: Bear, Fox, Penguin, Whale, and Wolf!", + "achievementPolarProModalText": "You collected all the Polar Pets!" } diff --git a/website/common/script/content/achievements.js b/website/common/script/content/achievements.js index 12849bf637..f9451c33de 100644 --- a/website/common/script/content/achievements.js +++ b/website/common/script/content/achievements.js @@ -183,6 +183,11 @@ const animalSetAchievs = { titleKey: 'achievementDomesticated', textKey: 'achievementDomesticatedText', }, + polarPro: { + icon: 'achievement-polarPro', + titleKey: 'achievementPolarPro', + textKey: 'achievementPolarProText', + }, reptacularRumble: { icon: 'achievement-reptacularRumble', titleKey: 'achievementReptacularRumble', diff --git a/website/common/script/content/constants/animalSetAchievements.js b/website/common/script/content/constants/animalSetAchievements.js index 0c747a0826..51c07fabf3 100644 --- a/website/common/script/content/constants/animalSetAchievements.js +++ b/website/common/script/content/constants/animalSetAchievements.js @@ -41,6 +41,18 @@ const ANIMAL_SET_ACHIEVEMENTS = { achievementKey: 'domesticated', notificationType: 'ACHIEVEMENT_ANIMAL_SET', }, + polarPro: { + type: 'pet', + species: [ + 'BearCub', + 'Fox', + 'Penguin', + 'Whale', + 'Wolf', + ], + achievementKey: 'polarPro', + notificationType: 'ACHIEVEMENT_ANIMAL_SET', + }, reptacularRumble: { type: 'pet', species: [ diff --git a/website/common/script/libs/achievements.js b/website/common/script/libs/achievements.js index 52af6e2ce7..79aecd4c2f 100644 --- a/website/common/script/libs/achievements.js +++ b/website/common/script/libs/achievements.js @@ -220,6 +220,7 @@ function _getBasicAchievements (user, language) { _addSimple(result, user, { path: 'reptacularRumble', language }); _addSimple(result, user, { path: 'woodlandWizard', language }); _addSimple(result, user, { path: 'boneToPick', language }); + _addSimple(result, user, { path: 'polarPro', language }); _addSimpleWithMasterCount(result, user, { path: 'beastMaster', language }); _addSimpleWithMasterCount(result, user, { path: 'mountMaster', language }); diff --git a/website/server/models/user/schema.js b/website/server/models/user/schema.js index 4afe7a1ae8..0f47a975d9 100644 --- a/website/server/models/user/schema.js +++ b/website/server/models/user/schema.js @@ -152,6 +152,7 @@ export default new Schema({ reptacularRumble: Boolean, woodlandWizard: Boolean, boneToPick: Boolean, + polarPro: Boolean, // Onboarding Guide createdTask: Boolean, completedTask: Boolean,