mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
commit28193f86fbAuthor: Phillip Thelen <phillip@habitica.com> Date: Fri Jun 21 11:12:18 2024 +0200 Fix serving memoized content commit877fe48225Author: Phillip Thelen <phillip@habitica.com> Date: Thu Jun 20 12:23:24 2024 +0200 correctly memoize conent api commite0f6f79c5bAuthor: Phillip Thelen <phillip@habitica.com> Date: Thu Jun 20 10:11:27 2024 +0200 don’t build multiple times on heroku commitf62254d68eAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 19:40:20 2024 +0200 fix client command commitd054e6fc16Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 19:36:57 2024 +0200 correct build call commit7231f699c1Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 19:32:32 2024 +0200 try setting up with heroku buildpack commit1dae0793fdAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:50:32 2024 +0200 call gulp build:prod commitf18fbe86b6Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:40:53 2024 +0200 build client commit61a61724caAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:33:18 2024 +0200 testing commit93cf30eb18Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:20:25 2024 +0200 integration fix commitcff08adcd0Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:13:20 2024 +0200 specify dev docker file commit4da2ed4a1fAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:10:07 2024 +0200 initialize stub commit11c5b26c59Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:08:45 2024 +0200 test heroku file commitac85bb2e2dAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:03:15 2024 +0200 fix stub reference commit74dfb2710fAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 18:01:27 2024 +0200 test fixes commit8dbd3c3db1Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 17:37:04 2024 +0200 fix canOwn test commit74b3b348ffAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 17:32:31 2024 +0200 fix buy test commit3386d61fdeAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 17:30:37 2024 +0200 fix debug tests commit19da14531cAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 17:05:25 2024 +0200 add chameleon to featured quests commit254dd80f24Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 17:05:14 2024 +0200 fix import commit0bc3f16b4bAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 16:33:22 2024 +0200 add new content to new release file commit5184973bd5Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 16:33:11 2024 +0200 fix release date tests commitb6accca5caAuthor: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 16:33:06 2024 +0200 fix armoire tests commitfec68e6211Author: Phillip Thelen <phillip@habitica.com> Date: Wed Jun 19 16:02:03 2024 +0200 fix tests commitfc63c906ddAuthor: Phillip Thelen <phillip@habitica.com> Date: Mon Jun 10 14:44:21 2024 +0200 Improve test coverage commit3333f8f0f5Author: Phillip Thelen <phillip@habitica.com> Date: Mon Jun 10 14:24:59 2024 +0200 allow hatching potions to have a release date commit89a3ac3ddeAuthor: Phillip Thelen <phillip@habitica.com> Date: Mon Jun 10 14:11:38 2024 +0200 allow eggs to have a release date # Conflicts: # test/content/armoire.test.js commit16551ec83fMerge:f5f4974a732645bf6023Author: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 15:03:12 2024 -0400 Merge branch '2024-07-content-prebuild' into subs-private commit2645bf6023Author: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 15:02:47 2024 -0400 update habitica images commitf5f4974a73Author: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 14:58:13 2024 -0400 update habitica-images commit162e337d14Merge:f2506c323121a7d36b7bAuthor: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 13:46:03 2024 -0400 Merge branch '2024-07-content-prebuild' into subs-private commit21a7d36b7bAuthor: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 13:45:09 2024 -0400 update sprites commitf2506c3231Author: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 13:24:21 2024 -0400 updated sprites css commitd47641e25aAuthor: CuriousMagpie <eilatan@gmail.com> Date: Tue Jun 18 12:46:59 2024 -0400 typo fix commitfb8479ad1eAuthor: CuriousMagpie <eilatan@gmail.com> Date: Mon Jun 17 13:44:36 2024 -0400 finish July prebuild commit3810cf3ef3Author: CuriousMagpie <eilatan@gmail.com> Date: Fri Jun 14 10:42:47 2024 -0400 add chameleon quest commitd05da3722cAuthor: CuriousMagpie <eilatan@gmail.com> Date: Thu Jun 13 17:12:43 2024 -0400 add June background notes commitb8a3440ef2Author: CuriousMagpie <eilatan@gmail.com> Date: Thu Jun 13 16:40:04 2024 -0400 fix mystery item and background description commit44d63032d8Author: CuriousMagpie <eilatan@gmail.com> Date: Thu Jun 13 15:38:23 2024 -0400 add subscriber gear, enchanted armoire, and background commit9d7da91ec6Author: CuriousMagpie <eilatan@gmail.com> Date: Thu Jun 13 14:44:59 2024 -0400 add sprites
220 lines
4.2 KiB
JavaScript
220 lines
4.2 KiB
JavaScript
import defaults from 'lodash/defaults';
|
|
import each from 'lodash/each';
|
|
import { assign } from 'lodash';
|
|
import t from './translation';
|
|
import datedMemoize from '../fns/datedMemoize';
|
|
import { filterReleased } from './is_released';
|
|
import { HATCHING_POTIONS_RELEASE_DATES } from './constants/releaseDates';
|
|
|
|
function hasQuestAchievementFunction (key) {
|
|
return user => user.achievements.quests && user.achievements.quests[key] > 0;
|
|
}
|
|
|
|
const drops = {
|
|
Base: {
|
|
value: 2,
|
|
},
|
|
White: {
|
|
value: 2,
|
|
},
|
|
Desert: {
|
|
value: 2,
|
|
},
|
|
Red: {
|
|
value: 3,
|
|
},
|
|
Shade: {
|
|
value: 3,
|
|
},
|
|
Skeleton: {
|
|
value: 3,
|
|
},
|
|
Zombie: {
|
|
value: 4,
|
|
},
|
|
CottonCandyPink: {
|
|
value: 4,
|
|
},
|
|
CottonCandyBlue: {
|
|
value: 4,
|
|
},
|
|
Golden: {
|
|
value: 5,
|
|
},
|
|
};
|
|
|
|
const premium = {
|
|
RoyalPurple: {},
|
|
Cupid: {},
|
|
Shimmer: {},
|
|
Fairy: {},
|
|
Floral: {},
|
|
Aquatic: {},
|
|
Ember: {},
|
|
Thunderstorm: {},
|
|
Spooky: {},
|
|
Ghost: {},
|
|
Holly: {},
|
|
Peppermint: {},
|
|
StarryNight: {},
|
|
Rainbow: {},
|
|
Glass: {},
|
|
Glow: {},
|
|
Frost: {},
|
|
IcySnow: {},
|
|
RoseQuartz: {},
|
|
Celestial: {},
|
|
Sunshine: {},
|
|
Bronze: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('bronze'),
|
|
},
|
|
Watery: {},
|
|
Silver: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('silver'),
|
|
},
|
|
Shadow: {},
|
|
Amber: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('amber'),
|
|
},
|
|
Aurora: {},
|
|
Ruby: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('ruby'),
|
|
},
|
|
BirchBark: {},
|
|
Fluorite: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('fluorite'),
|
|
},
|
|
SandSculpture: {},
|
|
Windup: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('windup'),
|
|
},
|
|
Turquoise: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('turquoise'),
|
|
},
|
|
Vampire: {},
|
|
AutumnLeaf: {},
|
|
BlackPearl: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('blackPearl'),
|
|
},
|
|
StainedGlass: {},
|
|
PolkaDot: {},
|
|
MossyStone: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('stone'),
|
|
},
|
|
Sunset: {},
|
|
Moonglow: {},
|
|
SolarSystem: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('solarSystem'),
|
|
},
|
|
Onyx: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('onyx'),
|
|
},
|
|
Porcelain: {},
|
|
PinkMarble: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('pinkMarble'),
|
|
},
|
|
RoseGold: {},
|
|
Koi: {},
|
|
};
|
|
|
|
const wacky = {
|
|
Veggie: {},
|
|
Dessert: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('waffle'),
|
|
},
|
|
VirtualPet: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('virtualpet'),
|
|
},
|
|
TeaShop: {},
|
|
Fungi: {
|
|
questPotion: true,
|
|
canBuy: hasQuestAchievementFunction('fungi'),
|
|
},
|
|
};
|
|
|
|
each(drops, (pot, key) => {
|
|
defaults(pot, {
|
|
key,
|
|
value: 2,
|
|
text: t(`hatchingPotion${key}`),
|
|
notes: t('hatchingPotionNotes', {
|
|
potText: t(`hatchingPotion${key}`),
|
|
}),
|
|
premium: false,
|
|
limited: false,
|
|
canBuy () {
|
|
return true;
|
|
},
|
|
});
|
|
});
|
|
|
|
each(premium, (pot, key) => {
|
|
defaults(pot, {
|
|
key,
|
|
value: 2,
|
|
text: t(`hatchingPotion${key}`),
|
|
notes: t('hatchingPotionNotes', {
|
|
potText: t(`hatchingPotion${key}`),
|
|
}),
|
|
_addlNotes: t('premiumPotionUnlimitedNotes'),
|
|
premium: true,
|
|
limited: true,
|
|
canBuy () {
|
|
return false;
|
|
},
|
|
});
|
|
});
|
|
|
|
each(wacky, (pot, key) => {
|
|
defaults(pot, {
|
|
key,
|
|
value: 2,
|
|
text: t(`hatchingPotion${key}`),
|
|
notes: t('hatchingPotionNotes', {
|
|
potText: t(`hatchingPotion${key}`),
|
|
}),
|
|
_addlNotes: t('premiumPotionUnlimitedNotes'),
|
|
premium: false,
|
|
limited: true,
|
|
wacky: true,
|
|
canBuy () {
|
|
return false;
|
|
},
|
|
});
|
|
});
|
|
|
|
function filterEggs (eggs) {
|
|
return filterReleased(eggs, 'key', HATCHING_POTIONS_RELEASE_DATES);
|
|
}
|
|
|
|
const memoizedFilter = datedMemoize(filterEggs);
|
|
|
|
export default {
|
|
get drops () {
|
|
return memoizedFilter({ memoizeConfig: true, identifier: 'drops' }, drops);
|
|
},
|
|
get premium () {
|
|
return memoizedFilter({ memoizeConfig: true, identifier: 'premium' }, premium);
|
|
},
|
|
get wacky () {
|
|
return memoizedFilter({ memoizeConfig: true, identifier: 'wacky' }, wacky);
|
|
},
|
|
get all () {
|
|
return assign({}, this.drops, this.premium, this.wacky);
|
|
},
|
|
};
|