diff --git a/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css b/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css index fef3a997d2..fd8bcc9414 100644 --- a/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css +++ b/website/client/src/assets/css/sprites/spritesmith-largeSprites-0.css @@ -42,7 +42,7 @@ } .promo_take_this { background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); - background-position: -785px -259px; + background-position: -927px -389px; width: 96px; height: 69px; } @@ -58,3 +58,15 @@ width: 258px; height: 258px; } +.scene_nakonana { + background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); + background-position: -785px -389px; + width: 141px; + height: 169px; +} +.scene_strength { + background-image: url('~@/assets/images/sprites/spritesmith-largeSprites-0.png'); + background-position: -785px -259px; + width: 192px; + height: 129px; +} diff --git a/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png b/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png index 79c4064ad8..6ad5b022d9 100644 Binary files a/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png and b/website/client/src/assets/images/sprites/spritesmith-largeSprites-0.png differ diff --git a/website/common/script/fns/randomDrop.js b/website/common/script/fns/randomDrop.js index cfcab7da5d..ef47ba4380 100644 --- a/website/common/script/fns/randomDrop.js +++ b/website/common/script/fns/randomDrop.js @@ -46,7 +46,8 @@ export default function randomDrop (user, options, req = {}, analytics) { let chance = min([Math.abs(task.value - 21.27), 37.5]) / 150 + 0.02; chance *= task.priority // Task priority: +50% for Medium, +100% for Hard - * (1 + Math.max(0, 80 - (5 * user.stats.lvl)) / 100) // Experimental: more at low levels + // A/B test experiment: start users with +75% drops, diminishing by 5% per level gained + * '12345678'.indexOf(user._id.slice(0, 1)) !== -1 ? (1 + Math.max(0, 80 - (5 * user.stats.lvl)) / 100) : 1 * (1 + (task.streak / 100 || 0)) // Streak bonus: +1% per streak * (1 + statsComputed(user).per / 100) // PERception: +1% per point * (1 + (user.contributor.level / 40 || 0)) // Contrib levels: +2.5% per level diff --git a/website/raw_sprites/spritesmith_large/scene_nakonana.png b/website/raw_sprites/spritesmith_large/scene_nakonana.png new file mode 100644 index 0000000000..9c5b64c38b Binary files /dev/null and b/website/raw_sprites/spritesmith_large/scene_nakonana.png differ diff --git a/website/raw_sprites/spritesmith_large/scene_strength.png b/website/raw_sprites/spritesmith_large/scene_strength.png new file mode 100644 index 0000000000..2ac7ef3828 Binary files /dev/null and b/website/raw_sprites/spritesmith_large/scene_strength.png differ diff --git a/website/server/controllers/api-v3/news.js b/website/server/controllers/api-v3/news.js index 18a1a5fc35..2d954f3e41 100644 --- a/website/server/controllers/api-v3/news.js +++ b/website/server/controllers/api-v3/news.js @@ -4,7 +4,7 @@ const api = {}; // @TODO export this const, cannot export it from here because only routes are exported from // controllers -const LAST_ANNOUNCEMENT_TITLE = 'SUMMER SPLASH HATCHING POTIONS AND SPLASHY SKINS'; +const LAST_ANNOUNCEMENT_TITLE = 'BLOG POSTS: GUILD AND USE CASE SPOTLIGHTS'; const worldDmg = { // @TODO bailey: false, }; @@ -31,40 +31,41 @@ api.getNews = {

${res.t('newStuff')}

-

6/23/2020 - ${LAST_ANNOUNCEMENT_TITLE}

+

6/25/2020 - ${LAST_ANNOUNCEMENT_TITLE}


-
-

Summer Splash Magic Hatching Potions!

+
+

Guild Spotlight: Nakonana's Favorites

- There's a new pet breed in town! Check out the brand-new Sand Sculpture Potions and the - return of Aquatic and Watery Potions to heat up your Summer avatar look. Get them from - the Market and use them to hatch any standard pet egg. (Magic - Hatching Potions do not work on Quest Pet eggs.) Magic Hatching Potion Pets aren't picky, - so they'll happily eat any kind of food that you feed them! + For this year's Guild Spotlight series, we're highlighting some favorites from Habitica's + staff, moderators, and some high-level contributors!

- These potions will be available until Summer Splash ends on July 31. After they're gone, - it will be at least a year before these Hatching Potions return, so be sure to get them - now! + This month we're sharing picks from socialite and translator Nakonana! If you want to curate + your Habitica experience and join active, positive Guilds, this is a great way to pick up + some new ideas for Guilds to join.

-
- by Shine Caramia, a_diamond, Persephone, Stefalupagus, Beffymaroo and SabreCat -
-
-

Splashy Skins!

+
by shanaqui
+
+

Use Case Spotlight: Adapting to Life Changes

- The Seasonal Edition Splashy Skins are back! You can complete your summer avatar look - with Clownfish, Deep Ocean, Tropical Water, Mergold, Mergreen, Merblue, Merruby, and - Shark Skins. + This month's Use Case Spotlight is about Adapting to Life Changes! It features a + number of great suggestions submitted by Habiticans in the Use Case Spotlights Guild. + We hope it helps any of you who might be facing changes in your routine.

- This Seasonal Edition customization set will only be available to purchase until July - 31st, after which they'll be gone until next year, so be sure to scoop them up now! You - can find them in User > Edit Avatar! + Plus, we're collecting user submissions for the next spotlight! How do you use Challenges + to enhance your Habitica experience? We’ll be featuring player-submitted examples in Use + Case Spotlights on the Habitica Blog next month, so post your suggestions in the Use Case + Spotlight Guild now. We look forward to learning more about how you use Habitica to + improve your life and get things done!

-
by Lemoness and UncommonCriminal
+
by shanaqui
`, }); diff --git a/website/server/libs/cron.js b/website/server/libs/cron.js index ea10ed9489..2c9d266bc8 100644 --- a/website/server/libs/cron.js +++ b/website/server/libs/cron.js @@ -201,6 +201,7 @@ function resetHabitCounters (user, tasksByType, now, daysMissed) { } function trackCronAnalytics (analytics, user, _progress, options) { + user._ABtests['20200625_drops'] = '12345678'.indexOf(user._id.slice(0, 1)) !== -1 ? 'boosted' : 'control'; analytics.track('Cron', { category: 'behavior', gaLabel: 'Cron Count',