diff --git a/habitica-images b/habitica-images index 98642906db..1ad97507b9 160000 --- a/habitica-images +++ b/habitica-images @@ -1 +1 @@ -Subproject commit 98642906db7725c9ca8663e2d69ac05aa7c2db9c +Subproject commit 1ad97507b9ce6f000fda0833216f94aba7639e06 diff --git a/website/client/src/assets/css/sprites/spritesmith-main.css b/website/client/src/assets/css/sprites/spritesmith-main.css index d296e20b4c..32c7848d85 100644 --- a/website/client/src/assets/css/sprites/spritesmith-main.css +++ b/website/client/src/assets/css/sprites/spritesmith-main.css @@ -1055,6 +1055,11 @@ width: 141px; height: 147px; } +.background_elegant_palace { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_elegant_palace.png'); + width: 141px; + height: 147px; +} .background_enchanted_music_room { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_enchanted_music_room.png'); width: 141px; @@ -1751,6 +1756,11 @@ width: 141px; height: 147px; } +.background_nighttime_street_with_shops { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_nighttime_street_with_shops.png'); + width: 141px; + height: 147px; +} .background_ocean_sunrise { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_ocean_sunrise.png'); width: 141px; @@ -2437,6 +2447,11 @@ width: 141px; height: 147px; } +.background_winter_desert_with_saguaros { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_winter_desert_with_saguaros.png'); + width: 141px; + height: 147px; +} .background_winter_fireworks { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/background_winter_fireworks.png'); width: 141px; @@ -29455,6 +29470,11 @@ width: 60px; height: 60px; } +.back_armoire_harpsichord { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_armoire_harpsichord.png'); + width: 114px; + height: 90px; +} .body_armoire_clownsBowtie { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/body_armoire_clownsBowtie.png'); width: 114px; @@ -29845,6 +29865,11 @@ width: 114px; height: 90px; } +.broad_armor_armoire_loneCowpokeOutfit { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_loneCowpokeOutfit.png'); + width: 114px; + height: 90px; +} .broad_armor_armoire_lunarArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_armoire_lunarArmor.png'); width: 90px; @@ -30480,6 +30505,11 @@ width: 114px; height: 87px; } +.head_armoire_loneCowpokeHat { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_loneCowpokeHat.png'); + width: 114px; + height: 90px; +} .head_armoire_lunarCrown { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_armoire_lunarCrown.png'); width: 90px; @@ -30790,6 +30820,11 @@ width: 114px; height: 90px; } +.shield_armoire_doubleBass { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_doubleBass.png'); + width: 114px; + height: 90px; +} .shield_armoire_dragonTamerShield { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_dragonTamerShield.png'); width: 90px; @@ -30995,6 +31030,11 @@ width: 90px; height: 90px; } +.shield_armoire_prettyPinkGiftBox { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_prettyPinkGiftBox.png'); + width: 114px; + height: 90px; +} .shield_armoire_ramHornShield { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_armoire_ramHornShield.png'); width: 90px; @@ -31465,6 +31505,11 @@ width: 114px; height: 90px; } +.slim_armor_armoire_loneCowpokeOutfit { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_loneCowpokeOutfit.png'); + width: 114px; + height: 90px; +} .slim_armor_armoire_lunarArmor { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_armoire_lunarArmor.png'); width: 90px; @@ -31760,6 +31805,11 @@ width: 114px; height: 90px; } +.weapon_armoire_bambooFlute { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_bambooFlute.png'); + width: 114px; + height: 90px; +} .weapon_armoire_barristerGavel { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_barristerGavel.png'); width: 90px; @@ -32170,6 +32220,11 @@ width: 114px; height: 90px; } +.weapon_armoire_prettyPinkParasol { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_prettyPinkParasol.png'); + width: 114px; + height: 90px; +} .weapon_armoire_pushBroom { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_armoire_pushBroom.png'); width: 114px; @@ -34060,6 +34115,46 @@ width: 90px; height: 90px; } +.back_mystery_202601 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_202601.png'); + width: 114px; + height: 90px; +} +.back_mystery_202602 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_202602.png'); + width: 114px; + height: 90px; +} +.broad_armor_mystery_202512 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_mystery_202512.png'); + width: 114px; + height: 90px; +} +.head_mystery_202512 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_mystery_202512.png'); + width: 114px; + height: 90px; +} +.head_mystery_202602 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_mystery_202602.png'); + width: 114px; + height: 90px; +} +.slim_armor_mystery_202512 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_mystery_202512.png'); + width: 114px; + height: 90px; +} +.weapon_mystery_202512 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_mystery_202512.png'); + width: 114px; + height: 90px; +} +.weapon_mystery_202601 { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_mystery_202601.png'); + width: 114px; + height: 90px; +} .back_mystery_201402 { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/back_mystery_201402.png'); width: 90px; @@ -38640,6 +38735,26 @@ width: 114px; height: 90px; } +.broad_armor_special_winter2026Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2026Healer.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_winter2026Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2026Mage.png'); + width: 114px; + height: 90px; +} +.broad_armor_special_winter2026Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2026Rogue.png'); + width: 117px; + height: 120px; +} +.broad_armor_special_winter2026Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_winter2026Warrior.png'); + width: 114px; + height: 90px; +} .broad_armor_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/broad_armor_special_yeti.png'); width: 90px; @@ -38935,6 +39050,26 @@ width: 114px; height: 90px; } +.head_special_winter2026Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2026Healer.png'); + width: 114px; + height: 90px; +} +.head_special_winter2026Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2026Mage.png'); + width: 114px; + height: 90px; +} +.head_special_winter2026Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2026Rogue.png'); + width: 117px; + height: 120px; +} +.head_special_winter2026Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_winter2026Warrior.png'); + width: 114px; + height: 90px; +} .head_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/head_special_yeti.png'); width: 90px; @@ -39115,6 +39250,16 @@ width: 114px; height: 90px; } +.shield_special_winter2026Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_winter2026Rogue.png'); + width: 117px; + height: 120px; +} +.shield_special_winter2026Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_winter2026Warrior.png'); + width: 114px; + height: 90px; +} .shield_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/shield_special_yeti.png'); width: 90px; @@ -39355,6 +39500,26 @@ width: 114px; height: 90px; } +.slim_armor_special_winter2026Healer { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2026Healer.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_winter2026Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2026Mage.png'); + width: 114px; + height: 90px; +} +.slim_armor_special_winter2026Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2026Rogue.png'); + width: 117px; + height: 120px; +} +.slim_armor_special_winter2026Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_winter2026Warrior.png'); + width: 114px; + height: 90px; +} .slim_armor_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/slim_armor_special_yeti.png'); width: 90px; @@ -39595,6 +39760,21 @@ width: 114px; height: 90px; } +.weapon_special_winter2026Mage { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2026Mage.png'); + width: 114px; + height: 90px; +} +.weapon_special_winter2026Rogue { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2026Rogue.png'); + width: 117px; + height: 120px; +} +.weapon_special_winter2026Warrior { + background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_winter2026Warrior.png'); + width: 114px; + height: 90px; +} .weapon_special_yeti { background-image: url('https://habitica-assets.s3.amazonaws.com/mobileApp/images/weapon_special_yeti.png'); width: 90px; diff --git a/website/common/locales/en/backgrounds.json b/website/common/locales/en/backgrounds.json index 9233a13d90..99c2cde29d 100644 --- a/website/common/locales/en/backgrounds.json +++ b/website/common/locales/en/backgrounds.json @@ -1051,6 +1051,18 @@ "backgroundCastleKeepWithBannersText": "Castle Hall with Banners", "backgroundCastleKeepWithBannersNotes": "Sing tales of heroic deeds in a Castle Hall with Banners.", + "backgrounds122025": "SET 139: Released December 2025", + "backgroundNighttimeStreetWithShopsText": "Nighttime Street with Shops", + "backgroundNighttimeStreetWithShopsNotes": "Enjoy the warm glow of a Nighttime Street with Shops.", + + "backgrounds012026": "SET 140: Released January 2026", + "backgroundWinterDesertWithSaguarosText": "Winter Desert with Saguaros", + "backgroundWinterDesertWithSaguarosNotes": "Breath the crisp air of a Winter Desert with Saguaros.", + + "backgrounds022026": "SET 141: Released February 2026", + "backgroundElegantPalaceText": "Elegant Palace", + "backgroundElegantPalaceNotes": "Admire the colorful halls of an Elegant Palace.", + "timeTravelBackgrounds": "Steampunk Backgrounds", "backgroundAirshipText": "Airship", "backgroundAirshipNotes": "Become a sky sailor on board your very own Airship.", diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 8d9a9ed57a..c5a1702190 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -569,6 +569,15 @@ "weaponSpecialFall2025MageText": "Masked Ghost Axe", "weaponSpecialFall2025MageNotes": "A mighty weapon to cut a safe path through an autumn forest full of frights. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition Fall 2025 Gear.", + "weaponSpecialWinter2026WarriorText": "Rime Scythe", + "weaponSpecialWinter2026WarriorNotes": "Scythes help cut, reap, and cover large areas--all things you need when refining a task list. Increases Strength by <%= str %>. Limited Edition Winter 2025-2026 Gear.", + "weaponSpecialWinter2026RogueText": "Ski Pole", + "weaponSpecialWinter2026RogueNotes": "Ski poles help you maintain balance, stability, and timing--all things you need to be truly productive. Increases Strength by <%= str %>. Limited Edition Winter 2025-2026 Gear.", + "weaponSpecialWinter2026HealerText": "Polar Staff", + "weaponSpecialWinter2026HealerNotes": "Staffs help with support, stability, and direction--all things that help you truly conquer a task list. Increases Intelligence by <%= int %>. Limited Edition Winter 2025-2026 Gear.", + "weaponSpecialWinter2026MageText": "Candelabra Staff", + "weaponSpecialWinter2026MageNotes": "Candelabras help by holding multiple candles at a time—follow its lead the next time you need to multitask. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition Winter 2025-2026 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", @@ -1386,6 +1395,15 @@ "armorSpecialFall2025MageText": "Masked Ghost Armor", "armorSpecialFall2025MageNotes": "This seasonal armor becomes noncorporeal only after you put it on. Increases Intelligence by <%= int %>. Limited Edition Fall 2025 Gear.", + "armorSpecialWinter2026WarriorText": "Rime Reaper Suit", + "armorSpecialWinter2026WarriorNotes": "Icicles will snap and slide with every step on your way to completing your Dailies. Increases Constitution by <%= con %>. Limited Edition Winter 2025-2026 Gear.", + "armorSpecialWinter2026RogueText": "Ski Suit and Skis", + "armorSpecialWinter2026RogueNotes": "Go speedily swishing down the slopes on your way to completing your Dailies. Increases Perception by <%= per %>. Limited Edition Winter 2025-2026 Gear.", + "armorSpecialWinter2026HealerText": "Polar Robe", + "armorSpecialWinter2026HealerNotes": "Like a natural light show, you will be stunning on your way to completing your Dailies. Increases Constitution by <%= con %>. Limited Edition Winter 2025-2026 Gear.", + "armorSpecialWinter2026MageText": "Midwinter Candle Robe", + "armorSpecialWinter2026MageNotes": "Glide smoothly along your path like wax on your way to completing your Dailies. Increases Intelligence by <%= int %>. Limited Edition Winter 2025-2026 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", @@ -2313,6 +2331,15 @@ "headSpecialFall2025MageText": "Masked Ghost Mask", "headSpecialFall2025MageNotes": "Ethereal and glowy, this mask covers your head while you cover all your important tasks. Increases Perception by <%= per %>. Limited Edition Fall 2025 Gear.", + "headSpecialWinter2026WarriorText": "Rime Reaper Helmet", + "headSpecialWinter2026WarriorNotes": "Maintain focus and concentration as you set your sights on greater goals this season. Increases Strength by <%= str %>. Limited Edition 2025-2026 Winter Gear.", + "headSpecialWinter2026RogueText": "Ski Mask and Goggles", + "headSpecialWinter2026RogueNotes": "Maintain focus and vision as you set your sights on greater goals this season. Increases Perception by <%= per %>. Limited Edition 2025-2026 Winter Gear.", + "headSpecialWinter2026HealerText": "Polar Bear Mask", + "headSpecialWinter2026HealerNotes": "Maintain focus and clarity as you set your sights on greater goals this season. Increases Intelligence by <%= int %>. Limited Edition 2025-2026 Winter Gear.", + "headSpecialWinter2026MageText": "Midwinter Candle Hat", + "headSpecialWinter2026MageNotes": "Maintain focus and illumination as you set your sights on greater gooals this season. Increases Perception by <%= per %>. Limited Edition 2025-2026 Winter 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.", @@ -3036,6 +3063,11 @@ "shieldSpecialFall2025HealerText": "Kobold Shield", "shieldSpecialFall2025HealerNotes": "Buy yourself some extra time to gather supplies by shielding yourself from your chores. Increases Constitution by <%= con %>. Limited Edition Fall 2025 Gear.", + "shieldSpecialWinter2026WarriorText": "Rime Shield", + "shieldSpecialWinter2026WarriorNotes": "Stop obstacles cold with this handy, spikey shield. Increases Constitution by <%= con %>. Limited Edition Winter 2025-2026 Gear.", + "shieldSpecialWinter2026HealerText": "Starburst", + "shieldSpecialWinter2026HealerNotes": "Stars help with wayfinding, energy, and illumination--all things that help you better conquer a task list. Increases Constitution by <%= con %>. Limited Edition Winter 2025-2026 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", diff --git a/website/common/locales/en/limited.json b/website/common/locales/en/limited.json index ac9148878d..5141616640 100644 --- a/website/common/locales/en/limited.json +++ b/website/common/locales/en/limited.json @@ -239,6 +239,10 @@ "fall2025SkeletonRogueSet": "Skeleton Rogue Set", "fall2025KoboldHealerSet": "Kobold Healer Set", "fall2025MaskedGhostMageSet": "Masked Ghost Mage Set", + "winter2026RimeReaperWarriorSet": "Rime Reaper Warrior Set", + "winter2026SkiRogueSet": "Ski Rogue Set", + "winter2026PolarBearHealerSet": "Polar Bear Healer Set", + "winter2026MidwinterCandleMageSet": "Midwinter Candle Mage 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", diff --git a/website/common/locales/en/subscriber.json b/website/common/locales/en/subscriber.json index fe51841c90..d3ac2fe2b6 100644 --- a/website/common/locales/en/subscriber.json +++ b/website/common/locales/en/subscriber.json @@ -180,6 +180,9 @@ "mysterySet202509": "Windswept Wanderer Set", "mysterySet202510": "Gliding Ghoul Set", "mysterySet202511": "Frost Warrior Set", + "mysterySet202512": "Cookie Champion Set", + "mysterySet202601": "Winter's Aegis Set", + "mysterySet202602": "Sakura Fox Set", "mysterySet301404": "Steampunk Standard Set", "mysterySet301405": "Steampunk Accessories Set", "mysterySet301703": "Peacock Steampunk Set", diff --git a/website/common/script/content/appearance/backgrounds.js b/website/common/script/content/appearance/backgrounds.js index ae1c56bf94..99390edf9c 100644 --- a/website/common/script/content/appearance/backgrounds.js +++ b/website/common/script/content/appearance/backgrounds.js @@ -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, diff --git a/website/common/script/content/constants/releaseDates.js b/website/common/script/content/constants/releaseDates.js index 16891f5257..65543c346b 100644 --- a/website/common/script/content/constants/releaseDates.js +++ b/website/common/script/content/constants/releaseDates.js @@ -26,6 +26,9 @@ export const ARMOIRE_RELEASE_DATES = { orangeLoungewear: { year: 2025, month: 9 }, blackHairbow: { year: 2025, month: 10 }, blacksmith: { year: 2025, month: 11 }, + musicalInstruments: { year: 2025, month: 12 }, + loneCowpoke: { year: 2026, month: 1 }, + prettyInPink: { year: 2026, month: 2 }, }; export const EGGS_RELEASE_DATES = { diff --git a/website/common/script/content/constants/seasonalSets.js b/website/common/script/content/constants/seasonalSets.js index 815038c76c..b26df9ff8e 100644 --- a/website/common/script/content/constants/seasonalSets.js +++ b/website/common/script/content/constants/seasonalSets.js @@ -62,6 +62,11 @@ const SEASONAL_SETS = { 'winter2025AuroraMageSet', 'winter2025StringLightsHealerSet', 'winter2025SnowRogueSet', + + 'winter2026RimeReaperWarriorSet', + 'winter2026SkiRogueSet', + 'winter2026PolarBearHealerSet', + 'winter2026MidwinterCandleMageSet', ], spring: [ // spring 2014 diff --git a/website/common/script/content/gear/sets/armoire.js b/website/common/script/content/gear/sets/armoire.js index 98951ea3fb..b6c8a13c61 100644 --- a/website/common/script/content/gear/sets/armoire.js +++ b/website/common/script/content/gear/sets/armoire.js @@ -557,6 +557,18 @@ const armor = { con: 11, set: 'blacksmith', }, + loneCowpokeOutfit: { + con: 10, + set: 'loneCowpoke', + }, +}; + +const back = { + harpsichord: { + int: 6, + per: 6, + set: 'musicalInstruments', + }, }; 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: 'musicalInstruments', + }, + 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: 'musicalInstruments', + }, + prettyPinkParasol: { + con: 2, + int: 2, + per: 2, + str: 2, + set: 'prettyInPink', + }, }; const releaseDay = 7; forEach({ armor, + back, body, eyewear, head, @@ -2107,6 +2148,9 @@ export default { get armor () { return memoizedUpdatReleased({ identifier: 'armor', memoizeConfig: true }, armor); }, + get back () { + return memoizedUpdatReleased({ identifier: 'back', memoizeConfig: true }, back); + }, get body () { return memoizedUpdatReleased({ identifier: 'body', memoizeConfig: true }, body); }, @@ -2129,6 +2173,7 @@ export default { 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)); diff --git a/website/common/script/content/gear/sets/mystery.js b/website/common/script/content/gear/sets/mystery.js index 0ae8c27509..3c9da34dbd 100644 --- a/website/common/script/content/gear/sets/mystery.js +++ b/website/common/script/content/gear/sets/mystery.js @@ -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: { }, }; diff --git a/website/common/script/content/gear/sets/special/index.js b/website/common/script/content/gear/sets/special/index.js index c6e02d3023..9228bc426f 100644 --- a/website/common/script/content/gear/sets/special/index.js +++ b/website/common/script/content/gear/sets/special/index.js @@ -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 = {