mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
May 2024 Content Prebuild (#15185)
* 2024-05 css update * add May subscriber items, enchanted armoire (text placeholders), potions, and quest bundles * typo correction * add May achievement * content fixes after local testing * canonical date fix * fix potion descriptions, add periods to background descriptions * fix canonical date * updated armoire items * fix stat display on item * Fixing merge conflicts * resolve merge conflicts * add leading zero to mp drain for mushroom quest * fix timezones * proofreading pass * fix linting errors * date fixes & linter fixes * correct armoire expression at end of file * fix(autolint): roll back Prettier change --------- Co-authored-by: Sabe Jones <sabe@habitica.com>
This commit is contained in:
99
migrations/archive/2024/20240516_pet_group_achievements.js
Normal file
99
migrations/archive/2024/20240516_pet_group_achievements.js
Normal file
@@ -0,0 +1,99 @@
|
|||||||
|
/* eslint-disable no-console */
|
||||||
|
const MIGRATION_NAME = '202405_pet_group_achievements';
|
||||||
|
import { model as User } from '../../../website/server/models/user';
|
||||||
|
|
||||||
|
const progressCount = 1000;
|
||||||
|
let count = 0;
|
||||||
|
|
||||||
|
async function updateUser (user) {
|
||||||
|
count++;
|
||||||
|
|
||||||
|
let set = {
|
||||||
|
migration: MIGRATION_NAME,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (user && user.items && user.items.pets) {
|
||||||
|
const pets = user.items.pets;
|
||||||
|
if (pets['LionCub-Zombie'] > 0
|
||||||
|
&& pets['LionCub-Skeleton'] > 0
|
||||||
|
&& pets['LionCub-Base'] > 0
|
||||||
|
&& pets['LionCub-Desert'] > 0
|
||||||
|
&& pets['LionCub-Red'] > 0
|
||||||
|
&& pets['LionCub-Shade'] > 0
|
||||||
|
&& pets['LionCub-White']> 0
|
||||||
|
&& pets['LionCub-Golden'] > 0
|
||||||
|
&& pets['LionCub-CottonCandyBlue'] > 0
|
||||||
|
&& pets['LionCub-CottonCandyPink'] > 0
|
||||||
|
&& pets['TigerCub-Zombie'] > 0
|
||||||
|
&& pets['TigerCub-Skeleton'] > 0
|
||||||
|
&& pets['TigerCub-Base'] > 0
|
||||||
|
&& pets['TigerCub-Desert'] > 0
|
||||||
|
&& pets['TigerCub-Red'] > 0
|
||||||
|
&& pets['TigerCub-Shade'] > 0
|
||||||
|
&& pets['TigerCub-White'] > 0
|
||||||
|
&& pets['TigerCub-Golden'] > 0
|
||||||
|
&& pets['TigerCub-CottonCandyBlue'] > 0
|
||||||
|
&& pets['TigerCub-CottonCandyPink'] > 0
|
||||||
|
&& pets['Sabretooth-Zombie'] > 0
|
||||||
|
&& pets['Sabretooth-Skeleton'] > 0
|
||||||
|
&& pets['Sabretooth-Base'] > 0
|
||||||
|
&& pets['Sabretooth-Desert'] > 0
|
||||||
|
&& pets['Sabretooth-Red'] > 0
|
||||||
|
&& pets['Sabretooth-Shade'] > 0
|
||||||
|
&& pets['Sabretooth-White'] > 0
|
||||||
|
&& pets['Sabretooth-Golden'] > 0
|
||||||
|
&& pets['Sabretooth-CottonCandyBlue'] > 0
|
||||||
|
&& pets['Sabretooth-CottonCandyPink'] > 0
|
||||||
|
&& pets['Cheetah-Zombie'] > 0
|
||||||
|
&& pets['Cheetah-Skeleton'] > 0
|
||||||
|
&& pets['Cheetah-Base'] > 0
|
||||||
|
&& pets['Cheetah-Desert'] > 0
|
||||||
|
&& pets['Cheetah-Red'] > 0
|
||||||
|
&& pets['Cheetah-Shade'] > 0
|
||||||
|
&& pets['Cheetah-White'] > 0
|
||||||
|
&& pets['Cheetah-Golden'] > 0
|
||||||
|
&& pets['Cheetah-CottonCandyBlue'] > 0
|
||||||
|
&& pets['Cheetah-CottonCandyPink'] > 0 ) {
|
||||||
|
set['achievements.cats'] = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (count % progressCount === 0) console.warn(`${count} ${user._id}`);
|
||||||
|
|
||||||
|
return await User.updateOne({ _id: user._id }, { $set: set }).exec();
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function processUsers () {
|
||||||
|
let query = {
|
||||||
|
migration: { $ne: MIGRATION_NAME },
|
||||||
|
'auth.timestamps.loggedin': { $gt: new Date('2024-03-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
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -103,6 +103,11 @@
|
|||||||
width: 48px;
|
width: 48px;
|
||||||
height: 52px;
|
height: 52px;
|
||||||
}
|
}
|
||||||
|
.achievement-cats2x {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-cats2x.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.achievement-cave2x {
|
.achievement-cave2x {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-cave2x.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/achievement-cave2x.png');
|
||||||
width: 48px;
|
width: 48px;
|
||||||
@@ -975,6 +980,11 @@
|
|||||||
width: 141px;
|
width: 141px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
|
.background_dragons_back {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_dragons_back.png');
|
||||||
|
width: 141px;
|
||||||
|
height: 147px;
|
||||||
|
}
|
||||||
.background_dragons_lair {
|
.background_dragons_lair {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_dragons_lair.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_dragons_lair.png');
|
||||||
width: 141px;
|
width: 141px;
|
||||||
@@ -1600,6 +1610,11 @@
|
|||||||
width: 141px;
|
width: 141px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
|
.background_maypole {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_maypole.png');
|
||||||
|
width: 141px;
|
||||||
|
height: 147px;
|
||||||
|
}
|
||||||
.background_meandering_cave {
|
.background_meandering_cave {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_meandering_cave.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_meandering_cave.png');
|
||||||
width: 141px;
|
width: 141px;
|
||||||
@@ -1770,6 +1785,11 @@
|
|||||||
width: 141px;
|
width: 141px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
|
.background_potters_studio {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_potters_studio.png');
|
||||||
|
width: 141px;
|
||||||
|
height: 147px;
|
||||||
|
}
|
||||||
.background_productivity_plaza {
|
.background_productivity_plaza {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_productivity_plaza.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_productivity_plaza.png');
|
||||||
width: 141px;
|
width: 141px;
|
||||||
@@ -2853,6 +2873,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.icon_background_dragons_back {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_dragons_back.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.icon_background_dragons_lair {
|
.icon_background_dragons_lair {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_dragons_lair.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_dragons_lair.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -3478,6 +3503,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.icon_background_maypole {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_maypole.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.icon_background_meandering_cave {
|
.icon_background_meandering_cave {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_meandering_cave.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_meandering_cave.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -3648,6 +3678,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.icon_background_potters_studio {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_potters_studio.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.icon_background_productivity_plaza {
|
.icon_background_productivity_plaza {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_productivity_plaza.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/icon_background_productivity_plaza.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -19144,6 +19179,11 @@
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
|
.broad_armor_armoire_pottersApron {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_pottersApron.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
.broad_armor_armoire_ramFleeceRobes {
|
.broad_armor_armoire_ramFleeceRobes {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_ramFleeceRobes.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_ramFleeceRobes.png');
|
||||||
width: 90px;
|
width: 90px;
|
||||||
@@ -19694,6 +19734,11 @@
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
|
.head_armoire_pottersBandana {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_pottersBandana.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
.head_armoire_purpleSpookySorceryHat {
|
.head_armoire_purpleSpookySorceryHat {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_purpleSpookySorceryHat.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_purpleSpookySorceryHat.png');
|
||||||
width: 114px;
|
width: 114px;
|
||||||
@@ -20174,6 +20219,11 @@
|
|||||||
width: 114px;
|
width: 114px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
|
.shield_armoire_thrownVessel {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_thrownVessel.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
.shield_armoire_treasureMap {
|
.shield_armoire_treasureMap {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_treasureMap.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_treasureMap.png');
|
||||||
width: 114px;
|
width: 114px;
|
||||||
@@ -20544,6 +20594,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.shop_armor_armoire_pottersApron {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_pottersApron.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.shop_armor_armoire_ramFleeceRobes {
|
.shop_armor_armoire_ramFleeceRobes {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_ramFleeceRobes.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_armor_armoire_ramFleeceRobes.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -21154,6 +21209,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.shop_head_armoire_pottersBandana {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_pottersBandana.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.shop_head_armoire_purpleSpookySorceryHat {
|
.shop_head_armoire_purpleSpookySorceryHat {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_purpleSpookySorceryHat.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_head_armoire_purpleSpookySorceryHat.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -21634,6 +21694,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.shop_shield_armoire_thrownVessel {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_thrownVessel.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.shop_shield_armoire_treasureMap {
|
.shop_shield_armoire_treasureMap {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_treasureMap.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_shield_armoire_treasureMap.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -22059,6 +22124,11 @@
|
|||||||
width: 68px;
|
width: 68px;
|
||||||
height: 68px;
|
height: 68px;
|
||||||
}
|
}
|
||||||
|
.shop_weapon_armoire_pottersWheel {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_armoire_pottersWheel.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.shop_weapon_armoire_pushBroom {
|
.shop_weapon_armoire_pushBroom {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_armoire_pushBroom.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_weapon_armoire_pushBroom.png');
|
||||||
width: 68px;
|
width: 68px;
|
||||||
@@ -22504,6 +22574,11 @@
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
|
.slim_armor_armoire_pottersApron {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_pottersApron.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
.slim_armor_armoire_ramFleeceRobes {
|
.slim_armor_armoire_ramFleeceRobes {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_ramFleeceRobes.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_ramFleeceRobes.png');
|
||||||
width: 90px;
|
width: 90px;
|
||||||
@@ -23064,6 +23139,11 @@
|
|||||||
width: 114px;
|
width: 114px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
|
.weapon_armoire_pottersWheel {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_pottersWheel.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
.weapon_armoire_pushBroom {
|
.weapon_armoire_pushBroom {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_pushBroom.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_pushBroom.png');
|
||||||
width: 114px;
|
width: 114px;
|
||||||
@@ -29344,6 +29424,31 @@
|
|||||||
width: 114px;
|
width: 114px;
|
||||||
height: 90px;
|
height: 90px;
|
||||||
}
|
}
|
||||||
|
.back_mystery_202405 {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_202405.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
|
.headAccessory_mystery_202405 {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/headAccessory_mystery_202405.png');
|
||||||
|
width: 114px;
|
||||||
|
height: 90px;
|
||||||
|
}
|
||||||
|
.shop_back_mystery_202405 {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_back_mystery_202405.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
|
.shop_headAccessory_mystery_202405 {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_headAccessory_mystery_202405.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
|
.shop_set_mystery_202405 {
|
||||||
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shop_set_mystery_202405.png');
|
||||||
|
width: 68px;
|
||||||
|
height: 68px;
|
||||||
|
}
|
||||||
.broad_armor_mystery_301404 {
|
.broad_armor_mystery_301404 {
|
||||||
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
|
background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_301404.png');
|
||||||
width: 90px;
|
width: 90px;
|
||||||
|
|||||||
@@ -135,7 +135,7 @@
|
|||||||
"achievementReptacularRumbleModalText": "You collected all the reptile pets!",
|
"achievementReptacularRumbleModalText": "You collected all the reptile pets!",
|
||||||
"achievementGroupsBeta2022": "Interactive Beta Tester",
|
"achievementGroupsBeta2022": "Interactive Beta Tester",
|
||||||
"achievementGroupsBeta2022Text": "You and your group provided invaluable feedback to help Habitica test.",
|
"achievementGroupsBeta2022Text": "You and your group provided invaluable feedback to help Habitica test.",
|
||||||
"achievementGroupsBeta2022ModalText":"You and your groups helped Habitica by testing and providing feedback!",
|
"achievementGroupsBeta2022ModalText": "You and your groups helped Habitica by testing and providing feedback!",
|
||||||
"achievementWoodlandWizard": "Woodland Wizard",
|
"achievementWoodlandWizard": "Woodland Wizard",
|
||||||
"achievementWoodlandWizardText": "Has hatched all standard colors of forest creatures: Badger, Bear, Deer, Fox, Frog, Hedgehog, Owl, Snail, Squirrel, and Treeling!",
|
"achievementWoodlandWizardText": "Has hatched all standard colors of forest creatures: Badger, Bear, Deer, Fox, Frog, Hedgehog, Owl, Snail, Squirrel, and Treeling!",
|
||||||
"achievementWoodlandWizardModalText": "You collected all the forest pets!",
|
"achievementWoodlandWizardModalText": "You collected all the forest pets!",
|
||||||
@@ -162,6 +162,8 @@
|
|||||||
"achievementRoughRiderModalText": "You collected all the basic colors of the uncomfortable pets and mounts!",
|
"achievementRoughRiderModalText": "You collected all the basic colors of the uncomfortable pets and mounts!",
|
||||||
"achievementRodentRuler": "Rodent Ruler",
|
"achievementRodentRuler": "Rodent Ruler",
|
||||||
"achievementRodentRulerText": "Has hatched all standard colors of rodent pets: Guinea Pig, Rat, and Squirrel!",
|
"achievementRodentRulerText": "Has hatched all standard colors of rodent pets: Guinea Pig, Rat, and Squirrel!",
|
||||||
"achievementRodentRulerModalText": "You collected all the rodent pets!"
|
"achievementRodentRulerModalText": "You collected all the rodent pets!",
|
||||||
|
"achievementCats": "Cat Herder",
|
||||||
|
"achievementCatsText": "Has hatched all the standard colors of cat pets: Cheetah, Lion, Sabretooth, and Tiger!",
|
||||||
|
"achievementCatsModalText": "You collected all the cat pets!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -969,7 +969,15 @@
|
|||||||
"backgroundWallFloweringVinesText": "Wall with Flowering Vines",
|
"backgroundWallFloweringVinesText": "Wall with Flowering Vines",
|
||||||
"backgroundWallFloweringVinesNotes": "Hang out by a wall of Flowering Vines.",
|
"backgroundWallFloweringVinesNotes": "Hang out by a wall of Flowering Vines.",
|
||||||
"backgroundContainerGardenText": "Container Garden",
|
"backgroundContainerGardenText": "Container Garden",
|
||||||
"backgroundContainerGardenNotes": "Get your hands dirty wth the Container Garden.",
|
"backgroundContainerGardenNotes": "Get your hands dirty wth the Container Garden.",
|
||||||
|
|
||||||
|
"backgrounds052024": "SET 120: Released May 2024",
|
||||||
|
"backgroundDragonsBackText": "Dragon's Back",
|
||||||
|
"backgroundDragonsBackNotes": "Sail the sky on a Dragon's Back.",
|
||||||
|
"backgroundMaypoleText": "Maypole",
|
||||||
|
"backgroundMaypoleNotes": "Dance around a merry Maypole.",
|
||||||
|
"backgroundPottersStudioText": "Potter's Studio",
|
||||||
|
"backgroundPottersStudioNotes": "Create art in the Potter's Studio.",
|
||||||
|
|
||||||
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
||||||
"backgroundAirshipText": "Airship",
|
"backgroundAirshipText": "Airship",
|
||||||
|
|||||||
@@ -754,7 +754,9 @@
|
|||||||
"weaponArmoireHattersShearsText": "Sharp Shears",
|
"weaponArmoireHattersShearsText": "Sharp Shears",
|
||||||
"weaponArmoireHattersShearsNotes": "Cut right through overwhelm and complications. These shears do a great job cutting fabric, as well, of course. Increases Strength by <%= str %>. Enchanted Armoire: Hatter Set (Item 3 of 4).",
|
"weaponArmoireHattersShearsNotes": "Cut right through overwhelm and complications. These shears do a great job cutting fabric, as well, of course. Increases Strength by <%= str %>. Enchanted Armoire: Hatter Set (Item 3 of 4).",
|
||||||
"weaponArmoireOptimistsCloverText": "Four-leaf Clover",
|
"weaponArmoireOptimistsCloverText": "Four-leaf Clover",
|
||||||
"weaponArmoireOptimistsCloverNotes": "Well, would you look at what you found? It never hurts to have just a little extra good luck on your side. Increases Strength and Constitution by <%= attrs %> each. Enchanted Armoire: Optimist Set (Item 4 of 4).",
|
"weaponArmoireOptimistsCloverNotes": "Well, would you look at what you found? It never hurts to have just a little extra good luck on your side. Increases Strength and Constitution by <%= attrs %> each. Enchanted Armoire: Optimist Set (Item 4 of 4).",
|
||||||
|
"weaponArmoirePottersWheelText": "Potter's Wheel",
|
||||||
|
"weaponArmoirePottersWheelNotes": "Throw some clay on this wheel and make a bowl or a mug or a vase or a slightly different bowl. If you're lucky, a ghost might visit while you create! Increases Perception by <%= per %>. Enchanted Armoire: Potter Set (Item 4 of 4).",
|
||||||
|
|
||||||
"armor": "armor",
|
"armor": "armor",
|
||||||
"armorCapitalized": "Armor",
|
"armorCapitalized": "Armor",
|
||||||
@@ -1584,7 +1586,8 @@
|
|||||||
"armorArmoireHattersSuitNotes": "Your outfit isn’t complete without your lucky green bowtie. Wear this to your next mad tea party. Or pleasant tea party. Or excited tea party. Or... Increases Constitution by <%= con %>. Enchanted Armoire: Hatter Set (Item 2 of 4).",
|
"armorArmoireHattersSuitNotes": "Your outfit isn’t complete without your lucky green bowtie. Wear this to your next mad tea party. Or pleasant tea party. Or excited tea party. Or... Increases Constitution by <%= con %>. Enchanted Armoire: Hatter Set (Item 2 of 4).",
|
||||||
"armorArmoireSmileyShirtText": "Smiley Face Shirt",
|
"armorArmoireSmileyShirtText": "Smiley Face Shirt",
|
||||||
"armorArmoireSmileyShirtNotes": "Because you’re happy! Show the world you’re all smiles today. Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Optimist Set (Item 1 of 4).",
|
"armorArmoireSmileyShirtNotes": "Because you’re happy! Show the world you’re all smiles today. Increases Intelligence and Perception by <%= attrs %> each. Enchanted Armoire: Optimist Set (Item 1 of 4).",
|
||||||
|
"armorArmoirePottersApronText": "Potter's Apron",
|
||||||
|
"armorArmoirePottersApronNotes": "You came prepared with tools of the trade. Good thing you wore this apron. It has pockets! Increases Strength by <%= str %>. Enchanted Armoire: Potter Set (Item 1 of 4).",
|
||||||
|
|
||||||
"headgear": "helm",
|
"headgear": "helm",
|
||||||
"headgearCapitalized": "Headgear",
|
"headgearCapitalized": "Headgear",
|
||||||
@@ -2431,6 +2434,8 @@
|
|||||||
"headArmoireWhiteFloppyHatNotes": "Many spells have been sewn into this simple hat, giving it a wondrous white color. Increases Strength, Intelligence, and Constitution by <%= attrs %> each. Enchanted Armoire: White Loungewear Set (Item 1 of 3).",
|
"headArmoireWhiteFloppyHatNotes": "Many spells have been sewn into this simple hat, giving it a wondrous white color. Increases Strength, Intelligence, and Constitution by <%= attrs %> each. Enchanted Armoire: White Loungewear Set (Item 1 of 3).",
|
||||||
"headArmoireHattersTopHatText": "Hatter's Top Hat",
|
"headArmoireHattersTopHatText": "Hatter's Top Hat",
|
||||||
"headArmoireHattersTopHatNotes": "Our hats are off to you, and yours is on! What’s hidden in your hat is anybody’s guess (but we’re hoping it’s a bunny). Increases Perception by <%= per %>. Enchanted Armoire: Hatter Set (Item 1 of 4).",
|
"headArmoireHattersTopHatNotes": "Our hats are off to you, and yours is on! What’s hidden in your hat is anybody’s guess (but we’re hoping it’s a bunny). Increases Perception by <%= per %>. Enchanted Armoire: Hatter Set (Item 1 of 4).",
|
||||||
|
"headArmoirePottersBandanaText": "Bandana",
|
||||||
|
"headArmoirePottersBandanaNotes": "Look the part and keep your hair out of your face while you work. It’s a win-win! Increases Intelligence by <%= int %>. Enchanted Armoire: Potter Set (Item 2 of 4).",
|
||||||
|
|
||||||
"offhand": "off-hand item",
|
"offhand": "off-hand item",
|
||||||
"offHandCapitalized": "Off-Hand Item",
|
"offHandCapitalized": "Off-Hand Item",
|
||||||
@@ -2884,6 +2889,8 @@
|
|||||||
"shieldArmoireHattersPocketWatchNotes": "Don’t be late for a very important date! Check your pocketwatch and your notifications often. Increases Intelligence by <%= int %>. Enchanted Armoire: Hatter Set (Item 4 of 4).",
|
"shieldArmoireHattersPocketWatchNotes": "Don’t be late for a very important date! Check your pocketwatch and your notifications often. Increases Intelligence by <%= int %>. Enchanted Armoire: Hatter Set (Item 4 of 4).",
|
||||||
"shieldArmoireHappyThoughtsText": "Happy Thoughts",
|
"shieldArmoireHappyThoughtsText": "Happy Thoughts",
|
||||||
"shieldArmoireHappyThoughtsNotes": "Whether you're remembering a joyful moment from your past or imagining the best outcome for the future, always look on the bright side of life. Increases all stats by <%= attrs %> each. Enchanted Armoire: Optimist Set (Item 3 of 4).",
|
"shieldArmoireHappyThoughtsNotes": "Whether you're remembering a joyful moment from your past or imagining the best outcome for the future, always look on the bright side of life. Increases all stats by <%= attrs %> each. Enchanted Armoire: Optimist Set (Item 3 of 4).",
|
||||||
|
"shieldArmoireThrownVesselText": "Thrown Vessel",
|
||||||
|
"shieldArmoireThrownVesselNotes": "You know what they say: practice makes progress. And this is the best one you’ve made so far! Increases Constitution by <%= con %>. Enchanted Armoire: Potter Set (Item 3 of 4).",
|
||||||
|
|
||||||
"back": "Back Accessory",
|
"back": "Back Accessory",
|
||||||
"backBase0Text": "No Back Accessory",
|
"backBase0Text": "No Back Accessory",
|
||||||
@@ -2962,6 +2969,8 @@
|
|||||||
"backMystery202401Notes": "Conjure softly falling flurries or call a mighty blizzard. The choice is yours! Confers no benefit. January 2024 Subscriber Item.",
|
"backMystery202401Notes": "Conjure softly falling flurries or call a mighty blizzard. The choice is yours! Confers no benefit. January 2024 Subscriber Item.",
|
||||||
"backMystery202402Text": "Paradise Pink Hearts",
|
"backMystery202402Text": "Paradise Pink Hearts",
|
||||||
"backMystery202402Notes": "Let an aura of loving energy surround you wherever you go! Confers no benefit. February 2024 Subscriber Item.",
|
"backMystery202402Notes": "Let an aura of loving energy surround you wherever you go! Confers no benefit. February 2024 Subscriber Item.",
|
||||||
|
"backMystery202405Text": "Gilded Drake Wings",
|
||||||
|
"backMystery202405Notes": "These magnificent wings have the glow of pure gold but are as light as a feather. Confers no benefit. May 2024 Subscriber Item.",
|
||||||
|
|
||||||
"backSpecialWonderconRedText": "Mighty Cape",
|
"backSpecialWonderconRedText": "Mighty Cape",
|
||||||
"backSpecialWonderconRedNotes": "Swishes with strength and beauty. Confers no benefit. Special Edition Convention Item.",
|
"backSpecialWonderconRedNotes": "Swishes with strength and beauty. Confers no benefit. Special Edition Convention Item.",
|
||||||
@@ -3203,6 +3212,8 @@
|
|||||||
"headAccessoryMystery202309Notes": "These antennae are fashionable and feathery, but also help you navigate! Confers no benefit. September 2023 Subscriber Item.",
|
"headAccessoryMystery202309Notes": "These antennae are fashionable and feathery, but also help you navigate! Confers no benefit. September 2023 Subscriber Item.",
|
||||||
"headAccessoryMystery202310Text": "Crown of Ghostly Lights",
|
"headAccessoryMystery202310Text": "Crown of Ghostly Lights",
|
||||||
"headAccessoryMystery202310Notes": "Like a will-o'-the-wisp, these unearthly lights may lure curious souls to their doom. Confers no benefit. October 2023 Subscriber Item.",
|
"headAccessoryMystery202310Notes": "Like a will-o'-the-wisp, these unearthly lights may lure curious souls to their doom. Confers no benefit. October 2023 Subscriber Item.",
|
||||||
|
"headAccessoryMystery202405Text": "Gilded Drake Horns",
|
||||||
|
"headAccessoryMystery202405Notes": "The metallic sheen of these fine horns reflects the dancing colors of dragon fire. Confers no benefit. May 2024 Subscriber Item.",
|
||||||
|
|
||||||
"headAccessoryMystery301405Text": "Headwear Goggles",
|
"headAccessoryMystery301405Text": "Headwear Goggles",
|
||||||
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
|
"headAccessoryMystery301405Notes": "\"Goggles are for your eyes,\" they said. \"Nobody wants goggles that you can only wear on your head,\" they said. Hah! You sure showed them! Confers no benefit. August 3015 Subscriber Item.",
|
||||||
|
|||||||
@@ -161,6 +161,7 @@
|
|||||||
"mysterySet202402": "Paradise Pink Set",
|
"mysterySet202402": "Paradise Pink Set",
|
||||||
"mysterySet202403": "Lucky Legend Set",
|
"mysterySet202403": "Lucky Legend Set",
|
||||||
"mysterySet202404": "Mycelial Magus Set",
|
"mysterySet202404": "Mycelial Magus Set",
|
||||||
|
"mysterySet202405": "Gilded Dragon Set",
|
||||||
"mysterySet301404": "Steampunk Standard Set",
|
"mysterySet301404": "Steampunk Standard Set",
|
||||||
"mysterySet301405": "Steampunk Accessories Set",
|
"mysterySet301405": "Steampunk Accessories Set",
|
||||||
"mysterySet301703": "Peacock Steampunk Set",
|
"mysterySet301703": "Peacock Steampunk Set",
|
||||||
|
|||||||
@@ -183,6 +183,12 @@ const animalSetAchievs = {
|
|||||||
titleKey: 'achievementBonelessBoss',
|
titleKey: 'achievementBonelessBoss',
|
||||||
textKey: 'achievementBonelessBossText',
|
textKey: 'achievementBonelessBossText',
|
||||||
},
|
},
|
||||||
|
cats: {
|
||||||
|
icon: 'achievement-cats',
|
||||||
|
titleKey: 'achievementCats',
|
||||||
|
textKey: 'achievementCatsText',
|
||||||
|
release: '2024-05-16T08:00-04:00',
|
||||||
|
},
|
||||||
dinosaurDynasty: {
|
dinosaurDynasty: {
|
||||||
icon: 'achievement-dinosaurDynasty',
|
icon: 'achievement-dinosaurDynasty',
|
||||||
titleKey: 'achievementDinosaurDynasty',
|
titleKey: 'achievementDinosaurDynasty',
|
||||||
|
|||||||
@@ -617,6 +617,11 @@ const plannedBackgrounds = {
|
|||||||
wall_flowering_vines: { },
|
wall_flowering_vines: { },
|
||||||
container_garden: { },
|
container_garden: { },
|
||||||
},
|
},
|
||||||
|
backgrounds052024: {
|
||||||
|
dragons_back: { },
|
||||||
|
maypole: { },
|
||||||
|
potters_studio: { },
|
||||||
|
},
|
||||||
eventBackgrounds: {
|
eventBackgrounds: {
|
||||||
birthday_bash: {
|
birthday_bash: {
|
||||||
price: 0,
|
price: 0,
|
||||||
@@ -666,7 +671,8 @@ const releaseDates = {
|
|||||||
backgrounds012024: '2024-01-04T08:00-05:00',
|
backgrounds012024: '2024-01-04T08:00-05:00',
|
||||||
backgrounds022024: '2024-02-06T08:00-05:00',
|
backgrounds022024: '2024-02-06T08:00-05:00',
|
||||||
backgrounds032024: '2024-03-05T08:00-05:00',
|
backgrounds032024: '2024-03-05T08:00-05:00',
|
||||||
backgrounds042024: '2023-04-04T00:00-04:00',
|
backgrounds042024: '2024-04-04T08:00-04:00',
|
||||||
|
backgrounds052024: '2024-05-07T08:00-04:00',
|
||||||
};
|
};
|
||||||
|
|
||||||
const flat = {};
|
const flat = {};
|
||||||
|
|||||||
@@ -222,14 +222,15 @@ const bundles = {
|
|||||||
delightfulDinos: {
|
delightfulDinos: {
|
||||||
key: 'delightfulDinos',
|
key: 'delightfulDinos',
|
||||||
text: t('delightfulDinosText'),
|
text: t('delightfulDinosText'),
|
||||||
notes: t('delightfulDinosNotes', { date: moment('2022-05-31').format('LL') }), // needs update next time its run
|
notes: t('delightfulDinosNotes', { date: moment(EVENTS.bundle202405.end).format('LL') }),
|
||||||
bundleKeys: [
|
bundleKeys: [
|
||||||
'pterodactyl',
|
'pterodactyl',
|
||||||
'triceratops',
|
'triceratops',
|
||||||
'trex_undead',
|
'trex_undead',
|
||||||
],
|
],
|
||||||
|
event: EVENTS.bundle202405,
|
||||||
canBuy () {
|
canBuy () {
|
||||||
return moment().isBetween('2022-05-16', '2022-05-31');
|
return moment().isBetween(EVENTS.bundle202405.start, EVENTS.bundle202405.end);
|
||||||
},
|
},
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
value: 7,
|
value: 7,
|
||||||
|
|||||||
@@ -40,6 +40,17 @@ const ANIMAL_SET_ACHIEVEMENTS = {
|
|||||||
achievementKey: 'bonelessBoss',
|
achievementKey: 'bonelessBoss',
|
||||||
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||||
},
|
},
|
||||||
|
cats: {
|
||||||
|
type: 'pet',
|
||||||
|
species: [
|
||||||
|
'Cheetah',
|
||||||
|
'LionCub',
|
||||||
|
'Sabretooth',
|
||||||
|
'TigerCub',
|
||||||
|
],
|
||||||
|
achievementKey: 'cats',
|
||||||
|
notificationType: 'ACHIEVEMENT_ANIMAL_SET',
|
||||||
|
},
|
||||||
dinosaurDynasty: {
|
dinosaurDynasty: {
|
||||||
type: 'pet',
|
type: 'pet',
|
||||||
species: [
|
species: [
|
||||||
|
|||||||
@@ -11,14 +11,23 @@ const gemsPromo = {
|
|||||||
export const EVENTS = {
|
export const EVENTS = {
|
||||||
noEvent: {
|
noEvent: {
|
||||||
start: '2024-05-01T00:00-04:00',
|
start: '2024-05-01T00:00-04:00',
|
||||||
end: '2024-06-20T23:59-04:00',
|
end: '2024-05-13T23:59-04:00',
|
||||||
season: 'normal',
|
season: 'normal',
|
||||||
npcImageSuffix: '',
|
npcImageSuffix: '',
|
||||||
},
|
},
|
||||||
|
bundle202405: {
|
||||||
|
start: '2024-05-21T08:00-04:00',
|
||||||
|
end: '2024-05-31T23:59-04:00',
|
||||||
|
},
|
||||||
|
potions202405: {
|
||||||
|
start: '2024-05-14T08:00-04:00',
|
||||||
|
end: '2024-05-31T23:59-04:00',
|
||||||
|
},
|
||||||
aprilFoolsQuest2024: {
|
aprilFoolsQuest2024: {
|
||||||
start: '2024-04-09T08:00-04:00',
|
start: '2024-04-09T08:00-04:00',
|
||||||
end: '2024-04-30T23:59-04:00',
|
end: '2024-04-30T23:59-04:00',
|
||||||
},
|
},
|
||||||
|
|
||||||
aprilFools2024: {
|
aprilFools2024: {
|
||||||
start: '2024-04-01T00:00-04:00',
|
start: '2024-04-01T00:00-04:00',
|
||||||
end: '2024-04-02T08:00-04:00',
|
end: '2024-04-02T08:00-04:00',
|
||||||
@@ -115,16 +124,16 @@ export const EVENTS = {
|
|||||||
gear: true,
|
gear: true,
|
||||||
},
|
},
|
||||||
bundle202306: {
|
bundle202306: {
|
||||||
start:'2023-06-13T08:00-04:00',
|
start: '2023-06-13T08:00-04:00',
|
||||||
end:'2023-06-30T23:59-04:00',
|
end: '2023-06-30T23:59-04:00',
|
||||||
},
|
},
|
||||||
bundle202305: {
|
bundle202305: {
|
||||||
start:'2023-05-23T08:00-04:00',
|
start: '2023-05-23T08:00-04:00',
|
||||||
end:'2023-05-31T23:59-04:00',
|
end: '2023-05-31T23:59-04:00',
|
||||||
},
|
},
|
||||||
potions202305: {
|
potions202305: {
|
||||||
start:'2023-05-16T08:00-04:00',
|
start: '2023-05-16T08:00-04:00',
|
||||||
end:'2023-05-31T23:59-04:00',
|
end: '2023-05-31T23:59-04:00',
|
||||||
},
|
},
|
||||||
aprilFools2023: {
|
aprilFools2023: {
|
||||||
start: '2023-04-01T08:00-04:00',
|
start: '2023-04-01T08:00-04:00',
|
||||||
@@ -146,7 +155,7 @@ export const EVENTS = {
|
|||||||
start: '2023-02-21T08:00-05:00',
|
start: '2023-02-21T08:00-05:00',
|
||||||
end: '2023-02-28T23:59-05:00',
|
end: '2023-02-28T23:59-05:00',
|
||||||
},
|
},
|
||||||
potions202302:{
|
potions202302: {
|
||||||
start: '2023-02-13T08:00-05:00',
|
start: '2023-02-13T08:00-05:00',
|
||||||
end: '2023-02-28T23:59-05:00',
|
end: '2023-02-28T23:59-05:00',
|
||||||
},
|
},
|
||||||
@@ -236,8 +245,8 @@ export const EVENTS = {
|
|||||||
gear: true,
|
gear: true,
|
||||||
},
|
},
|
||||||
bundle202206: {
|
bundle202206: {
|
||||||
start:'2022-06-14T08:00-04:00',
|
start: '2022-06-14T08:00-04:00',
|
||||||
end:'2022-06-30T20:00-04:00',
|
end: '2022-06-30T20:00-04:00',
|
||||||
},
|
},
|
||||||
potions202205: {
|
potions202205: {
|
||||||
start: '2022-05-17T08:00-04:00',
|
start: '2022-05-17T08:00-04:00',
|
||||||
|
|||||||
@@ -471,6 +471,10 @@ const armor = {
|
|||||||
per: 4,
|
per: 4,
|
||||||
set: 'optimistSet',
|
set: 'optimistSet',
|
||||||
},
|
},
|
||||||
|
pottersApron: {
|
||||||
|
str: 8,
|
||||||
|
set: 'pottersSet',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const body = {
|
const body = {
|
||||||
@@ -976,6 +980,10 @@ const head = {
|
|||||||
per: 10,
|
per: 10,
|
||||||
set: 'hatterSet',
|
set: 'hatterSet',
|
||||||
},
|
},
|
||||||
|
pottersBandana: {
|
||||||
|
int: 8,
|
||||||
|
set: 'pottersSet',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const shield = {
|
const shield = {
|
||||||
@@ -1319,6 +1327,10 @@ const shield = {
|
|||||||
str: 4,
|
str: 4,
|
||||||
set: 'optimistSet',
|
set: 'optimistSet',
|
||||||
},
|
},
|
||||||
|
thrownVessel: {
|
||||||
|
con: 8,
|
||||||
|
set: 'pottersSet',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const headAccessory = {
|
const headAccessory = {
|
||||||
@@ -1797,6 +1809,10 @@ const weapon = {
|
|||||||
con: 4,
|
con: 4,
|
||||||
set: 'optimistSet',
|
set: 'optimistSet',
|
||||||
},
|
},
|
||||||
|
pottersWheel: {
|
||||||
|
per: 8,
|
||||||
|
set: 'pottersSet',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const releaseDates = {
|
const releaseDates = {
|
||||||
@@ -1806,7 +1822,8 @@ const releaseDates = {
|
|||||||
schoolUniform: '2024-01-04T08:00-05:00',
|
schoolUniform: '2024-01-04T08:00-05:00',
|
||||||
whiteLoungeWear: '2024-02-06T08:00-05:00',
|
whiteLoungeWear: '2024-02-06T08:00-05:00',
|
||||||
hatterSet: '2024-03-05T08:00-05:00',
|
hatterSet: '2024-03-05T08:00-05:00',
|
||||||
optimistSet: '2024-03-05T00:00-05:00',
|
optimistSet: '2024-04-04T08:00-04:00',
|
||||||
|
pottersSet: '2024-05-07T08:00-04:00',
|
||||||
};
|
};
|
||||||
|
|
||||||
forEach({
|
forEach({
|
||||||
|
|||||||
@@ -107,6 +107,7 @@ const back = {
|
|||||||
202309: { },
|
202309: { },
|
||||||
202401: { },
|
202401: { },
|
||||||
202402: { },
|
202402: { },
|
||||||
|
202405: { },
|
||||||
};
|
};
|
||||||
|
|
||||||
const body = {
|
const body = {
|
||||||
@@ -253,6 +254,7 @@ const headAccessory = {
|
|||||||
202302: { },
|
202302: { },
|
||||||
202305: { },
|
202305: { },
|
||||||
202309: { },
|
202309: { },
|
||||||
|
202405: { },
|
||||||
202310: { },
|
202310: { },
|
||||||
301405: { },
|
301405: { },
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -98,12 +98,12 @@ const premium = {
|
|||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionFloral'),
|
text: t('hatchingPotionFloral'),
|
||||||
limited: true,
|
limited: true,
|
||||||
event: EVENTS.potions202305,
|
event: EVENTS.potions202405,
|
||||||
_addlNotes: t('eventAvailability', {
|
_addlNotes: t('eventAvailability', {
|
||||||
date: t('dateEndMay'),
|
date: t('dateEndMay'),
|
||||||
}),
|
}),
|
||||||
canBuy () {
|
canBuy () {
|
||||||
return moment().isBefore(EVENTS.potions202305.end);
|
return moment().isBetween(EVENTS.potions202405.start, EVENTS.potions202405.end);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Aquatic: {
|
Aquatic: {
|
||||||
@@ -290,12 +290,12 @@ const premium = {
|
|||||||
value: 2,
|
value: 2,
|
||||||
text: t('hatchingPotionSunshine'),
|
text: t('hatchingPotionSunshine'),
|
||||||
limited: true,
|
limited: true,
|
||||||
event: EVENTS.potions202205,
|
event: EVENTS.potions202405,
|
||||||
_addlNotes: t('eventAvailability', {
|
_addlNotes: t('eventAvailability', {
|
||||||
date: t('dateEndMay'),
|
date: t('dateEndMay'),
|
||||||
}),
|
}),
|
||||||
canBuy () {
|
canBuy () {
|
||||||
return moment().isBefore(EVENTS.potions202205.end);
|
return moment().isBetween(EVENTS.potions202405.start, EVENTS.potions202405.end);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
Bronze: {
|
Bronze: {
|
||||||
|
|||||||
@@ -238,7 +238,7 @@ const QUEST_SEASONAL = {
|
|||||||
title: t('questFungiRageTitle'),
|
title: t('questFungiRageTitle'),
|
||||||
description: t('questFungiRageDescription'),
|
description: t('questFungiRageDescription'),
|
||||||
value: 50,
|
value: 50,
|
||||||
mpDrain: .33,
|
mpDrain: 0.33,
|
||||||
effect: t('questFungiRageEffect'),
|
effect: t('questFungiRageEffect'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import { EVENTS } from './constants';
|
|||||||
// hatching potions and food names should be capitalized lest you break the market
|
// hatching potions and food names should be capitalized lest you break the market
|
||||||
const featuredItems = {
|
const featuredItems = {
|
||||||
market () {
|
market () {
|
||||||
if (moment().isBetween(EVENTS.spring2024.start, EVENTS.spring2024.end)) {
|
if (moment().isBetween(EVENTS.potions202405.start, EVENTS.potions202405.end)) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: 'armoire',
|
type: 'armoire',
|
||||||
@@ -15,15 +15,15 @@ const featuredItems = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'premiumHatchingPotion',
|
type: 'premiumHatchingPotion',
|
||||||
path: 'premiumHatchingPotions.Celestial',
|
path: 'premiumHatchingPotions.Floral',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'premiumHatchingPotion',
|
type: 'premiumHatchingPotion',
|
||||||
path: 'premiumHatchingPotions.Shimmer',
|
path: 'premiumHatchingPotions.Sunshine',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'premiumHatchingPotion',
|
type: 'hatchingPotions',
|
||||||
path: 'premiumHatchingPotions.Rainbow',
|
path: 'hatchingPotions.Golden',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -34,32 +34,33 @@ const featuredItems = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'food',
|
type: 'food',
|
||||||
path: 'food.Fish',
|
path: 'food.Strawberry',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'hatchingPotions',
|
type: 'hatchingPotions',
|
||||||
path: 'hatchingPotions.Skeleton',
|
path: 'hatchingPotions.Red',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'eggs',
|
type: 'eggs',
|
||||||
path: 'eggs.Dragon',
|
path: 'eggs.Cactus',
|
||||||
|
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
quests () {
|
quests () {
|
||||||
if (moment().isBetween(EVENTS.aprilFoolsQuest2024.start, EVENTS.aprilFoolsQuest2024.end)) {
|
if (moment().isBetween(EVENTS.bundle202405.start, EVENTS.bundle202405.end)) {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'bundles',
|
||||||
path: 'quests.fungi',
|
path: 'bundles.delightfulDinos',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
path: 'quests.badger',
|
path: 'quests.rooster',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
path: 'quests.snake',
|
path: 'quests.owl',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -67,15 +68,15 @@ const featuredItems = {
|
|||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
path: 'quests.rat',
|
path: 'quests.cheetah',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
path: 'quests.kraken',
|
path: 'quests.nudibranch',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'quests',
|
type: 'quests',
|
||||||
path: 'quests.slime',
|
path: 'quests.monkey',
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -230,6 +230,7 @@ function _getBasicAchievements (user, language) {
|
|||||||
_addSimple(result, user, { path: 'duneBuddy', language });
|
_addSimple(result, user, { path: 'duneBuddy', language });
|
||||||
_addSimple(result, user, { path: 'roughRider', language });
|
_addSimple(result, user, { path: 'roughRider', language });
|
||||||
_addSimple(result, user, { path: 'rodentRuler', language });
|
_addSimple(result, user, { path: 'rodentRuler', language });
|
||||||
|
_addSimple(result, user, { path: 'cats', 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 });
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ export const UserSchema = new Schema({
|
|||||||
duneBuddy: Boolean,
|
duneBuddy: Boolean,
|
||||||
roughRider: Boolean,
|
roughRider: Boolean,
|
||||||
rodentRuler: Boolean,
|
rodentRuler: Boolean,
|
||||||
|
cats: Boolean,
|
||||||
// Onboarding Guide
|
// Onboarding Guide
|
||||||
createdTask: Boolean,
|
createdTask: Boolean,
|
||||||
completedTask: Boolean,
|
completedTask: Boolean,
|
||||||
|
|||||||
Reference in New Issue
Block a user