feat(content): Kangaroo Pet Quest
@@ -15,22 +15,22 @@
|
|||||||
|
|
||||||
// Show avatar only if not currently affected by visual buff
|
// Show avatar only if not currently affected by visual buff
|
||||||
template(v-if="showAvatar()")
|
template(v-if="showAvatar()")
|
||||||
span(:class="'chair_' + member.preferences.chair")
|
span(:class="['chair_' + member.preferences.chair, specialMountClass]")
|
||||||
span(:class="getGearClass('back')")
|
span(:class="[getGearClass('back'), specialMountClass]")
|
||||||
span(:class="skinClass")
|
span(:class="[skinClass, specialMountClass]")
|
||||||
span(:class="member.preferences.size + '_shirt_' + member.preferences.shirt")
|
span(:class="[member.preferences.size + '_shirt_' + member.preferences.shirt, specialMountClass]")
|
||||||
span.head_0
|
span(:class="['head_0', specialMountClass]")
|
||||||
span(:class="member.preferences.size + '_' + getGearClass('armor')")
|
span(:class="[member.preferences.size + '_' + getGearClass('armor'), specialMountClass]")
|
||||||
span(:class="getGearClass('back_collar')")
|
span(:class="[getGearClass('back_collar'), specialMountClass]")
|
||||||
template(v-for="type in ['bangs', 'base', 'mustache', 'beard']")
|
template(v-for="type in ['bangs', 'base', 'mustache', 'beard']")
|
||||||
span(:class="'hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color")
|
span(:class="['hair_' + type + '_' + member.preferences.hair[type] + '_' + member.preferences.hair.color, specialMountClass]")
|
||||||
span(:class="getGearClass('body')")
|
span(:class="[getGearClass('body'), specialMountClass]")
|
||||||
span(:class="getGearClass('eyewear')")
|
span(:class="[getGearClass('eyewear'), specialMountClass]")
|
||||||
span(:class="getGearClass('head')")
|
span(:class="[getGearClass('head'), specialMountClass]")
|
||||||
span(:class="getGearClass('headAccessory')")
|
span(:class="[getGearClass('headAccessory'), specialMountClass]")
|
||||||
span(:class="'hair_flower_' + member.preferences.hair.flower")
|
span(:class="['hair_flower_' + member.preferences.hair.flower, specialMountClass]")
|
||||||
span(v-if="!hideGear('shield')", :class="getGearClass('shield')")
|
span(v-if="!hideGear('shield')", :class="[getGearClass('shield'), specialMountClass]")
|
||||||
span(v-if="!hideGear('weapon')", :class="getGearClass('weapon')")
|
span(v-if="!hideGear('weapon')", :class="[getGearClass('weapon'), specialMountClass]")
|
||||||
|
|
||||||
// Resting
|
// Resting
|
||||||
span.zzz(v-if="member.preferences.sleep")
|
span.zzz(v-if="member.preferences.sleep")
|
||||||
@@ -67,6 +67,10 @@
|
|||||||
bottom: 0px;
|
bottom: 0px;
|
||||||
left: 0px;
|
left: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.offset-kangaroo {
|
||||||
|
margin-top: 24px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
@@ -172,6 +176,11 @@ export default {
|
|||||||
costumeClass () {
|
costumeClass () {
|
||||||
return this.member.preferences.costume ? 'costume' : 'equipped';
|
return this.member.preferences.costume ? 'costume' : 'equipped';
|
||||||
},
|
},
|
||||||
|
specialMountClass () {
|
||||||
|
if (!this.avatarOnly && this.member.items.currentMount && this.member.items.currentMount.indexOf('Kangaroo') !== -1) {
|
||||||
|
return 'offset-kangaroo';
|
||||||
|
}
|
||||||
|
},
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getGearClass (gearType) {
|
getGearClass (gearType) {
|
||||||
|
|||||||
@@ -225,19 +225,23 @@
|
|||||||
|
|
||||||
"questEggPterodactylText": "Pterodactyl",
|
"questEggPterodactylText": "Pterodactyl",
|
||||||
"questEggPterodactylMountText": "Pterodactyl",
|
"questEggPterodactylMountText": "Pterodactyl",
|
||||||
"questEggPterodactylAdjective": "trusting",
|
"questEggPterodactylAdjective": "a trusting",
|
||||||
|
|
||||||
"questEggBadgerText": "Badger",
|
"questEggBadgerText": "Badger",
|
||||||
"questEggBadgerMountText": "Badger",
|
"questEggBadgerMountText": "Badger",
|
||||||
"questEggBadgerAdjective": "bustling",
|
"questEggBadgerAdjective": "a bustling",
|
||||||
|
|
||||||
"questEggSquirrelText": "Squirrel",
|
"questEggSquirrelText": "Squirrel",
|
||||||
"questEggSquirrelMountText": "Squirrel",
|
"questEggSquirrelMountText": "Squirrel",
|
||||||
"questEggSquirrelAdjective": "bushy-tailed",
|
"questEggSquirrelAdjective": "a bushy-tailed",
|
||||||
|
|
||||||
"questEggSeaSerpentText": "Sea Serpent",
|
"questEggSeaSerpentText": "Sea Serpent",
|
||||||
"questEggSeaSerpentMountText": "Sea Serpent",
|
"questEggSeaSerpentMountText": "Sea Serpent",
|
||||||
"questEggSeaSerpentAdjective": "shimmering",
|
"questEggSeaSerpentAdjective": "a shimmering",
|
||||||
|
|
||||||
|
"questEggKangarooText": "Kangaroo",
|
||||||
|
"questEggKangarooMountText": "Kangaroo",
|
||||||
|
"questEggKangarooAdjective": "a keen",
|
||||||
|
|
||||||
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
"eggNotes": "Find a hatching potion to pour on this egg, and it will hatch into <%= eggAdjective(locale) %> <%= eggText(locale) %>.",
|
||||||
|
|
||||||
|
|||||||
@@ -707,5 +707,12 @@
|
|||||||
"questSeaSerpentCompletion": "Battered by your commitment, the sea serpent flees, disappearing into the depths. When you arrive in Dilatory, you breathe a sigh of relief before noticing @*~Seraphina~ approaching with three translucent eggs cradled in her arms. “Here, you should have these,” she says. “You know how to handle a sea serpent!” As you accept the eggs, you vow anew to remain steadfast in completing your tasks to ensure that there’s not a repeat occurrence.",
|
"questSeaSerpentCompletion": "Battered by your commitment, the sea serpent flees, disappearing into the depths. When you arrive in Dilatory, you breathe a sigh of relief before noticing @*~Seraphina~ approaching with three translucent eggs cradled in her arms. “Here, you should have these,” she says. “You know how to handle a sea serpent!” As you accept the eggs, you vow anew to remain steadfast in completing your tasks to ensure that there’s not a repeat occurrence.",
|
||||||
"questSeaSerpentBoss": "The Mighty Sea Serpent",
|
"questSeaSerpentBoss": "The Mighty Sea Serpent",
|
||||||
"questSeaSerpentDropSeaSerpentEgg": "Sea Serpent (Egg)",
|
"questSeaSerpentDropSeaSerpentEgg": "Sea Serpent (Egg)",
|
||||||
"questSeaSerpentUnlockText": "Unlocks purchasable Sea Serpent eggs in the Market"
|
"questSeaSerpentUnlockText": "Unlocks purchasable Sea Serpent eggs in the Market",
|
||||||
|
|
||||||
|
"questKangarooText": "Kangaroo Catastrophe",
|
||||||
|
"questKangarooNotes": "Maybe you should have finished that last task… you know, the one you keep avoiding, even though it always comes back around? But @Mewrose and @LilithofAlfheim invited you and @stefalupagus to see a rare kangaroo troop hopping through the Sloensteadi Savannah; how could you say no?! As the troop comes into view, something hits you on the back of the head with a mighty <em>whack!</em><br><br>Shaking the stars from your vision, you pick up the responsible object--a dark red boomerang, with the very task you continually push back etched into its surface. A quick glance around confirms the rest of your party met a similar fate. One larger kangaroo looks at you with a smug grin, like she’s daring you to face her and that dreaded task once and for all!",
|
||||||
|
"questKangarooCompletion": "“NOW!” You signal your party to throw the boomerangs back at the kangaroo. The beast hops further away with each hit until she flees, leaving nothing more than a dark red cloud of dust, a few eggs, and some gold coins.<br><br>@Mewrose walks forward to where the kangaroo once stood. “Hey, where did the boomerangs go?”<br><br>“They probably dissolved into dust, making that dark red cloud, when we finished our respective tasks,” @stefalupagus speculates.<br><br>@LilithofAlfheim squints at the horizon. “Is that another kangaroo troop heading our way?”<br><br>You all break into a run back to Habit City. Better to face your difficult tasks than take another lump to the back of the head!",
|
||||||
|
"questKangarooBoss": "Catastrophic Kangaroo",
|
||||||
|
"questKangarooDropKangarooEgg": "Kangaroo (Egg)",
|
||||||
|
"questKangarooUnlockText": "Unlocks purchasable Kangaroo eggs in the Market"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -362,6 +362,12 @@ let quests = {
|
|||||||
adjective: t('questEggSeaSerpentAdjective'),
|
adjective: t('questEggSeaSerpentAdjective'),
|
||||||
canBuy: hasQuestAchievementFunction('seaserpent'),
|
canBuy: hasQuestAchievementFunction('seaserpent'),
|
||||||
},
|
},
|
||||||
|
Kangaroo: {
|
||||||
|
text: t('questEggKangarooText'),
|
||||||
|
mountText: t('questEggKangarooMountText'),
|
||||||
|
adjective: t('questEggKangarooAdjective'),
|
||||||
|
canBuy: hasQuestAchievementFunction('kangaroo'),
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
applyEggDefaults(drops, {
|
applyEggDefaults(drops, {
|
||||||
|
|||||||
@@ -3257,6 +3257,38 @@ let quests = {
|
|||||||
unlock: t('questSeaSerpentUnlockText'),
|
unlock: t('questSeaSerpentUnlockText'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
kangaroo: {
|
||||||
|
text: t('questKangarooText'),
|
||||||
|
notes: t('questKangarooNotes'),
|
||||||
|
completion: t('questKangarooCompletion'),
|
||||||
|
value: 4,
|
||||||
|
category: 'pet',
|
||||||
|
boss: {
|
||||||
|
name: t('questKangarooBoss'),
|
||||||
|
hp: 700,
|
||||||
|
str: 2,
|
||||||
|
},
|
||||||
|
drop: {
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
type: 'eggs',
|
||||||
|
key: 'Kangaroo',
|
||||||
|
text: t('questKangarooDropKangarooEgg'),
|
||||||
|
}, {
|
||||||
|
type: 'eggs',
|
||||||
|
key: 'Kangaroo',
|
||||||
|
text: t('questKangarooDropKangarooEgg'),
|
||||||
|
}, {
|
||||||
|
type: 'eggs',
|
||||||
|
key: 'Kangaroo',
|
||||||
|
text: t('questKangarooDropKangarooEgg'),
|
||||||
|
},
|
||||||
|
],
|
||||||
|
gp: 49,
|
||||||
|
exp: 425,
|
||||||
|
unlock: t('questKangarooUnlockText'),
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
each(quests, (v, key) => {
|
each(quests, (v, key) => {
|
||||||
|
|||||||
BIN
website/raw_sprites/spritesmith/quests/bosses/quest_kangaroo.png
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
BIN
website/raw_sprites/spritesmith/stable/eggs/Pet_Egg_Kangaroo.png
Normal file
|
After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 760 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 786 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 802 B After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 802 B After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 714 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 864 B After Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 773 B After Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 806 B After Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1005 B After Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 756 B |
|
After Width: | Height: | Size: 789 B |
|
After Width: | Height: | Size: 792 B |
|
After Width: | Height: | Size: 792 B |
|
After Width: | Height: | Size: 783 B |
|
After Width: | Height: | Size: 765 B |
|
After Width: | Height: | Size: 744 B |
|
After Width: | Height: | Size: 834 B |
|
After Width: | Height: | Size: 759 B |
|
After Width: | Height: | Size: 849 B |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
BIN
website/raw_sprites/spritesmith/stable/pets/Pet-Kangaroo-Red.png
Normal file
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
BIN
website/raw_sprites/spritesmith_large/promo_kangaroo.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 95 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
BIN
website/raw_sprites/spritesmith_large/scene_tavern.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
@@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth';
|
|||||||
let api = {};
|
let api = {};
|
||||||
|
|
||||||
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
||||||
const LAST_ANNOUNCEMENT_TITLE = 'OFFICIAL CHALLENGE: BACK-TO-SCHOOL PREPARATION!';
|
const LAST_ANNOUNCEMENT_TITLE = 'NEW PET QUEST: KANGAROOS! PLUS SPOTLIGHT ON HABITICA COMMUNITY INVOLVEMENT';
|
||||||
const worldDmg = { // @TODO
|
const worldDmg = { // @TODO
|
||||||
bailey: false,
|
bailey: false,
|
||||||
};
|
};
|
||||||
@@ -30,17 +30,28 @@ api.getNews = {
|
|||||||
<div class="mr-3 ${baileyClass}"></div>
|
<div class="mr-3 ${baileyClass}"></div>
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
||||||
<h2>8/8/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
<h2>8/16/2018 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="media align-items-center">
|
<div class="media align-items-center">
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
<p>The school year is looming large for many scholarly Habiticans, so we've prepared <a href='/challenges/0acb1d56-1660-41a4-af80-9259f080b62b' target='_blank'>a special Back-to-School Challenge</a> to help with the transition between summer and semester. Check it out now for a chance to win: five lucky winners will get a badge for their profile and their choice of a <a href='https://habitica.wikia.com/wiki/Subscription' target='_blank'>gift subscription</a> or Gems!</p>
|
<h3>New Pet Quest: Kangaroo Catastrophe!</h3>
|
||||||
<div class="small mb-3">by Beffymaroo</div>
|
<p>Ever feel like you've dodged a dreaded task, but it just comes back around to brain you like a whirling boomerang? Get the latest pet quest, "Kangaroo Catastrophe," from the <a href='/shops/quests' target='_blank'>Quest Shop</a> and earn some keen kangaroo pets by completing those real-life tasks!</p>
|
||||||
|
<div class="small">Art by stefalupagus, mewrose, LilithofAlfheim, ChrisSpatzerl, Willow the Witty, tricksy.fox, and Beffymaroo</div>
|
||||||
|
<div class="small mb-3">Writing by summra and SabreCat</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="scene_reading ml-3 mb-3"></div>
|
<div class="promo_kangaroo ml-3 mb-3"></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="media align-items-center">
|
||||||
|
<div class="scene_tavern mr-3"></div>
|
||||||
|
<div class="media-body">
|
||||||
|
<h3>Use Case Spotlight and Guild Spotlight on Getting Involved with Habitica's Community</h3>
|
||||||
|
<p>We've got new posts on the blog all about ways to get involved with Habitica's community! First, there's a <a href='https://habitica.wordpress.com/2018/08/16/getting-involved-in-habitica-guilds-for-contributing/' target='_blank'>Guild Spotlight</a> that highlights the Guilds that can help you earn a place as an esteemed Habitica contributor. We've also posted a <a href='https://habitica.wordpress.com/2018/08/16/use-case-spotlight-get-involved-in-the-habitica-community/' target='_blank'>Use Case Spotlight</a> featuring a number of great suggestions for other ways to get involved with contributing or simply getting social on the site and apps! These suggestions were submitted by Habiticans in the <a href='/groups/guild/1d3a10bf-60aa-4806-a38b-82d1084a59e6' target='_blank'>Use Case Spotlights Guild</a>.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<p>Plus, we're collecting user submissions for the next Use Case Spotlight! How do you use Habitica as you learn practical and hands-on skills? 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!</p>
|
||||||
|
<div class="small mb-3">by shanaqui</div>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|||||||