mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-16 14:17:22 +01:00
feat(content): new achievement and bundle
This commit is contained in:
@@ -319,6 +319,14 @@ const NOTIFICATIONS = {
|
|||||||
achievement: 'bugBonanza', // defined manually until the server sends all the necessary data
|
achievement: 'bugBonanza', // defined manually until the server sends all the necessary data
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
ACHIEVEMENT_BARE_NECESSITIES: {
|
||||||
|
achievement: true,
|
||||||
|
label: $t => `${$t('achievement')}: ${$t('achievementBareNecessities')}`,
|
||||||
|
modalId: 'generic-achievement',
|
||||||
|
data: {
|
||||||
|
achievement: 'bareNecessities', // defined manually until the server sends all the necessary data
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -377,7 +385,7 @@ export default {
|
|||||||
'ACHIEVEMENT_MOUNT_MASTER', 'ACHIEVEMENT_TRIAD_BINGO', 'ACHIEVEMENT_DUST_DEVIL', 'ACHIEVEMENT_ARID_AUTHORITY',
|
'ACHIEVEMENT_MOUNT_MASTER', 'ACHIEVEMENT_TRIAD_BINGO', 'ACHIEVEMENT_DUST_DEVIL', 'ACHIEVEMENT_ARID_AUTHORITY',
|
||||||
'ACHIEVEMENT_MONSTER_MAGUS', 'ACHIEVEMENT_UNDEAD_UNDERTAKER', 'ACHIEVEMENT_PRIMED_FOR_PAINTING',
|
'ACHIEVEMENT_MONSTER_MAGUS', 'ACHIEVEMENT_UNDEAD_UNDERTAKER', 'ACHIEVEMENT_PRIMED_FOR_PAINTING',
|
||||||
'ACHIEVEMENT_PEARLY_PRO', 'ACHIEVEMENT_TICKLED_PINK', 'ACHIEVEMENT_ROSY_OUTLOOK', 'ACHIEVEMENT',
|
'ACHIEVEMENT_PEARLY_PRO', 'ACHIEVEMENT_TICKLED_PINK', 'ACHIEVEMENT_ROSY_OUTLOOK', 'ACHIEVEMENT',
|
||||||
'ONBOARDING_COMPLETE', 'FIRST_DROPS', 'ACHIEVEMENT_BUG_BONANZA',
|
'ONBOARDING_COMPLETE', 'FIRST_DROPS', 'ACHIEVEMENT_BUG_BONANZA', 'ACHIEVEMENT_BARE_NECESSITIES',
|
||||||
].forEach(type => {
|
].forEach(type => {
|
||||||
handledNotifications[type] = true;
|
handledNotifications[type] = true;
|
||||||
});
|
});
|
||||||
@@ -792,6 +800,7 @@ export default {
|
|||||||
case 'ACHIEVEMENT_TICKLED_PINK':
|
case 'ACHIEVEMENT_TICKLED_PINK':
|
||||||
case 'ACHIEVEMENT_ROSY_OUTLOOK':
|
case 'ACHIEVEMENT_ROSY_OUTLOOK':
|
||||||
case 'ACHIEVEMENT_BUG_BONANZA':
|
case 'ACHIEVEMENT_BUG_BONANZA':
|
||||||
|
case 'ACHIEVEMENT_BARE_NECESSITIES':
|
||||||
case 'GENERIC_ACHIEVEMENT':
|
case 'GENERIC_ACHIEVEMENT':
|
||||||
this.showNotificationWithModal(notification);
|
this.showNotificationWithModal(notification);
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -318,7 +318,7 @@
|
|||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
:id="achievKey + '-achievement'"
|
:id="achievKey + '-achievement'"
|
||||||
class="box achievement-container"
|
class="box achievement-container d-flex align-items-center justify-content-center"
|
||||||
:class="{'achievement-unearned': !achievement.earned}"
|
:class="{'achievement-unearned': !achievement.earned}"
|
||||||
>
|
>
|
||||||
<b-popover
|
<b-popover
|
||||||
@@ -568,7 +568,6 @@
|
|||||||
.box {
|
.box {
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
margin-bottom: 1em;
|
margin-bottom: 1em;
|
||||||
padding-top: 1.2em;
|
|
||||||
background: $white;
|
background: $white;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,5 +78,8 @@
|
|||||||
"achievementRosyOutlookModalText": "You tamed all the Cotton Candy Pink Mounts!",
|
"achievementRosyOutlookModalText": "You tamed all the Cotton Candy Pink Mounts!",
|
||||||
"achievementBugBonanza": "Bug Bonanza",
|
"achievementBugBonanza": "Bug Bonanza",
|
||||||
"achievementBugBonanzaText": "Has completed Beetle, Butterfly, Snail, and Spider pet quests.",
|
"achievementBugBonanzaText": "Has completed Beetle, Butterfly, Snail, and Spider pet quests.",
|
||||||
"achievementBugBonanzaModalText": "You completed the Beetle, Butterfly, Snail, and Spider pet quests!"
|
"achievementBugBonanzaModalText": "You completed the Beetle, Butterfly, Snail, and Spider pet quests!",
|
||||||
|
"achievementBareNecessities": "Bare Necessities",
|
||||||
|
"achievementBareNecessitiesText": "Has completed Monkey, Sloth, and Treeling pet quests.",
|
||||||
|
"achievementBareNecessitiesModalText": "You completed the Monkey, Sloth, and Treeling pet quests!"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -806,5 +806,8 @@
|
|||||||
"questWaffleRageDescription": "Maple Mire: This bar fills when you don't complete your Dailies. When it is full, the Awful Waffle will set back the party's attack progress!",
|
"questWaffleRageDescription": "Maple Mire: This bar fills when you don't complete your Dailies. When it is full, the Awful Waffle will set back the party's attack progress!",
|
||||||
"questWaffleRageEffect": "`Awful Waffle uses MAPLE MIRE!` Sticky sappy syrup slows your swings and spells!",
|
"questWaffleRageEffect": "`Awful Waffle uses MAPLE MIRE!` Sticky sappy syrup slows your swings and spells!",
|
||||||
"questWaffleDropDessertPotion": "Confection Hatching Potion",
|
"questWaffleDropDessertPotion": "Confection Hatching Potion",
|
||||||
"questWaffleUnlockText": "Unlocks Confection Hatching Potions for purchase in the Market"
|
"questWaffleUnlockText": "Unlocks Confection Hatching Potions for purchase in the Market",
|
||||||
|
|
||||||
|
"jungleBuddiesText": "Jungle Buddies Quest Bundle",
|
||||||
|
"jungleBuddiesNotes": "Contains 'Monstrous Mandrill and the Mischief Monkeys', 'The Somnolent Sloth', and 'The Tangle Tree'. Available until <%= date %>."
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -192,6 +192,11 @@ const basicAchievs = {
|
|||||||
titleKey: 'achievementBugBonanza',
|
titleKey: 'achievementBugBonanza',
|
||||||
textKey: 'achievementBugBonanzaText',
|
textKey: 'achievementBugBonanzaText',
|
||||||
},
|
},
|
||||||
|
bareNecessities: {
|
||||||
|
icon: 'achievement-bareNecessities',
|
||||||
|
titleKey: 'achievementBareNecessities',
|
||||||
|
textKey: 'achievementBareNecessitiesText',
|
||||||
|
},
|
||||||
};
|
};
|
||||||
Object.assign(achievementsData, basicAchievs);
|
Object.assign(achievementsData, basicAchievs);
|
||||||
|
|
||||||
|
|||||||
@@ -221,6 +221,21 @@ const bundles = {
|
|||||||
type: 'quests',
|
type: 'quests',
|
||||||
value: 7,
|
value: 7,
|
||||||
},
|
},
|
||||||
|
jungleBuddies: {
|
||||||
|
key: 'jungleBuddies',
|
||||||
|
text: t('jungleBuddiesText'),
|
||||||
|
notes: t('jungleBuddiesNotes', { date: moment('2020-05-31').format('LL') }),
|
||||||
|
bundleKeys: [
|
||||||
|
'monkey',
|
||||||
|
'sloth',
|
||||||
|
'treeling',
|
||||||
|
],
|
||||||
|
canBuy () {
|
||||||
|
return moment().isBetween('2020-05-19', '2020-06-02');
|
||||||
|
},
|
||||||
|
type: 'quests',
|
||||||
|
value: 7,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
export default bundles;
|
export default bundles;
|
||||||
|
|||||||
@@ -282,6 +282,11 @@ export const QUEST_SERIES_ACHIEVEMENTS = {
|
|||||||
'snail',
|
'snail',
|
||||||
'spider',
|
'spider',
|
||||||
],
|
],
|
||||||
|
bareNecessities: [
|
||||||
|
'monkey',
|
||||||
|
'sloth',
|
||||||
|
'treeling',
|
||||||
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ANIMAL_COLOR_ACHIEVEMENTS = [
|
export const ANIMAL_COLOR_ACHIEVEMENTS = [
|
||||||
|
|||||||
@@ -200,6 +200,7 @@ function _getBasicAchievements (user, language) {
|
|||||||
_addSimple(result, user, { path: 'tickledPink', language });
|
_addSimple(result, user, { path: 'tickledPink', language });
|
||||||
_addSimple(result, user, { path: 'rosyOutlook', language });
|
_addSimple(result, user, { path: 'rosyOutlook', language });
|
||||||
_addSimple(result, user, { path: 'bugBonanza', language });
|
_addSimple(result, user, { path: 'bugBonanza', language });
|
||||||
|
_addSimple(result, user, { path: 'bareNecessities', language });
|
||||||
|
|
||||||
_addSimpleWithMasterCount(result, user, { path: 'beastMaster', language });
|
_addSimpleWithMasterCount(result, user, { path: 'beastMaster', language });
|
||||||
_addSimpleWithMasterCount(result, user, { path: 'mountMaster', language });
|
_addSimpleWithMasterCount(result, user, { path: 'mountMaster', language });
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -4,7 +4,7 @@ const api = {};
|
|||||||
|
|
||||||
// @TODO export this const, cannot export it from here because only routes are exported from
|
// @TODO export this const, cannot export it from here because only routes are exported from
|
||||||
// controllers
|
// controllers
|
||||||
const LAST_ANNOUNCEMENT_TITLE = 'BLOG POST: RESTING IN THE INN';
|
const LAST_ANNOUNCEMENT_TITLE = 'NEW PET ACHIEVEMENT AND QUEST BUNDLE!';
|
||||||
const worldDmg = { // @TODO
|
const worldDmg = { // @TODO
|
||||||
bailey: false,
|
bailey: false,
|
||||||
};
|
};
|
||||||
@@ -35,16 +35,37 @@ api.getNews = {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="scene_pets_resting center-block"></div>
|
<div class="achievement-bareNecessities2x center-block"></div>
|
||||||
|
<h3>New Quest Pet Badge!</h3>
|
||||||
<p>
|
<p>
|
||||||
This month's <a href='https://habitica.wordpress.com/2020/05/13/rest-in-the-inn/'
|
We're releasing a new achievement so you can celebrate your successes in the world of
|
||||||
target='_blank'>featured Wiki article</a> is about Resting in the Inn! We hope that it
|
Habitican Pet collecting! Earn the Bare Necessities achievement by collecting all
|
||||||
will help you when you need a break from your Dailies. Be sure to check it out, and let
|
Habitica's jungle-dwelling Pets and you'll earn a nifty badge for your profile.
|
||||||
us know what you think by reaching out on <a href='https://twitter.com/habitica'
|
|
||||||
target='_blank'>Twitter</a>, <a href='http://blog.habitrpg.com' target='_blank'>
|
|
||||||
Tumblr</a>, and <a href='https://facebook.com/habitica' target='_blank'>Facebook</a>.
|
|
||||||
</p>
|
</p>
|
||||||
<div class="small mb-3">by shanaqui and the Wiki Wizards</div>
|
<p>
|
||||||
|
If you’ve already completed the required Quests for a newly released achievement, you
|
||||||
|
don’t have to do them all again! Just complete one of the relevant Quests and the
|
||||||
|
Achievement will unlock. Check your profile and celebrate your new Achievement with
|
||||||
|
pride.
|
||||||
|
</p>
|
||||||
|
<div class="small mb-3">by Beffymaroo and SabreCat</div>
|
||||||
|
<div class="promo_jungle_buddies_bundle center-block"></div>
|
||||||
|
<h3>New Discounted Pet Quest Bundle: Jungle Buddies!</h3>
|
||||||
|
<p>
|
||||||
|
If you're eager to complete the Bare Necessities quests, or if you're simply looking to
|
||||||
|
add some equatorial pets to your Habitica stable, you're in luck! From now until May 30,
|
||||||
|
you can purchase the Jungle Buddies Pet Quest Bundle and receive the Monkey, Sloth, and
|
||||||
|
Treeling quests, all for only 7 Gems! That's a discount of 5 Gems from the price of
|
||||||
|
purchasing them separately. Check it out in the <a href='/shops/quests'>Quest Shop</a>
|
||||||
|
today!
|
||||||
|
</p>
|
||||||
|
<div class="small">by SabreCat</div>
|
||||||
|
<div class="small">Writing by PixelHunter, Emily Austin, Flutter Bee, and Felipe NA</div>
|
||||||
|
<div class="small mb-3">
|
||||||
|
Art by JaizakAripaik, Drevian, McCoyly, awakebyjava, PainterProphet, Kiwibot,
|
||||||
|
greenpencil, fuzzytrees, PainterProphet, aurakami, yamato, leephon, Misceo, and
|
||||||
|
Oneironaut
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ export default new Schema({
|
|||||||
tickledPink: Boolean,
|
tickledPink: Boolean,
|
||||||
rosyOutlook: Boolean,
|
rosyOutlook: Boolean,
|
||||||
bugBonanza: Boolean,
|
bugBonanza: Boolean,
|
||||||
|
bareNecessities: Boolean,
|
||||||
// Onboarding Guide
|
// Onboarding Guide
|
||||||
createdTask: Boolean,
|
createdTask: Boolean,
|
||||||
completedTask: Boolean,
|
completedTask: Boolean,
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ const NOTIFICATION_TYPES = [
|
|||||||
'ACHIEVEMENT_TICKLED_PINK',
|
'ACHIEVEMENT_TICKLED_PINK',
|
||||||
'ACHIEVEMENT_ROSY_OUTLOOK',
|
'ACHIEVEMENT_ROSY_OUTLOOK',
|
||||||
'ACHIEVEMENT_BUG_BONANZA',
|
'ACHIEVEMENT_BUG_BONANZA',
|
||||||
|
'ACHIEVEMENT_BARE_NECESSITIES',
|
||||||
'ACHIEVEMENT', // generic achievement notification, details inside `notification.data`
|
'ACHIEVEMENT', // generic achievement notification, details inside `notification.data`
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user