feat(content): Winter Wonderland 2025-6

This commit is contained in:
Kalista Payne
2025-11-19 13:34:50 -06:00
parent a504b18ce4
commit bee23efbef
14 changed files with 426 additions and 38 deletions

View File

@@ -674,6 +674,15 @@ const backgrounds = {
backgrounds112025: {
castle_keep_with_banners: { },
},
backgrounds122025: {
nighttime_street_with_shops: { },
},
backgrounds012026: {
winter_desert_with_saguaros: { },
},
backgrounds022026: {
elegant_palace: { },
},
eventBackgrounds: {
birthday_bash: {
price: 0,

View File

@@ -26,6 +26,9 @@ export const ARMOIRE_RELEASE_DATES = {
orangeLoungewear: { year: 2025, month: 9 },
blackHairbow: { year: 2025, month: 10 },
blacksmith: { year: 2025, month: 11 },
musicalInstrumentTwo: { year: 2025, month: 12 },
loneCowpoke: { year: 2026, month: 1 },
prettyInPink: { year: 2026, month: 2 },
};
export const EGGS_RELEASE_DATES = {

View File

@@ -62,6 +62,11 @@ const SEASONAL_SETS = {
'winter2025AuroraMageSet',
'winter2025StringLightsHealerSet',
'winter2025SnowRogueSet',
'winter2026RimeReaperWarriorSet',
'winter2026SkiRogueSet',
'winter2026PolarBearHealerSet',
'winter2026MidwinterCandleMageSet',
],
spring: [
// spring 2014

View File

@@ -2,11 +2,15 @@ import { back as baseBack } from './sets/base';
import { back as mysteryBack } from './sets/mystery';
import { back as specialBack } from './sets/special';
import armoire from './sets/armoire';
const back = {
base: baseBack,
mystery: mysteryBack,
special: specialBack,
get armoire () {
return armoire.back;
},
};
export default back;

View File

@@ -557,6 +557,18 @@ const armor = {
con: 11,
set: 'blacksmith',
},
loneCowpokeOutfit: {
con: 10,
set: 'loneCowpoke',
},
};
const back = {
harpsichord: {
int: 6,
per: 6,
set: 'musicalInstrumentTwo',
},
};
const body = {
@@ -1140,6 +1152,10 @@ const head = {
per: 11,
set: 'blacksmith',
},
loneCowpokeHat: {
per: 10,
set: 'loneCowpoke',
},
};
const shield = {
@@ -1518,6 +1534,18 @@ const shield = {
per: 8,
set: 'orangeLoungewear',
},
doubleBass: {
con: 6,
str: 6,
set: 'musicalInstrumentTwo',
},
prettyPinkGiftBox: {
con: 2,
int: 2,
per: 2,
str: 2,
set: 'prettyInPink',
},
};
const headAccessory = {
@@ -2037,12 +2065,25 @@ const weapon = {
str: 11,
set: 'blacksmith',
},
bambooFlute: {
con: 6,
int: 6,
set: 'musicalInstrumentTwo',
},
prettyPinkParasol: {
con: 2,
int: 2,
per: 2,
str: 2,
set: 'prettyInPink',
},
};
const releaseDay = 7;
forEach({
armor,
back,
body,
eyewear,
head,
@@ -2101,34 +2142,38 @@ function updateReleased (type) {
return returnType;
}
const memoizedUpdatReleased = memoize(updateReleased);
const memoizedUpdateReleased = memoize(updateReleased);
export default {
get armor () {
return memoizedUpdatReleased({ identifier: 'armor', memoizeConfig: true }, armor);
return memoizedUpdateReleased({ identifier: 'armor', memoizeConfig: true }, armor);
},
get back () {
return memoizedUpdateReleased({ identifier: 'back', memoizeConfig: true }, back);
},
get body () {
return memoizedUpdatReleased({ identifier: 'body', memoizeConfig: true }, body);
return memoizedUpdateReleased({ identifier: 'body', memoizeConfig: true }, body);
},
get eyewear () {
return memoizedUpdatReleased({ identifier: 'eyewear', memoizeConfig: true }, eyewear);
return memoizedUpdateReleased({ identifier: 'eyewear', memoizeConfig: true }, eyewear);
},
get head () {
return memoizedUpdatReleased({ identifier: 'head', memoizeConfig: true }, head);
return memoizedUpdateReleased({ identifier: 'head', memoizeConfig: true }, head);
},
get headAccessory () {
return memoizedUpdatReleased({ identifier: 'headAccessory', memoizeConfig: true }, headAccessory);
return memoizedUpdateReleased({ identifier: 'headAccessory', memoizeConfig: true }, headAccessory);
},
get shield () {
return memoizedUpdatReleased({ identifier: 'shield', memoizeConfig: true }, shield);
return memoizedUpdateReleased({ identifier: 'shield', memoizeConfig: true }, shield);
},
get weapon () {
return memoizedUpdatReleased({ identifier: 'weapon', memoizeConfig: true }, weapon);
return memoizedUpdateReleased({ identifier: 'weapon', memoizeConfig: true }, weapon);
},
// convenience method for tests mostly. Not used in the app
get all () {
const items = [];
items.push(...Object.values(this.armor));
items.push(...Object.values(this.back));
items.push(...Object.values(this.body));
items.push(...Object.values(this.eyewear));
items.push(...Object.values(this.head));

View File

@@ -71,6 +71,7 @@ const armor = {
202502: { },
202504: { },
202509: { },
202512: { },
301404: { },
301703: { },
301704: { },
@@ -119,6 +120,8 @@ const back = {
202506: { },
202507: { },
202510: { },
202601: { },
202602: { },
};
const body = {
@@ -249,6 +252,8 @@ const head = {
202503: { },
202504: { },
202507: { },
202512: { },
202602: { },
301404: { },
301405: { },
301703: { },
@@ -330,6 +335,8 @@ const weapon = {
202408: { },
202508: { },
202511: { },
202512: { },
202601: { },
301404: { },
};

View File

@@ -827,6 +827,18 @@ const armor = {
fall2025Rogue: {
set: 'fall2025SkeletonRogueSet',
},
winter2026Warrior: {
set: 'winter2026RimeReaperWarriorSet',
},
winter2026Mage: {
set: 'winter2026MidwinterCandleMageSet',
},
winter2026Healer: {
set: 'winter2026PolarBearHealerSet',
},
winter2026Rogue: {
set: 'winter2026SkiRogueSet',
},
};
const armorStats = {
@@ -1964,6 +1976,18 @@ const head = {
fall2025Rogue: {
set: 'fall2025SkeletonRogueSet',
},
winter2026Warrior: {
set: 'winter2026RimeReaperWarriorSet',
},
winter2026Mage: {
set: 'winter2026MidwinterCandleMageSet',
},
winter2026Healer: {
set: 'winter2026PolarBearHealerSet',
},
winter2026Rogue: {
set: 'winter2026SkiRogueSet',
},
};
const headStats = {
@@ -2694,6 +2718,15 @@ const shield = {
set: 'fall2025SkeletonRogueSet',
notes: t('shieldSpecialFall2025RogueNotes', { str: 8 }),
},
winter2026Warrior: {
set: 'winter2026RimeReaperWarriorSet',
},
winter2026Healer: {
set: 'winter2026PolarBearHealerSet',
},
winter2026Rogue: {
set: 'winter2026SkiRogueSet',
},
};
const shieldStats = {
@@ -3421,6 +3454,18 @@ const weapon = {
fall2025Rogue: {
set: 'fall2025SkeletonRogueSet',
},
winter2026Warrior: {
set: 'winter2026RimeReaperWarriorSet',
},
winter2026Mage: {
set: 'winter2026MidwinterCandleMageSet',
},
winter2026Healer: {
set: 'winter2026PolarBearHealerSet',
},
winter2026Rogue: {
set: 'winter2026SkiRogueSet',
},
};
const weaponStats = {