chore(content): add 2022 Fall Festival (#14244)
* chore(submodule): add August 2022 Mystery Items * update(content): add 2022 Fall Festival content * update(content): add 2022 Fall Festival content * update(content): update event dates for release * fix(lint): remove extra spaces also correct typo in gear string keys * feat(content): remaining descriptions * fix(event): correct spell availability * fix(test): work around first-match logic Co-authored-by: Sabe Jones <sabrecat@gmail.com> Co-authored-by: SabreCat <sabe@habitica.com>
This commit is contained in:
@@ -15,7 +15,7 @@ export default prefill({
|
||||
setPrice: 5, availableFrom: '2022-04-14T08:00-05:00', availableUntil: '2022-04-30T20:00-05:00', text: t('shimmerColors'),
|
||||
},
|
||||
hauntedHairColors: {
|
||||
setPrice: 5, availableFrom: '2021-09-28T08:00-04:00', availableUntil: '2021-10-31T20:00-04:00', text: t('hauntedColors'),
|
||||
setPrice: 5, availableFrom: '2022-10-04T08:00-04:00', availableUntil: EVENTS.fall2022.end, text: t('hauntedColors'),
|
||||
},
|
||||
winteryHairColors: {
|
||||
setPrice: 5, availableFrom: '2021-12-23T08:00-05:00', availableUntil: '2022-01-31T20:00-05:00', text: t('winteryColors'),
|
||||
@@ -27,7 +27,7 @@ export default prefill({
|
||||
},
|
||||
spookySkins: { setPrice: 5, availableUntil: '2016-01-01', text: t('spookySkins') },
|
||||
supernaturalSkins: {
|
||||
setPrice: 5, availableFrom: '2021-09-28T08:00-04:00', availableUntil: '2021-10-31T20:00-04:00', text: t('supernaturalSkins'),
|
||||
setPrice: 5, availableFrom: '2022-10-04T08:00-04:00', availableUntil: EVENTS.fall2022.end, text: t('supernaturalSkins'),
|
||||
},
|
||||
splashySkins: {
|
||||
setPrice: 5, availableFrom: '2022-07-05T08:00-05:00', availableUntil: EVENTS.summer2022.end, text: t('splashySkins'),
|
||||
|
||||
@@ -9,17 +9,28 @@ const gemsPromo = {
|
||||
};
|
||||
|
||||
export const EVENTS = {
|
||||
noCurrentEvent: {
|
||||
start: '2022-09-30T20:00-04:00',
|
||||
afterGala: {
|
||||
start: '2022-10-31T20:00-04:00',
|
||||
end: '2022-12-21T08:00-04:00',
|
||||
season: 'normal',
|
||||
npcImageSuffix: '',
|
||||
},
|
||||
fall2022: {
|
||||
start: '2022-09-20T08:00-04:00',
|
||||
end: '2022-10-31T20:00-04:00',
|
||||
npcImageSuffix: '_fall',
|
||||
season: 'fall',
|
||||
gear: true,
|
||||
},
|
||||
beforeGala: {
|
||||
start: '2022-07-31T20:00-04:00',
|
||||
end: '2022-09-20T08:00-04:00',
|
||||
season: 'normal',
|
||||
npcImageSuffix: '',
|
||||
},
|
||||
bundle202209: {
|
||||
start: '2022-09-13T08:00-04:00',
|
||||
end: '2022-09-30T20:00-04:00',
|
||||
season: 'normal',
|
||||
npcImageSuffix: '',
|
||||
},
|
||||
potions202208: {
|
||||
start: '2022-08-16T08:00-04:00',
|
||||
|
||||
@@ -188,6 +188,11 @@ const SEASONAL_SETS = {
|
||||
'fall2021HeadlessWarriorSet',
|
||||
'fall2021BrainEaterMageSet',
|
||||
'fall2021FlameSummonerHealerSet',
|
||||
|
||||
'fall2022KappaRogueSet',
|
||||
'fall2022OrcWarriorSet',
|
||||
'fall2022HarpyMageSet',
|
||||
'fall2022WatcherHealerSet',
|
||||
],
|
||||
};
|
||||
|
||||
|
||||
@@ -702,15 +702,19 @@ const armor = {
|
||||
},
|
||||
fall2021Rogue: {
|
||||
set: 'fall2021OozeRogueSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Warrior: {
|
||||
set: 'fall2021HeadlessWarriorSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Mage: {
|
||||
set: 'fall2021BrainEaterMageSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Healer: {
|
||||
set: 'fall2021FlameSummonerHealerSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
winter2022Rogue: {
|
||||
set: 'winter2022FireworksRogueSet',
|
||||
@@ -754,6 +758,18 @@ const armor = {
|
||||
summer2022Healer: {
|
||||
set: 'summer2022AngelfishHealerSet',
|
||||
},
|
||||
fall2022Rogue: {
|
||||
set: 'fall2022KappaRogueSet',
|
||||
},
|
||||
fall2022Warrior: {
|
||||
set: 'fall2022OrcWarriorSet',
|
||||
},
|
||||
fall2022Mage: {
|
||||
set: 'fall2022HarpyMageSet',
|
||||
},
|
||||
fall2022Healer: {
|
||||
set: 'fall2022WatcherHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const armorStats = {
|
||||
@@ -1792,15 +1808,19 @@ const head = {
|
||||
},
|
||||
fall2021Rogue: {
|
||||
set: 'fall2021OozeRogueSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Warrior: {
|
||||
set: 'fall2021HeadlessWarriorSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Mage: {
|
||||
set: 'fall2021BrainEaterMageSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Healer: {
|
||||
set: 'fall2021FlameSummonerHealerSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
winter2022Rogue: {
|
||||
set: 'winter2022FireworksRogueSet',
|
||||
@@ -1844,6 +1864,18 @@ const head = {
|
||||
summer2022Healer: {
|
||||
set: 'summer2022AngelfishHealerSet',
|
||||
},
|
||||
fall2022Rogue: {
|
||||
set: 'fall2022KappaRogueSet',
|
||||
},
|
||||
fall2022Warrior: {
|
||||
set: 'fall2022OrcWarriorSet',
|
||||
},
|
||||
fall2022Mage: {
|
||||
set: 'fall2022HarpyMageSet',
|
||||
},
|
||||
fall2022Healer: {
|
||||
set: 'fall2022WatcherHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const headStats = {
|
||||
@@ -2592,12 +2624,15 @@ const shield = {
|
||||
},
|
||||
fall2021Rogue: {
|
||||
set: 'fall2021OozeRogueSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Warrior: {
|
||||
set: 'fall2021HeadlessWarriorSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Healer: {
|
||||
set: 'fall2021FlameSummonerHealerSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
winter2022Rogue: {
|
||||
set: 'winter2022FireworksRogueSet',
|
||||
@@ -2626,6 +2661,15 @@ const shield = {
|
||||
summer2022Healer: {
|
||||
set: 'summer2022AngelfishHealerSet',
|
||||
},
|
||||
fall2022Rogue: {
|
||||
set: 'fall2022KappaRogueSet',
|
||||
},
|
||||
fall2022Warrior: {
|
||||
set: 'fall2022OrcWarriorSet',
|
||||
},
|
||||
fall2022Healer: {
|
||||
set: 'fall2022WatcherHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const shieldStats = {
|
||||
@@ -3288,15 +3332,19 @@ const weapon = {
|
||||
},
|
||||
fall2021Rogue: {
|
||||
set: 'fall2021OozeRogueSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Warrior: {
|
||||
set: 'fall2021HeadlessWarriorSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Mage: {
|
||||
set: 'fall2021BrainEaterMageSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
fall2021Healer: {
|
||||
set: 'fall2021FlameSummonerHealerSet',
|
||||
canBuy: () => CURRENT_EVENT && CURRENT_EVENT.season === 'fall',
|
||||
},
|
||||
winter2022Rogue: {
|
||||
set: 'winter2022FireworksRogueSet',
|
||||
@@ -3334,6 +3382,18 @@ const weapon = {
|
||||
summer2022Healer: {
|
||||
set: 'summer2022AngelfishHealerSet',
|
||||
},
|
||||
fall2022Rogue: {
|
||||
set: 'fall2022KappaRogueSet',
|
||||
},
|
||||
fall2022Warrior: {
|
||||
set: 'fall2022OrcWarriorSet',
|
||||
},
|
||||
fall2022Mage: {
|
||||
set: 'fall2022HarpyMageSet',
|
||||
},
|
||||
fall2022Healer: {
|
||||
set: 'fall2022WatcherHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const weaponStats = {
|
||||
|
||||
@@ -161,13 +161,13 @@ const premium = {
|
||||
value: 2,
|
||||
text: t('hatchingPotionGhost'),
|
||||
limited: true,
|
||||
event: EVENTS.fall2020,
|
||||
event: EVENTS.fall2022,
|
||||
canBuy () {
|
||||
return moment().isBefore('2020-11-02');
|
||||
return moment().isBetween(EVENTS.fall2022.start, EVENTS.fall2022.end);
|
||||
},
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndOctober'),
|
||||
previousDate: t('septemberYYYY', { year: 2018 }),
|
||||
previousDate: t('novemberYYYY', { year: 2020 }),
|
||||
}),
|
||||
},
|
||||
Holly: {
|
||||
@@ -337,13 +337,13 @@ const premium = {
|
||||
value: 2,
|
||||
text: t('hatchingPotionShadow'),
|
||||
limited: true,
|
||||
event: EVENTS.fall2020,
|
||||
event: EVENTS.fall2022,
|
||||
canBuy () {
|
||||
return moment().isBefore('2020-11-02');
|
||||
return moment().isBetween(EVENTS.fall2022.start, EVENTS.fall2022.end);
|
||||
},
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndOctober'),
|
||||
previousDate: t('septemberYYYY', { year: 2019 }),
|
||||
previousDate: t('novemberYYYY', { year: 2020 }),
|
||||
}),
|
||||
},
|
||||
Amber: {
|
||||
@@ -424,13 +424,13 @@ const premium = {
|
||||
value: 2,
|
||||
text: t('hatchingPotionVampire'),
|
||||
limited: true,
|
||||
event: EVENTS.fall2021,
|
||||
event: EVENTS.fall2022,
|
||||
_addlNotes: t('eventAvailabilityReturning', {
|
||||
availableDate: t('dateEndOctober'),
|
||||
previousDate: t('septemberYYYY', { year: 2020 }),
|
||||
previousDate: t('octoberYYYY', { year: 2021 }),
|
||||
}),
|
||||
canBuy () {
|
||||
return moment().isBefore(EVENTS.fall2021.end);
|
||||
return moment().isBetween(EVENTS.fall2022.start, EVENTS.fall2022.end);
|
||||
},
|
||||
},
|
||||
AutumnLeaf: {
|
||||
|
||||
@@ -5,7 +5,7 @@ import { EVENTS } from './constants';
|
||||
// path: 'premiumHatchingPotions.Rainbow',
|
||||
const featuredItems = {
|
||||
market () {
|
||||
if (moment().isBetween(EVENTS.potions202208.start, EVENTS.potions202208.end)) {
|
||||
if (moment().isBetween(EVENTS.fall2022.start, EVENTS.fall2022.end)) {
|
||||
return [
|
||||
{
|
||||
type: 'armoire',
|
||||
@@ -13,15 +13,15 @@ const featuredItems = {
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Moonglow',
|
||||
path: 'premiumHatchingPotions.Vampire',
|
||||
},
|
||||
{
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Porcelain',
|
||||
path: 'premiumHatchingPotions.Ghost',
|
||||
},
|
||||
{
|
||||
type: 'food',
|
||||
path: 'food.Milk',
|
||||
type: 'premiumHatchingPotion',
|
||||
path: 'premiumHatchingPotions.Shadow',
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -325,7 +325,7 @@ spells.special = {
|
||||
target: 'user',
|
||||
notes: t('spellSpecialSpookySparklesNotes'),
|
||||
canOwn () {
|
||||
return moment().isBetween('2021-10-12T08:00-04:00', EVENTS.fall2021.end);
|
||||
return moment().isBetween('2021-10-11T08:00-04:00', EVENTS.fall2022.end);
|
||||
},
|
||||
cast (user, target, req) {
|
||||
if (!user.items.special.spookySparkles) throw new NotAuthorized(t('spellNotOwned')(req.language));
|
||||
|
||||
@@ -30,16 +30,15 @@ export default {
|
||||
|
||||
pinnedSets: SHOP_OPEN
|
||||
? {
|
||||
healer: 'summer2022AngelfishHealerSet',
|
||||
rogue: 'summer2022CrabRogueSet',
|
||||
warrior: 'summer2022WaterspoutWarriorSet',
|
||||
wizard: 'summer2022MantaRayMageSet',
|
||||
healer: 'fall2022WatcherHealerSet',
|
||||
rogue: 'fall2022KappaRogueSet',
|
||||
warrior: 'fall2022OrcWarriorSet',
|
||||
wizard: 'fall2022HarpyMageSet',
|
||||
}
|
||||
: {},
|
||||
|
||||
availableSpells: SHOP_OPEN && moment().isBetween('2022-07-12T08:00-05:00', CURRENT_EVENT.end)
|
||||
availableSpells: SHOP_OPEN && moment().isBetween('2022-10-04T08:00-05:00', CURRENT_EVENT.end)
|
||||
? [
|
||||
'seafoam',
|
||||
'spookySparkles',
|
||||
]
|
||||
: [],
|
||||
|
||||
@@ -49,5 +48,5 @@ export default {
|
||||
]
|
||||
: [],
|
||||
|
||||
featuredSet: 'summer2021NautilusMageSet',
|
||||
featuredSet: 'fall2021BrainEaterMageSet',
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user