mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 06:07:21 +01:00
December 2024 and Winter Wonderland 2025 build (#15358)
* feat(content): Winter 2025 build by @CuriousMagpie * fix(content): add more WW * fix(content): add more WW * chore(subproj): update habitica-images * fix(gala): December 2024 is Winter 2025 * fix(content): lint, background typo, 0 index month * fix(content): add missing mystery set name * fix(content): roll back erroneous month indexing * fix(tests): no 13th month, consider releases in schedule test * update gear strings * fix(seasonal): show quest modal * fix(seasonal): use category-item component * chore(subproj): update habitica-images --------- Co-authored-by: CuriousMagpie <eilatan@gmail.com>
This commit is contained in:
@@ -19,8 +19,8 @@ describe('releaseDates', () => {
|
||||
});
|
||||
describe('armoire', () => {
|
||||
it('should only contain valid armoire names', () => {
|
||||
const lastReleaseDate = maxBy(Object.values(ARMOIRE_RELEASE_DATES), value => new Date(`${value.year}-${value.month + 1}-20`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month + 1}-20`));
|
||||
const lastReleaseDate = maxBy(Object.values(ARMOIRE_RELEASE_DATES), value => new Date(`${value.year}-${value.month}-22`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month}-22`));
|
||||
Object.keys(ARMOIRE_RELEASE_DATES).forEach(key => {
|
||||
expect(find(armoire.all, { set: key }), `${key} is not a valid armoire set`).to.exist;
|
||||
});
|
||||
@@ -40,8 +40,8 @@ describe('releaseDates', () => {
|
||||
|
||||
describe('eggs', () => {
|
||||
it('should only contain valid egg names', () => {
|
||||
const lastReleaseDate = maxBy(Object.values(EGGS_RELEASE_DATES), value => new Date(`${value.year}-${value.month + 1}-${value.day}`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month + 1}-${lastReleaseDate.day}`));
|
||||
const lastReleaseDate = maxBy(Object.values(EGGS_RELEASE_DATES), value => new Date(`${value.year}-${value.month}-${value.day}`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month}-${lastReleaseDate.day + 1}`));
|
||||
Object.keys(EGGS_RELEASE_DATES).forEach(key => {
|
||||
expect(eggs.all[key], `${key} is not a valid egg name`).to.exist;
|
||||
});
|
||||
@@ -61,8 +61,8 @@ describe('releaseDates', () => {
|
||||
|
||||
describe('hatchingPotions', () => {
|
||||
it('should only contain valid potion names', () => {
|
||||
const lastReleaseDate = maxBy(Object.values(HATCHING_POTIONS_RELEASE_DATES), value => new Date(`${value.year}-${value.month + 1}-${value.day}`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month + 1}-${lastReleaseDate.day}`));
|
||||
const lastReleaseDate = maxBy(Object.values(HATCHING_POTIONS_RELEASE_DATES), value => new Date(`${value.year}-${value.month}-${value.day}`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month}-${lastReleaseDate.day + 1}`));
|
||||
Object.keys(HATCHING_POTIONS_RELEASE_DATES).forEach(key => {
|
||||
expect(hatchingPotions.all[key], `${key} is not a valid potion name`).to.exist;
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
// eslint-disable-next-line max-len
|
||||
import maxBy from 'lodash/maxBy';
|
||||
import moment from 'moment';
|
||||
import nconf from 'nconf';
|
||||
import {
|
||||
@@ -10,6 +11,7 @@ import QUEST_BUNDLES from '../../website/common/script/content/bundles';
|
||||
import potions from '../../website/common/script/content/hatching-potions';
|
||||
import SPELLS from '../../website/common/script/content/spells';
|
||||
import QUEST_SEASONAL from '../../website/common/script/content/quests/seasonal';
|
||||
import { HATCHING_POTIONS_RELEASE_DATES } from '../../website/common/script/content/constants/releaseDates';
|
||||
|
||||
function validateMatcher (matcher, checkedDate) {
|
||||
expect(matcher.end).to.be.a('date');
|
||||
@@ -222,6 +224,8 @@ describe('Content Schedule', () => {
|
||||
});
|
||||
|
||||
it('premium hatching potions', () => {
|
||||
const lastReleaseDate = maxBy(Object.values(HATCHING_POTIONS_RELEASE_DATES), value => new Date(`${value.year}-${value.month}-${value.day}`));
|
||||
clock = sinon.useFakeTimers(new Date(`${lastReleaseDate.year}-${lastReleaseDate.month}-${lastReleaseDate.day + 1}`));
|
||||
const potionKeys = Object.keys(potions.premium);
|
||||
Object.keys(MONTHLY_SCHEDULE).forEach(key => {
|
||||
const monthlyPotions = MONTHLY_SCHEDULE[key][21].find(item => item.type === 'premiumHatchingPotions');
|
||||
|
||||
@@ -163,14 +163,7 @@
|
||||
slot="itemBadge"
|
||||
slot-scope="ctx"
|
||||
>
|
||||
<span
|
||||
class="badge-top"
|
||||
@click.prevent.stop="togglePinned(ctx.item)"
|
||||
>
|
||||
<pin-badge
|
||||
:pinned="ctx.item.pinned"
|
||||
/>
|
||||
</span>
|
||||
<category-item :item="ctx.item" />
|
||||
</template>
|
||||
</shopItem>
|
||||
</div>
|
||||
@@ -178,6 +171,23 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<buy-quest-modal
|
||||
:item="selectedItemToBuy || {}"
|
||||
:price-type="selectedItemToBuy ? selectedItemToBuy.currency : ''"
|
||||
:with-pin="true"
|
||||
>
|
||||
<template
|
||||
slot="item"
|
||||
slot-scope="ctx"
|
||||
>
|
||||
<item
|
||||
class="flat"
|
||||
:item="ctx.item"
|
||||
:item-content-class="ctx.item.class"
|
||||
:show-popover="false"
|
||||
/>
|
||||
</template>
|
||||
</buy-quest-modal>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -346,11 +356,17 @@ import svgWizard from '@/assets/svg/wizard.svg';
|
||||
import svgRogue from '@/assets/svg/rogue.svg';
|
||||
import svgHealer from '@/assets/svg/healer.svg';
|
||||
|
||||
import BuyQuestModal from '../quests/buyQuestModal.vue';
|
||||
import CategoryItem from '../market/categoryItem';
|
||||
import FilterGroup from '@/components/ui/filterGroup';
|
||||
import FilterSidebar from '@/components/ui/filterSidebar';
|
||||
import { worldStateMixin } from '@/mixins/worldState';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
BuyQuestModal,
|
||||
CategoryItem,
|
||||
FilterGroup,
|
||||
FilterSidebar,
|
||||
Checkbox,
|
||||
PinBadge,
|
||||
@@ -386,6 +402,7 @@ export default {
|
||||
featuredGearBought: false,
|
||||
currentEvent: null,
|
||||
backgroundUpdate: new Date(),
|
||||
selectedItemToBuy: null,
|
||||
imageURLs: {
|
||||
background: '',
|
||||
npc: '',
|
||||
@@ -550,7 +567,12 @@ export default {
|
||||
return false;
|
||||
},
|
||||
itemSelected (item) {
|
||||
if (item.type === 'quests') {
|
||||
this.selectedItemToBuy = item;
|
||||
this.$root.$emit('bv::show::modal', 'buy-quest-modal');
|
||||
} else {
|
||||
this.$root.$emit('buyModal::showItem', item);
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1003,6 +1003,10 @@
|
||||
"backgroundCastleHallWithHearthText": "Castle Hall with Hearth",
|
||||
"backgroundCastleHallWithHearthNotes": "Bask in the warmth of a Castle Hall with a Hearth.",
|
||||
|
||||
"backgrounds122024": "SET 127: Released December 2024",
|
||||
"backgroundFirstSnowForestText": "First Snow in the Forest",
|
||||
"backgroundFirstSnowForestNotes": "Step into the First Snow in the Forest.",
|
||||
|
||||
"timeTravelBackgrounds": "Steampunk Backgrounds",
|
||||
"backgroundAirshipText": "Airship",
|
||||
"backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.",
|
||||
|
||||
@@ -335,6 +335,7 @@
|
||||
"hatchingPotionRoseGold": "Rose Gold",
|
||||
"hatchingPotionFungi": "Fungi",
|
||||
"hatchingPotionKoi": "Koi",
|
||||
"hatchingPotionGingerbread": "Gingerbread",
|
||||
|
||||
"hatchingPotionNotes": "Pour this on an egg, and it will hatch as a <%= potText(locale) %> Pet.",
|
||||
"premiumPotionUnlimitedNotes": "Not usable on Quest Pet eggs.",
|
||||
|
||||
@@ -533,6 +533,15 @@
|
||||
"weaponSpecialFall2024MageText": "Staff of the Underworld",
|
||||
"weaponSpecialFall2024MageNotes": "Task steps will instantly become simplified with one touch of this shining weapon. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition Fall 2024 Gear.",
|
||||
|
||||
"weaponSpecialWinter2025WarriorText": "Moose Warrior Axe",
|
||||
"weaponSpecialWinter2025WarriorNotes": "A mighty axe for a mighty moose! You’ll be unstoppable! Increases Strength by <%= str %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"weaponSpecialWinter2025RogueText": "Snowflake Burst",
|
||||
"weaponSpecialWinter2025RogueNotes": "Thump and dazzle those difficult tasks into submission! You’ll be unstoppable! Increases Strength by <%= str %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"weaponSpecialWinter2025HealerText": "Star Wand",
|
||||
"weaponSpecialWinter2025HealerNotes": "What you need now are more lights and a glowing star to go on top! You'll be unstoppable! Increases Intelligence by <%= int %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"weaponSpecialWinter2025MageText": "Northern Lights Display",
|
||||
"weaponSpecialWinter2025MageNotes": "This stunning, colorful show provides the perfect backdrop! You’ll be unstoppable! Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
|
||||
"weaponMystery201411Text": "Pitchfork of Feasting",
|
||||
"weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.",
|
||||
"weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
|
||||
@@ -1304,6 +1313,16 @@
|
||||
"armorSpecialFall2024MageText": "Underworld Sorceror Armor",
|
||||
"armorSpecialFall2024MageNotes": "Be one with the underworld and embrace the power of mages who’ve come before you in this armor. Increases Intelligence by <%= int %>. Limited Edition Fall 2024 Gear.",
|
||||
|
||||
"armorSpecialWinter2025WarriorText": "Moose Warrior Armor",
|
||||
"armorSpecialWinter2025WarriorNotes": "Everyone’s going to step aside and make way for you when you wear this armor. Increases Constitution by <%= con %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"armorSpecialWinter2025RogueText": "Snow Costume",
|
||||
"armorSpecialWinter2025RogueNotes": "Although you look like you’re covered in cold snow, you are toasty, warm, jolly, and happy when you wear this costume. Increases Perception by <%= per %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"armorSpecialWinter2025HealerText": "Robe of String Lights",
|
||||
"armorSpecialWinter2025HealerNotes": "Twinkle your way through your tasks. Just be careful—if one bulb goes out, they all go out. Increases Constitution by <%= con %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"armorSpecialWinter2025MageText": "Aurora Cloak",
|
||||
"armorSpecialWinter2025MageNotes": "Wonder, whimsy, enchantment, and splendor will fill your days when you dance in this cloak. Increases Intelligence by <%= int %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
|
||||
|
||||
"armorMystery201402Text": "Messenger Robes",
|
||||
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
|
||||
"armorMystery201403Text": "Forest Walker Armor",
|
||||
@@ -1432,6 +1451,8 @@
|
||||
"armorMystery202406Notes": "Haunt your enemies with style and flair! Confers no benefit. June 2024 Subscriber Item.",
|
||||
"armorMystery202407Text": "Amiable Axolotl Suit",
|
||||
"armorMystery202407Notes": "Glide through lakes and canals with your sweeping pink tail! Confers no benefit. July 2024 Subscriber Item.",
|
||||
"armorMystery202412Text": "Candy Cane Cottontail Coat",
|
||||
"armorMystery202412Notes": "A fun and fluffy look to keep you snug on a winter day. Confers no benefit. December 2024 Subscriber Item.",
|
||||
|
||||
"armorMystery301404Text": "Steampunk Suit",
|
||||
"armorMystery301404Notes": "Dapper and dashing, wot! Confers no benefit. February 3015 Subscriber Item.",
|
||||
@@ -1656,6 +1677,8 @@
|
||||
"armorArmoireFunnyFoolCostumeNotes": "Dum-de-dum! Surely you jest. This colorful outfit looks amazing on you! Increases Strength by <%= str %>. Enchanted Armoire: Funny Fool Set (Item 2 of 3)",
|
||||
"armorArmoireStormKnightArmorText": "Storm Knight Armor",
|
||||
"armorArmoireStormKnightArmorNotes": "In this armor, you are nearly invincible. Your enemies will never see the storm’s end. Increases Perception by <%= per %>. Enchanted Armoire: Storm Knight Set (Item 2 of 3)",
|
||||
"armorArmoireFestiveHelperOverallsText": "Festive Helper Overalls",
|
||||
"armorArmoireFestiveHelperOverallsNotes": "Durable and comfortable, these overalls are great for working, playing, and assisting others. Plus, it has pockets! Increases Constitution by <%= con %>. Enchanted Armoire: Festive Helper Set (Item 2 of 2)",
|
||||
|
||||
"headgear": "helm",
|
||||
"headgearCapitalized": "Headgear",
|
||||
@@ -2163,6 +2186,15 @@
|
||||
"headSpecialFall2024MageText": "Underworld Sorcerer Mask",
|
||||
"headSpecialFall2024MageNotes": "Whether you’re mysterious or whimsical, you won’t be missed when you wear this! Increases Perception by <%= per %>. Limited Edition Fall 2024 Gear.",
|
||||
|
||||
"headSpecialWinter2025WarriorText": "Moose Warrior Helmet",
|
||||
"headSpecialWinter2025WarriorNotes": "So, get this: now you look just like a moose. Wear those antlers with pride. Increases Strength by <%= str %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"headSpecialWinter2025RogueText": "Snow Mask",
|
||||
"headSpecialWinter2025RogueNotes": "There is definitely some magic in this hat, because it transforms you into a snow person. Just don’t let the bunny get too close to your carrot nose. Increases Perception by <%= per %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"headSpecialWinter2025HealerText": "Tangle of String Lights",
|
||||
"headSpecialWinter2025HealerNotes": "Don’t bother untangling these because they are already in the shape of a hat. Increases Intelligence by <%= int %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"headSpecialWinter2025MageText": "Aurora Hat",
|
||||
"headSpecialWinter2025MageNotes": "More than just a fancy fascinator, this hat makes you look like the aurora borealis itself. Increases Perception by <%= per %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
|
||||
"headSpecialGaymerxText": "Rainbow Warrior Helm",
|
||||
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
|
||||
|
||||
@@ -2334,6 +2366,8 @@
|
||||
"headMystery202409Notes": "More than just jaunty decorations, the enchanted sunflowers on this hat fill the wearer with powerful magic energy. Confers no benefit. September 2024 Subscriber Item.",
|
||||
"headMystery202411Text": "Bristled Helm",
|
||||
"headMystery202411Notes": "This helm is quite intimidating to your tasks when you dive in headfirst! Confers no benefit. November 2024 Subscriber Item.",
|
||||
"headMystery202412Text": "Candy Cane Cottontail Hood",
|
||||
"headMystery202412Notes": "Warm and cozy, just like a cup of minty hot cocoa on a winter night! Confers no benefit. December 2024 Subscriber Item.",
|
||||
|
||||
"headMystery301404Text": "Fancy Top Hat",
|
||||
"headMystery301404Notes": "A fancy top hat for the finest of gentlefolk! January 3015 Subscriber Item. Confers no benefit.",
|
||||
@@ -2538,6 +2572,8 @@
|
||||
"headArmoireFunnyFoolCapNotes": "The bells on this hat might make your opponents burst into giggles, but they just help you concentrate. Increases Constitution by <%= con %>. Enchanted Armoire: Funny Fool Set (Item 1 of 3)",
|
||||
"headArmoireStormKnightHelmText": "Storm Knight Helm",
|
||||
"headArmoireStormKnightHelmNotes": "Harness lightning through these antlers as you storm the castle. Increases Constitution by <%= con %>. Enchanted Armoire: Storm Knight Set (Item 1 of 3)",
|
||||
"headArmoireFestiveHelperHatText": "Festive Helper Hat",
|
||||
"headArmoireFestiveHelperHatNotes": "Holiday tip #27: have a helper hat handy. This one is big enough to keep an emergency toy underneath! Increases Intelligence by <%= int %>. Enchanted Armoire: Festive Helper Set (Item 1 of 2)",
|
||||
|
||||
"offhand": "off-hand item",
|
||||
"offHandCapitalized": "Off-Hand Item",
|
||||
@@ -2826,6 +2862,11 @@
|
||||
"shieldSpecialFall2024HealerText": "Space Shield",
|
||||
"shieldSpecialFall2024HealerNotes": "New tasks wanting your attention bounce right off until you’ve completed your current mission. Increases Constitution by <%= con %>. Limited Edition Fall 2024 Gear.",
|
||||
|
||||
"shieldSpecialWinter2025WarriorText": "Moose Warrior Shield",
|
||||
"shieldSpecialWinter2025WarriorNotes": "Block out any unwanted distractions with this shield as strong as a moose. Increases Constitution by <%= con %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
"shieldSpecialWinter2025HealerText": "The Perfect Gift",
|
||||
"shieldSpecialWinter2025HealerNotes": "The perfect gift is just waiting to be opened. What could be inside? Increases Constitution by <%= con %>. Limited Edition Winter 2024-2025 Gear.",
|
||||
|
||||
"shieldMystery201601Text": "Resolution Slayer",
|
||||
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
|
||||
"shieldMystery201701Text": "Time-Freezer Shield",
|
||||
|
||||
@@ -223,6 +223,10 @@
|
||||
"fall2024UnderworldSorcerorMageSet": "Underworld Sorceror Set (Mage)",
|
||||
"fall2024SpaceInvaderHealerSet": "Space Invader Set (Healer)",
|
||||
"fall2024BlackCatRogueSet": "Black Cat Set (Rogue)",
|
||||
"winter2025MooseWarriorSet": "Moose Warrior Set",
|
||||
"winter2025AuroraMageSet": "Aurora Mage Set",
|
||||
"winter2025StringLightsHealerSet": "String Lights Healer Set",
|
||||
"winter2025SnowRogueSet": "Snow Rogue Set",
|
||||
"winterPromoGiftHeader": "GIFT A SUBSCRIPTION, GET ONE FREE!",
|
||||
"winterPromoGiftDetails1": "Until January 6th only, when you gift somebody a subscription, you get the same subscription for yourself for free!",
|
||||
"winterPromoGiftDetails2": "Please note that if you or your gift recipient already have a recurring subscription, the gifted subscription will only start after that subscription is cancelled or has expired. Thanks so much for your support! <3",
|
||||
|
||||
@@ -168,6 +168,7 @@
|
||||
"mysterySet202409": "Heliotrope Magus Set",
|
||||
"mysterySet202410": "Candy Corn Fox Set",
|
||||
"mysterySet202411": "Bristled Brawler Set",
|
||||
"mysterySet202412": "Candy Cane Cottontail Set",
|
||||
"mysterySet301404": "Steampunk Standard Set",
|
||||
"mysterySet301405": "Steampunk Accessories Set",
|
||||
"mysterySet301703": "Peacock Steampunk Set",
|
||||
|
||||
@@ -638,6 +638,9 @@ const backgrounds = {
|
||||
backgrounds112024: {
|
||||
castle_hall_with_hearth: { },
|
||||
},
|
||||
backgrounds122024: {
|
||||
first_snow_forest: { },
|
||||
},
|
||||
eventBackgrounds: {
|
||||
birthday_bash: {
|
||||
price: 0,
|
||||
|
||||
@@ -13,6 +13,7 @@ export const ARMOIRE_RELEASE_DATES = {
|
||||
funnyFoolSet: { year: 2024, month: 9 },
|
||||
frightNightSet: { year: 2024, month: 10 },
|
||||
stormKnightSet: { year: 2024, month: 11 },
|
||||
festiveHelperSet: { year: 2024, month: 12 },
|
||||
};
|
||||
|
||||
export const EGGS_RELEASE_DATES = {
|
||||
@@ -25,4 +26,5 @@ export const EGGS_RELEASE_DATES = {
|
||||
|
||||
export const HATCHING_POTIONS_RELEASE_DATES = {
|
||||
Koi: { year: 2024, month: 6, day: 1 },
|
||||
Gingerbread: { year: 2024, month: 12, day: 21 },
|
||||
};
|
||||
|
||||
@@ -648,6 +648,7 @@ export const MONTHLY_SCHEDULE = {
|
||||
items: [
|
||||
'Peppermint',
|
||||
'Holly',
|
||||
'Gingerbread',
|
||||
],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -57,6 +57,11 @@ const SEASONAL_SETS = {
|
||||
'winter2024PeppermintBarkWarriorSet',
|
||||
'winter2024NarwhalWizardMageSet',
|
||||
'winter2024FrozenHealerSet',
|
||||
|
||||
'winter2025MooseWarriorSet',
|
||||
'winter2025AuroraMageSet',
|
||||
'winter2025StringLightsHealerSet',
|
||||
'winter2025SnowRogueSet',
|
||||
],
|
||||
spring: [
|
||||
// spring 2014
|
||||
|
||||
@@ -502,6 +502,10 @@ const armor = {
|
||||
per: 11,
|
||||
set: 'stormKnightSet',
|
||||
},
|
||||
festiveHelperOveralls: {
|
||||
con: 12,
|
||||
set: 'festiveHelperSet',
|
||||
},
|
||||
};
|
||||
|
||||
const body = {
|
||||
@@ -1027,6 +1031,10 @@ const head = {
|
||||
con: 11,
|
||||
set: 'stormKnightSet',
|
||||
},
|
||||
festiveHelperHat: {
|
||||
int: 12,
|
||||
set: 'festiveHelperSet',
|
||||
},
|
||||
};
|
||||
|
||||
const shield = {
|
||||
|
||||
@@ -67,6 +67,7 @@ const armor = {
|
||||
202401: { },
|
||||
202406: { },
|
||||
202407: { },
|
||||
202412: { },
|
||||
301404: { },
|
||||
301703: { },
|
||||
301704: { },
|
||||
@@ -232,6 +233,7 @@ const head = {
|
||||
202407: { },
|
||||
202409: { },
|
||||
202411: { },
|
||||
202412: { },
|
||||
301404: { },
|
||||
301405: { },
|
||||
301703: { },
|
||||
|
||||
@@ -779,6 +779,18 @@ const armor = {
|
||||
fall2024Rogue: {
|
||||
set: 'fall2024BlackCatRogueSet',
|
||||
},
|
||||
winter2025Warrior: {
|
||||
set: 'winter2025MooseWarriorSet',
|
||||
},
|
||||
winter2025Mage: {
|
||||
set: 'winter2025AuroraMageSet',
|
||||
},
|
||||
winter2025Healer: {
|
||||
set: 'winter2025StringLightsHealerSet',
|
||||
},
|
||||
winter2025Rogue: {
|
||||
set: 'winter2025SnowRogueSet',
|
||||
},
|
||||
};
|
||||
|
||||
const armorStats = {
|
||||
@@ -1868,6 +1880,18 @@ const head = {
|
||||
fall2024Rogue: {
|
||||
set: 'fall2024BlackCatRogueSet',
|
||||
},
|
||||
winter2025Warrior: {
|
||||
set: 'winter2025MooseWarriorSet',
|
||||
},
|
||||
winter2025Mage: {
|
||||
set: 'winter2025AuroraMageSet',
|
||||
},
|
||||
winter2025Healer: {
|
||||
set: 'winter2025StringLightsHealerSet',
|
||||
},
|
||||
winter2025Rogue: {
|
||||
set: 'winter2025SnowRogueSet',
|
||||
},
|
||||
};
|
||||
|
||||
const headStats = {
|
||||
@@ -2558,6 +2582,15 @@ const shield = {
|
||||
fall2024Rogue: {
|
||||
set: 'fall2024BlackCatRogueSet',
|
||||
},
|
||||
winter2025Warrior: {
|
||||
set: 'winter2025MooseWarriorSet',
|
||||
},
|
||||
winter2025Healer: {
|
||||
set: 'winter2025StringLightsHealerSet',
|
||||
},
|
||||
winter2025Rogue: {
|
||||
set: 'winter2025SnowRogueSet',
|
||||
},
|
||||
};
|
||||
|
||||
const shieldStats = {
|
||||
@@ -3237,6 +3270,18 @@ const weapon = {
|
||||
fall2024Rogue: {
|
||||
set: 'fall2024BlackCatRogueSet',
|
||||
},
|
||||
winter2025Warrior: {
|
||||
set: 'winter2025MooseWarriorSet',
|
||||
},
|
||||
winter2025Mage: {
|
||||
set: 'winter2025AuroraMageSet',
|
||||
},
|
||||
winter2025Healer: {
|
||||
set: 'winter2025StringLightsHealerSet',
|
||||
},
|
||||
winter2025Rogue: {
|
||||
set: 'winter2025SnowRogueSet',
|
||||
},
|
||||
};
|
||||
|
||||
const weaponStats = {
|
||||
|
||||
@@ -127,6 +127,7 @@ const premium = {
|
||||
},
|
||||
RoseGold: {},
|
||||
Koi: {},
|
||||
Gingerbread: {},
|
||||
};
|
||||
|
||||
const wacky = {
|
||||
|
||||
@@ -23,7 +23,8 @@ function safeGetSet (currentEvent, year, className) {
|
||||
}
|
||||
|
||||
function getCurrentSeasonalSets (currentEvent) {
|
||||
const year = new Date().getFullYear();
|
||||
const now = new Date();
|
||||
const year = now.getMonth() === 11 ? now.getFullYear() + 1 : now.getFullYear();
|
||||
return {
|
||||
rogue: safeGetSet(currentEvent, year, 'Rogue'),
|
||||
warrior: safeGetSet(currentEvent, year, 'Warrior'),
|
||||
|
||||
Reference in New Issue
Block a user