diff --git a/website/client/assets/scss/variables.scss b/website/client/assets/scss/variables.scss index 35904a786a..2dc7a4bd46 100644 --- a/website/client/assets/scss/variables.scss +++ b/website/client/assets/scss/variables.scss @@ -2,8 +2,8 @@ // possible values are: normal, fall, habitoween, thanksgiving, winter, nye, birthday // more to be added on future seasons -$npc_market_flavor: 'birthday'; -$npc_quests_flavor: 'birthday'; -$npc_seasonal_flavor: 'birthday'; -$npc_timetravelers_flavor: 'birthday'; -$npc_tavern_flavor: 'birthday'; +$npc_market_flavor: 'normal'; +$npc_quests_flavor: 'normal'; +$npc_seasonal_flavor: 'normal'; +$npc_timetravelers_flavor: 'normal'; +$npc_tavern_flavor: 'normal'; diff --git a/website/common/locales/en/backgrounds.json b/website/common/locales/en/backgrounds.json index 093746815e..b34e37d56f 100644 --- a/website/common/locales/en/backgrounds.json +++ b/website/common/locales/en/backgrounds.json @@ -369,5 +369,13 @@ "backgroundDrivingASleighText": "Sleigh", "backgroundDrivingASleighNotes": "Drive a Sleigh over snow-covered fields.", "backgroundFlyingOverIcySteppesText": "Icy Steppes", - "backgroundFlyingOverIcySteppesNotes": "Fly over Icy Steppes." + "backgroundFlyingOverIcySteppesNotes": "Fly over Icy Steppes.", + + "backgrounds022018": "SET 45: Released February 2018", + "backgroundChessboardLandText": "Chessboard Land", + "backgroundChessboardLandNotes": "Play a game in Chessboard Land.", + "backgroundMagicalMuseumText": "Magical Museum", + "backgroundMagicalMuseumNotes": "Tour a Magical Museum.", + "backgroundRoseGardenText": "Rose Garden", + "backgroundRoseGardenNotes": "Dally in a fragrant Rose Garden." } diff --git a/website/common/locales/en/gear.json b/website/common/locales/en/gear.json index 3cd4d14fcc..2223b4372d 100644 --- a/website/common/locales/en/gear.json +++ b/website/common/locales/en/gear.json @@ -349,6 +349,8 @@ "weaponArmoireLamplighterNotes": "This long pole has a wick on one end for lighting lamps, and a hook on the other end for putting them out. Increases Constitution by <%= con %> and Perception by <%= per %>.", "weaponArmoireCoachDriversWhipText": "Coach Driver's Whip", "weaponArmoireCoachDriversWhipNotes": "Your steeds know what they're doing, so this whip is just for show (and the neat snapping sound!). Increases Intelligence by <%= int %> and Strength by <%= str %>. Enchanted Armoire: Coach Driver Set (Item 3 of 3).", + "weaponArmoireScepterOfDiamondsText": "Scepter of Diamonds", + "weaponArmoireScepterOfDiamondsNotes": "This scepter shines with a warm red glow as it grants you increased willpower. Increases Strength by <%= str %>. Enchanted Armoire: King of Diamonds Set (Item 3 of 3).", "armor": "armor", "armorCapitalized": "Armor", @@ -744,6 +746,8 @@ "armorArmoireLamplightersGreatcoatNotes": "This heavy woolen coat can stand up to the harshest wintry night! Increases Perception by <%= per %>.", "armorArmoireCoachDriverLiveryText": "Coach Driver's Livery", "armorArmoireCoachDriverLiveryNotes": "This heavy overcoat will protect you from the weather as you drive. Plus it looks pretty snazzy, too! Increases Strength by <%= str %>. Enchanted Armoire: Coach Driver Set (Item 1 of 3).", + "armorArmoireRobeOfDiamondsText": "Robe of Diamonds", + "armorArmoireRobeOfDiamondsNotes": "These royal robes not only make you appear noble, they allow you to see the nobility within others. Increases Perception by <%= per %>. Enchanted Armoire: King of Diamonds Set (Item 1 of 3).", "headgear": "helm", "headgearCapitalized": "Headgear", @@ -1149,6 +1153,8 @@ "headArmoireLamplightersTopHatNotes": "This jaunty black hat completes your lamp-lighting ensemble! Increases Constitution by <%= con %>.", "headArmoireCoachDriversHatText": "Coach Driver's Hat", "headArmoireCoachDriversHatNotes": "This hat is dressy, but not quite so dressy as a top hat. Make sure you don't lose it as you drive speedily across the land! Increases Intelligence by <%= int %>. Enchanted Armoire: Coach Driver Set (Item 2 of 3).", + "headArmoireCrownOfDiamondsText": "Crown of Diamonds", + "headArmoireCrownOfDiamondsNotes": "This shining crown isn't just a great hat; it will also sharpen your mind! Increases Intelligence by <%= int %>. Enchanted Armoire: King of Diamonds Set (Item 2 of 3).", "offhand": "off-hand item", "offhandCapitalized": "Off-Hand Item", @@ -1369,6 +1375,8 @@ "shieldArmoireHandmadeCandlestickNotes": "Your fine wax wares provide light and warmth to grateful Habiticans! Increases Strength by <%= str %>. Enchanted Armoire: Candlestick Maker Set (Item 3 of 3).", "shieldArmoireWeaversShuttleText": "Weaver's Shuttle", "shieldArmoireWeaversShuttleNotes": "This tool passes your weft thread through the warp to make cloth! Increases Intelligence by <%= int %> and Perception by <%= per %>. Enchanted Armoire: Weaver Set (Item 3 of 3).", + "shieldArmoireShieldOfDiamondsText": "Crimson Jewel Shield", + "shieldArmoireShieldOfDiamondsNotes": "This radiant shield not only provides protection, it empowers you with endurance! Increases Constitution by <%= con %>. Enchanted Armorie: Independent Item.", "back": "Back Accessory", "backCapitalized": "Back Accessory", diff --git a/website/common/locales/en/npc.json b/website/common/locales/en/npc.json index 683161265f..bdfd160535 100644 --- a/website/common/locales/en/npc.json +++ b/website/common/locales/en/npc.json @@ -102,7 +102,7 @@ "alreadyUnlockedPart": "Full set already partially unlocked.", "USD": "(USD)", - "newStuff": "New Stuff by Bailey", + "newStuff": "New Stuff by Bailey", "newBaileyUpdate": "New Bailey Update!", "tellMeLater": "Tell Me Later", "dismissAlert": "Dismiss This Alert", diff --git a/website/common/script/content/appearance/backgrounds.js b/website/common/script/content/appearance/backgrounds.js index 4c025e29de..b8a532214d 100644 --- a/website/common/script/content/appearance/backgrounds.js +++ b/website/common/script/content/appearance/backgrounds.js @@ -619,6 +619,20 @@ let backgrounds = { notes: t('backgroundFlyingOverIcySteppesNotes'), }, }, + backgrounds022018: { + chessboard_land: { + text: t('backgroundChessboardLandText'), + notes: t('backgroundChessboardLandNotes'), + }, + magical_museum: { + text: t('backgroundMagicalMuseumText'), + notes: t('backgroundMagicalMuseumNotes'), + }, + rose_garden: { + text: t('backgroundRoseGardenText'), + notes: t('backgroundRoseGardenNotes'), + }, + }, incentiveBackgrounds: { violet: { text: t('backgroundVioletText'), diff --git a/website/common/script/content/gear/sets/armoire.js b/website/common/script/content/gear/sets/armoire.js index 38219f9d58..4df6b4d936 100644 --- a/website/common/script/content/gear/sets/armoire.js +++ b/website/common/script/content/gear/sets/armoire.js @@ -322,6 +322,14 @@ let armor = { set: 'coachDriver', canOwn: ownsItem('armor_armoire_coachDriverLivery'), }, + robeOfDiamonds: { + text: t('armorArmoireRobeOfDiamondsText'), + notes: t('armorArmoireRobeOfDiamondsNotes', { per: 13 }), + value: 100, + per: 13, + set: 'kingOfDiamonds', + canOwn: ownsItem('armor_armoire_robeOfDiamonds'), + }, }; let body = { @@ -690,6 +698,14 @@ let head = { set: 'coachDriver', canOwn: ownsItem('head_armoire_coachDriversHat'), }, + crownOfDiamonds: { + text: t('headArmoireCrownOfDiamondsText'), + notes: t('headArmoireCrownOfDiamondsNotes', { int: 13 }), + value: 100, + int: 13, + set: 'kingOfDiamonds', + canOwn: ownsItem('head_armoire_crownOfDiamonds'), + }, }; let shield = { @@ -851,6 +867,14 @@ let shield = { set: 'weaver', canOwn: ownsItem('shield_armoire_weaversShuttle'), }, + shieldOfDiamonds: { + text: t('shieldArmoireShieldOfDiamondsText'), + notes: t('shieldArmoireShieldOfDiamondsNotes', { con: 10 }), + value: 100, + con: 10, + // set: 'kingOfDiamonds', + canOwn: ownsItem('shield_armoire_shieldOfDiamonds'), + }, }; let headAccessory = { @@ -1124,6 +1148,14 @@ let weapon = { set: 'coachDriver', canOwn: ownsItem('weapon_armoire_coachDriversWhip'), }, + scepterOfDiamonds: { + text: t('weaponArmoireScepterOfDiamondsText'), + notes: t('weaponArmoireScepterOfDiamondsNotes', { str: 13 }), + value: 100, + str: 13, + set: 'kingOfDiamonds', + canOwn: ownsItem('weapon_armoire_scepterOfDiamonds'), + }, }; let armoireSet = { diff --git a/website/common/script/content/hatching-potions.js b/website/common/script/content/hatching-potions.js index a215d450b8..1b2c9801f7 100644 --- a/website/common/script/content/hatching-potions.js +++ b/website/common/script/content/hatching-potions.js @@ -3,7 +3,7 @@ import defaults from 'lodash/defaults'; import each from 'lodash/each'; import t from './translation'; -const CURRENT_SEASON = 'January'; +const CURRENT_SEASON = 'NONE'; let drops = { Base: { diff --git a/website/common/script/content/index.js b/website/common/script/content/index.js index 4f5d46dbda..c5b33f81f3 100644 --- a/website/common/script/content/index.js +++ b/website/common/script/content/index.js @@ -266,12 +266,12 @@ api.specialMounts = stable.specialMounts; api.mountInfo = stable.mountInfo; // For seasonal events, change these booleans: -let canBuyNormalFood = false; -let canDropNormalFood = false; +let canBuyNormalFood = true; +let canDropNormalFood = true; let canBuyCandyFood = false; let canDropCandyFood = false; -let canBuyCakeFood = true; -let canDropCakeFood = true; +let canBuyCakeFood = false; +let canDropCakeFood = false; api.food = { Meat: { diff --git a/website/common/script/content/shop-featuredItems.js b/website/common/script/content/shop-featuredItems.js index 2a45c432c6..d580fa3a6d 100644 --- a/website/common/script/content/shop-featuredItems.js +++ b/website/common/script/content/shop-featuredItems.js @@ -6,11 +6,11 @@ const featuredItems = { }, { type: 'hatchingPotions', - path: 'hatchingPotions.Holly', + path: 'hatchingPotions.CottonCandyBlue', }, { type: 'hatchingPotions', - path: 'hatchingPotions.StarryNight', + path: 'hatchingPotions.Golden', }, { type: 'card', diff --git a/website/common/script/libs/shops-seasonal.config.js b/website/common/script/libs/shops-seasonal.config.js index 01e1c333c6..3f03bedee0 100644 --- a/website/common/script/libs/shops-seasonal.config.js +++ b/website/common/script/libs/shops-seasonal.config.js @@ -1,14 +1,13 @@ -import { SEASONAL_SETS } from '../content/constants'; +// import { SEASONAL_SETS } from '../content/constants'; module.exports = { - opened: true, + opened: false, - currentSeason: 'Winter', + currentSeason: 'Closed', dateRange: { start: '2017-12-19', end: '2018-01-31' }, availableSets: [ - ...SEASONAL_SETS.winter, ], pinnedSets: { @@ -19,7 +18,6 @@ module.exports = { }, availableSpells: [ - 'snowball', ], availableQuests: [ diff --git a/website/raw_sprites/spritesmith/backgrounds/background_chessboard_land.png b/website/raw_sprites/spritesmith/backgrounds/background_chessboard_land.png new file mode 100644 index 0000000000..bdcc935566 Binary files /dev/null and b/website/raw_sprites/spritesmith/backgrounds/background_chessboard_land.png differ diff --git a/website/raw_sprites/spritesmith/backgrounds/background_magical_museum.png b/website/raw_sprites/spritesmith/backgrounds/background_magical_museum.png new file mode 100644 index 0000000000..f7ff9ae6ed Binary files /dev/null and b/website/raw_sprites/spritesmith/backgrounds/background_magical_museum.png differ diff --git a/website/raw_sprites/spritesmith/backgrounds/background_rose_garden.png b/website/raw_sprites/spritesmith/backgrounds/background_rose_garden.png new file mode 100644 index 0000000000..8081fb991c Binary files /dev/null and b/website/raw_sprites/spritesmith/backgrounds/background_rose_garden.png differ diff --git a/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_chessboard_land.png b/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_chessboard_land.png new file mode 100644 index 0000000000..2d0bd6b394 Binary files /dev/null and b/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_chessboard_land.png differ diff --git a/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_magical_museum.png b/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_magical_museum.png new file mode 100644 index 0000000000..5ca59deeb9 Binary files /dev/null and b/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_magical_museum.png differ diff --git a/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_rose_garden.png b/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_rose_garden.png new file mode 100644 index 0000000000..bd88ac3d81 Binary files /dev/null and b/website/raw_sprites/spritesmith/backgrounds/icons/icon_background_rose_garden.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/broad_armor_armoire_robeOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/broad_armor_armoire_robeOfDiamonds.png new file mode 100644 index 0000000000..9c166874c8 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/broad_armor_armoire_robeOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/head_armoire_crownOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/head_armoire_crownOfDiamonds.png new file mode 100644 index 0000000000..1bfda78f30 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/head_armoire_crownOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/shield_armoire_shieldOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/shield_armoire_shieldOfDiamonds.png new file mode 100644 index 0000000000..e2d3a07c0d Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/shield_armoire_shieldOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_robeOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_robeOfDiamonds.png new file mode 100644 index 0000000000..515b4d6ec6 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_armor_armoire_robeOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/shop/shop_head_armoire_crownOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_head_armoire_crownOfDiamonds.png new file mode 100644 index 0000000000..4696a59cf7 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_head_armoire_crownOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_shieldOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_shieldOfDiamonds.png new file mode 100644 index 0000000000..1494b1b569 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_shield_armoire_shieldOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/shop/shop_weapon_armoire_scepterOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_weapon_armoire_scepterOfDiamonds.png new file mode 100644 index 0000000000..397d88fac3 Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/shop/shop_weapon_armoire_scepterOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/slim_armor_armoire_robeOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/slim_armor_armoire_robeOfDiamonds.png new file mode 100644 index 0000000000..2444309a6a Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/slim_armor_armoire_robeOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/gear/armoire/weapon_armoire_scepterOfDiamonds.png b/website/raw_sprites/spritesmith/gear/armoire/weapon_armoire_scepterOfDiamonds.png new file mode 100644 index 0000000000..b86e8562ed Binary files /dev/null and b/website/raw_sprites/spritesmith/gear/armoire/weapon_armoire_scepterOfDiamonds.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_bailey.png b/website/raw_sprites/spritesmith/npcs/npc_bailey.png index 77347e3749..d5940b986b 100644 Binary files a/website/raw_sprites/spritesmith/npcs/npc_bailey.png and b/website/raw_sprites/spritesmith/npcs/npc_bailey.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_justin.png b/website/raw_sprites/spritesmith/npcs/npc_justin.png index 08ad42e374..08ba7025c2 100644 Binary files a/website/raw_sprites/spritesmith/npcs/npc_justin.png and b/website/raw_sprites/spritesmith/npcs/npc_justin.png differ diff --git a/website/raw_sprites/spritesmith/npcs/npc_matt.png b/website/raw_sprites/spritesmith/npcs/npc_matt.png index 056b638cdc..2531f1084b 100644 Binary files a/website/raw_sprites/spritesmith/npcs/npc_matt.png and b/website/raw_sprites/spritesmith/npcs/npc_matt.png differ diff --git a/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_201802.png b/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_201802.png new file mode 100644 index 0000000000..c1e3ded4cf Binary files /dev/null and b/website/raw_sprites/spritesmith_large/promo_armoire_backgrounds_201802.png differ diff --git a/website/raw_sprites/spritesmith_large/scene_yesterdailies_repeatables.png b/website/raw_sprites/spritesmith_large/scene_yesterdailies_repeatables.png new file mode 100644 index 0000000000..d6218704ff Binary files /dev/null and b/website/raw_sprites/spritesmith_large/scene_yesterdailies_repeatables.png differ diff --git a/website/server/controllers/api-v3/news.js b/website/server/controllers/api-v3/news.js index 2069ce73c6..9c2e67f5c6 100644 --- a/website/server/controllers/api-v3/news.js +++ b/website/server/controllers/api-v3/news.js @@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth'; let api = {}; // @TODO export this const, cannot export it from here because only routes are exported from controllers -const LAST_ANNOUNCEMENT_TITLE = 'HABITICA BIRTHDAY CELEBRATION, LAST CHANCE FOR WINTER WONDERLAND ITEMS, AND CONTINUED RESOLUTION PLOT-LINE'; +const LAST_ANNOUNCEMENT_TITLE = 'NEW BACKGROUNDS AND ARMOIRE ITEMS, OFFICIAL CHALLENGES, AND FIXES'; const worldDmg = { // @TODO bailey: false, }; @@ -27,66 +27,46 @@ api.getNews = { html: `
-
-
-

${res.t('newStuff')}

+
+
+
+
+

${res.t('newStuff')}

+
+

2/1/2018 - ${LAST_ANNOUNCEMENT_TITLE}

+
+

February Backgrounds and Armoire Items!

+

We’ve added three new backgrounds to the Background Shop! Now your avatar can dally in a Rose Garden, explore a Magical Museum, and play in Chessboard Land. Check them out under the User Icon > Backgrounds!

+

Plus, there’s new gold-purchasable equipment in the Enchanted Armoire, including the King of Diamonds Set. Better work hard on your real-life tasks to earn all the pieces! Enjoy :)

+
by AnnDeLune, weeWitch, Katy133, RandomGryffindor, and Chimera Liani
+
+
-

1/30/2018 - ${LAST_ANNOUNCEMENT_TITLE}

-
- -
- -

Habitica Birthday Party!

-

January 31st is Habitica's Birthday! Thank you so much for being a part of our community - it means a lot.

-

Now come join us and the NPCs as we celebrate!

- -

Cake for Everybody!

-

In honor of the festivities, everyone has been awarded an assortment of yummy cake to feed to your pets! Plus, for the next two days - Alexander the Merchant - is selling cake in his shop, and cake will sometimes drop when you complete your tasks. Cake works just like normal pet food, - but if you want to know what type of pet likes each slice, the wiki has spoilers. -

- -

Party Robes

-

There are Party Robes available for free in the Rewards column! Don them with pride.

- -

Birthday Bash Achievement

-

In honor of Habitica's birthday, everyone has been awarded the Habitica Birthday Bash achievement! This achievement stacks for each Birthday Bash you celebrate with us.

-
+
-

Last Chance for Frost Sprite Set

-

Reminder: this is the final day to subscribe - and receive the Frost Sprite Set! Subscribing also lets you buy gems for gold. The longer your subscription, the more gems you get!

-

Thanks so much for your support! You help keep Habitica running.

-
by Beffymaroo
- -

Last Chance for Starry Night and Holly Hatching Potions

-

Reminder: this is the final day to buy Starry Night and Holly Hatching Potions! If they come back, it won't be until next year at the earliest, so don't delay!

-
by Vampitch, JinjooHat, Lemoness, and SabreCat
- -

Resolution Plot-Line: Broken Buildings

-

Lemoness, SabreCat, and Beffymaroo call an important meeting to address the rumors that are flying about this strange outbreak of Habiticans who are suddenly losing all faith in their ability to complete their New Year's Resolutions.

-

“Thank you all for coming,” Lemoness says. “I'm afraid that we have some very serious news to share, but we ask that you remain calm.”

+

February 2018 Resolution Success Challenge and Take This Challenge

+

The Habitica team has launched a special official Challenge series hosted in the Official New Year's Resolution Guild. These Challenges are designed to help you build and maintain goals that are destined for success and then stick with them as the year progresses. For this month's Challenge, Hone your Weapons, we're focusing on making sure the goals you've set this year are specific and achievable! It has a 15 Gem prize, which will be awarded to five lucky winners on March 1st.

-
+

Congratulations to the winners of January's Challenge: upsidedawn, Cristalias, feistyturtle, Yachiie, and Stijn Verwijmeren!

+
+
+

The next Take This Challenge has also launched, Cast of Characters!, with a focus on imagining one's positive and negative feelings as characters in a story. Be sure to check it out to earn additional pieces of the Take This armor set!

+

Take This is a nonprofit that seeks to inform the gamer community about mental health issues, to provide education about mental disorders and mental illness prevention, and to reduce the stigma of mental illness.

+
+
+
+

Congratulations to the winners of the last Take This Challenge, 'Check Your HP!': grand prize winner PoNyasha, and runners-up -ᏲᎾ-, Kat Thompson, 𝒮𝔲𝔠𝔥𝔢𝔯𝔪𝔞𝔲𝔰 🐭, Cal_Fizz, and redfeather! Plus, all participants in that Challenge have received a piece of the Take This item set if they hadn't completed the set already. Armor pieces are located in your Rewards column. Enjoy!

+
by Doctor B, the Take This team, Lemoness, Beffymaroo, and SabreCat
+

Updates and Fixes

+

We've made a number of fixes, most prominently a bunch of fixes for notifications so that they direct you to the correct place when clicked and disappear after that!

+

We've also fixed the issue where some Habiticans were seeing old announcements from Bailey rather than the latest ones, and we've added a way for Group Plan managers to note when an assigned task needs further work from the assignee.

+

We hope these fixes improve your Habitica experience!

+
by Paglias, TheHollidayInn, and Apollo
-

“While it's natural to feel a little disheartened as the end of January approaches,” Beffymaroo says, “these sudden outbreaks appear to have some strange magical origin. - We're still investigating the exact cause, but we do know that the buildings where the affected Habiticans live often seem to sustain some damage immediately before the attack.”

- -

SabreCat clears his throat. “For this reason, we strongly encourage everyone to stay away from broken-down structures, and if you feel any strange tremors or hear odd sounds, - please report them immediately.”

- -

“Stay safe, Habiticans.” Lemoness flashes her best comforting smile. - “And remember that if your New Year's Resolution goals seem daunting, you can always seek support in the - New Year's Resolution Guild.”

- -

How mysterious! Hopefully they'll get to the bottom of this soon.

- -
`, }); @@ -122,4 +102,4 @@ api.tellMeLaterNews = { }, }; -module.exports = api; \ No newline at end of file +module.exports = api;