Skip to content

Commit

Permalink
feat(content): Masterclasser capstone quest
Browse files Browse the repository at this point in the history
Also fixes Quests page for clearer lock/unlock display
  • Loading branch information
SabreCat committed Oct 13, 2017
1 parent dcbe8f9 commit 9bc2624
Show file tree
Hide file tree
Showing 36 changed files with 327 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<template lang="pug">
div
div(v-if='item.locked')
h4.popover-content-title Locked Item
h4.popover-content-title {{ `${$t('lockedItem')}` }}
.popover-content-text(v-if='item.specialClass') {{ `${$t('classLockedItem')}` }}
.popover-content-text(v-else) {{ `${$t('tierLockedItem')}` }}
p
Expand Down
14 changes: 8 additions & 6 deletions website/client/components/shops/quests/index.vue
Original file line number Diff line number Diff line change
Expand Up @@ -136,8 +136,14 @@
)
span(slot="popoverContent")
div.questPopover
h4.popover-content-title {{ item.text }}
questInfo(:quest="item")
div
h4.popover-content-title(v-if='item.locked') {{ `${$t('lockedItem')}` }}
h4.popover-content-title(v-else) {{ item.text }}
.popover-content-text(v-if='item.locked && item.key === "lostMasterclasser1"') {{ `${$t('questUnlockLostMasterclasser')}` }}
.popover-content-text(v-if='item.locked && item.unlockCondition && item.unlockCondition.incentiveThreshold') {{ `${$t('loginIncentiveQuest', {count: item.unlockCondition.incentiveThreshold})}` }}
.popover-content-text(v-if='item.locked && item.previous') {{ `${$t('unlockByQuesting', {title: item.previous})}` }}
.popover-content-text(v-if='item.lvl > user.stats.lvl') {{ `${$t('mustLvlQuest', {level: item.lvl})}` }}
questInfo(v-if='!item.locked', :quest="item")

template(slot="itemBadge", scope="ctx")
span.badge.badge-pill.badge-item.badge-svg(
Expand Down Expand Up @@ -232,8 +238,6 @@
cursor: pointer;
}
.featured-label {
margin: 24px auto;
}
Expand All @@ -250,7 +254,6 @@
width: 33%;
margin-bottom: 24px;
.items {
border-radius: 2px;
background-color: #edecee;
Expand Down Expand Up @@ -306,7 +309,6 @@
background: url('~assets/images/npc/#{$npc_quests_flavor}/quest_shop_npc.png');
background-repeat: no-repeat;
.featured-label {
position: absolute;
bottom: -14px;
Expand Down
9 changes: 9 additions & 0 deletions website/common/locales/en/gear.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@
"weaponSpecialFencingFoilNotes": "Should anyone dare to impugn your honor, you'll be ready with this fine foil! Increases Strength by <%= str %>.",
"weaponSpecialTachiText": "Tachi",
"weaponSpecialTachiNotes": "This light and curved sword will shred your tasks to ribbons! Increases Strength by <%= str %>.",
"weaponSpecialAetherCrystalsText": "Aether Crystals",
"weaponSpecialAetherCrystalsNotes": "These bracers and crystals once belonged to the Lost Masterclasser herself. Increases all attributes by <%= attrs %>.",

"weaponSpecialYetiText": "Yeti-Tamer Spear",
"weaponSpecialYetiNotes": "This spear allows its user to command any yeti. Increases Strength by <%= str %>. Limited Edition 2013-2014 Winter Gear.",
Expand Down Expand Up @@ -1336,6 +1338,8 @@
"backSpecialTakeThisNotes": "These wings were earned by participating in a sponsored Challenge made by Take This. Congratulations! Increases all attributes by <%= attrs %>.",
"backSpecialSnowdriftVeilText": "Snowdrift Veil",
"backSpecialSnowdriftVeilNotes": "This translucent veil makes it appear you are surrounded by an elegant flurry of snow! Confers no benefit.",
"backSpecialAetherCloakText": "Aether Cloak",
"backSpecialAetherCloakNotes": "This cloak once belonged to the Lost Masterclasser herself. Increases Perception by <%= per %>.",

"body": "Body Accessory",
"bodyCapitalized": "Body Accessory",
Expand All @@ -1350,6 +1354,8 @@
"bodySpecialWonderconBlackNotes": "An attractive ebony collar! Confers no benefit. Special Edition Convention Item.",
"bodySpecialTakeThisText": "Take This Pauldrons",
"bodySpecialTakeThisNotes": "These pauldrons were earned by participating in a sponsored Challenge made by Take This. Congratulations! Increases all attributes by <%= attrs %>.",
"bodySpecialAetherAmuletText": "Aether Amulet",
"bodySpecialAetherAmuletNotes": "This amulet has a mysterious history. Increases Constitution and Strength by <%= attrs %> each.",

"bodySpecialSummerMageText": "Shining Capelet",
"bodySpecialSummerMageNotes": "Neither salt water nor fresh water can tarnish this metallic capelet. Confers no benefit. Limited Edition 2014 Summer Gear.",
Expand Down Expand Up @@ -1467,6 +1473,9 @@
"eyewearSpecialYellowTopFrameText": "Yellow Standard Eyeglasses",
"eyewearSpecialYellowTopFrameNotes": "Glasses with a yellow frame above the lenses. Confers no benefit.",

"eyewearSpecialAetherMaskText": "Aether Mask",
"eyewearSpecialAetherMaskNotes": "This mask has a mysterious history. Increases Intelligence by <%= int %>.",

"eyewearSpecialSummerRogueText": "Roguish Eyepatch",
"eyewearSpecialSummerRogueNotes": "It doesn't take a scallywag to see how stylish this is! Confers no benefit. Limited Edition 2014 Summer Gear.",
"eyewearSpecialSummerWarriorText": "Dashing Eyepatch",
Expand Down
3 changes: 2 additions & 1 deletion website/common/locales/en/inventory.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
"foodItemType": "Food",
"eggsItemType": "Eggs",
"hatchingPotionsItemType": "Hatching Potions",
"specialItemType": "Special items"
"specialItemType": "Special items",
"lockedItem": "Locked Item"
}
1 change: 1 addition & 0 deletions website/common/locales/en/pets.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
"phoenix": "Phoenix",
"magicalBee": "Magical Bee",
"royalPurpleJackalope": "Royal Purple Jackalope",
"invisibleAether": "Invisible Aether",
"rarePetPop1": "Click the gold paw to learn more about how you can obtain this rare pet through contributing to Habitica!",
"rarePetPop2": "How to Get this Pet!",
"potion": "<%= potionType %> Potion",
Expand Down
4 changes: 2 additions & 2 deletions website/common/locales/en/quests.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
"mustLevel": "You must be level <%= level %> to begin this quest.",
"mustLvlQuest": "You must be level <%= level %> to buy this quest!",
"mustInviteFriend": "To earn this quest, invite a friend to your Party. Invite someone now?",
"unlockByQuesting": "To earn this quest, complete <%= title %>.",
"unlockByQuesting": "To unlock this quest, complete <%= title %>.",
"sureCancel": "Are you sure you want to cancel this quest? All invitation acceptances will be lost. The quest owner will retain possession of the quest scroll.",
"sureAbort": "Are you sure you want to abort this mission? It will abort it for everyone in your party and all progress will be lost. The quest scroll will be returned to the quest owner.",
"doubleSureAbort": "Are you double sure? Make sure they won't hate you forever!",
Expand Down Expand Up @@ -112,7 +112,7 @@
"questNotPending": "There is no quest to start.",
"questOrGroupLeaderOnlyStartQuest": "Only the quest leader or group leader can force start the quest",
"createAccountReward": "Create Account",
"loginIncentiveQuest": "To earn this quest, check in to Habitica on <%= count %> different days!",
"loginIncentiveQuest": "To unlock this quest, check in to Habitica on <%= count %> different days!",
"loginIncentiveQuestObtained": "You earned this quest by checking in to Habitica on <%= count %> different days!",
"loginReward": "<%= count %> Check-ins",
"createAccountQuest": "You received this quest when you joined Habitica! If a friend joins, they'll get one too.",
Expand Down
43 changes: 42 additions & 1 deletion website/common/locales/en/questsContent.json
Original file line number Diff line number Diff line change
Expand Up @@ -589,5 +589,46 @@
"farmFriendsNotes": "Contains 'The Mootant Cow', 'Ride the Night-Mare', and 'The Thunder Ram'. Available until September 30.",

"witchyFamiliarsText": "Witchy Familiars Quest Bundle",
"witchyFamiliarsNotes": "Contains 'The Rat King', 'The Icy Arachnid', and 'Swamp of the Clutter Frog'. Available until October 31."
"witchyFamiliarsNotes": "Contains 'The Rat King', 'The Icy Arachnid', and 'Swamp of the Clutter Frog'. Available until October 31.",

"questGroupLostMasterclasser": "Mystery of the Masterclassers",
"questUnlockLostMasterclasser": "To unlock this quest, complete the final quests of these quest chains: 'Dilatory Distress', 'Mayhem in Mistiflying', 'Stoïkalm Calamity', and 'Terror in the Taskwoods'.",

"questLostMasterclasser1Text": "The Mystery of the Masterclassers, Part 1: Read Between the Lines",
"questLostMasterclasser1Notes": "You’re unexpectedly summoned by @beffymaroo and @Lemoness to Habit Hall, where you’re astonished to find all four of Habitica’s Masterclassers awaiting you in the wan light of dawn. Even the Joyful Reaper looks somber.<br><br>“Oho, you’re here,” says the April Fool. “Now, we would not rouse you from your rest without a truly dire—”<br><br>“Help us investigate the recent bout of possessions,” interrupts Lady Glaciate. “All the victims blamed someone named Tzina.”<br><br>The April Fool is clearly affronted by the summary. “What about my speech?” he hisses to her. “With the fog and thunderstorm effects?”<br><br>“We’re in a hurry,” she mutters back. “And my mammoths are still soggy from your incessant practicing.”<br><br>“I’m afraid that the esteemed Master of Warriors is correct,” says King Manta. “Time is of the essence. Will you aid us?”<br><br>When you nod, he waves his hands to open a portal, revealing an underwater room. “Swim down with me to Dilatory, and we will scour my library for any references that might give us a clue.” At your look of confusion, he adds, “Don’t worry, the paper was enchanted long before Dilatory sank. None of the books are the slightest bit damp!” He winks.“Unlike Lady Glaciate’s mammoths.”<br><br>“I heard that, Manta.”<br><br>As you dive into the water after the Master of Mages, your legs magically fuse into fins. Though your body is buoyant, your heart sinks when you see the thousands of bookshelves. Better start reading…",
"questLostMasterclasser1Completion": "After hours of poring through volumes, you still haven’t found any useful information.<br><br>“It seems impossible that there isn’t even the tiniest reference to anything relevant,” says head librarian @Tuqjoi, and their assistant @stefalupagus nods in frustration.<br><br>King Manta’s eyes narrow. “Not impossible…” he says. “<em>Intentional</em>.” For a moment, the water glows around his hands, and several of the books shudder. “Something is obscuring information,” he says. “Not just a static spell, but something with a will of its own. Something… alive.” He swims up from the table. “The Joyful Reaper needs to hear about this. Let’s pack a meal for the road.”",
"questLostMasterclasser1CollectAncientTomes": "Ancient Tomes",
"questLostMasterclasser1CollectForbiddenTomes": "Forbidden Tomes",
"questLostMasterclasser1CollectHiddenTomes": "Hidden Tomes",

"questLostMasterclasser2Text": "The Mystery of the Masterclassers, Part 2: Assembling the a'Voidant",
"questLostMasterclasser2Notes": "The Joyful Reaper drums her bony fingers on some of the books that you brought. “Oh, dear,” the Master of Healers says. “There is a malevolent life essence at work. I might have guessed, considering the attacks by reanimated skulls during each incident.” Her assistant @tricksy.fox brings in a chest, and you are startled to see the contents that @beffymaroo unloads: the very same objects once used by this mysterious Tzina to possess people.<br><br>“I’m going to use resonant healing magic to try to make this creature manifest,” the Joyful Reaper says, reminding you that the skeleton is a somewhat unconventional Healer. “You’ll need to read the revealed information quickly, in case it breaks loose.”<br><br>As she concentrates, a twisting mist begins to siphon from the books and twine around the objects. Quickly, you flip through the pages, trying to read the new lines of text that are writhing into view. You catch only a few snippets: “Sands of the Timewastes” — “the Great Disaster” —“split into four”— “permanently corrupted”— before a single name catches your eye: Zinnya.<br><br>Abruptly, the pages wrench free from your fingers and shred themselves as a howling creature explodes into being, coalescing around the possessed objects.<br><br>“It’s an a’Voidant!” the Joyful Reaper shouts, throwing up a protection spell. “They’re ancient creatures of confusion and obscurity. If this Tzina can control one, she must have a frightening command over life magic. Quickly, attack it before it escapes back into the books!”<br><br>",
"questLostMasterclasser2Completion": "The a’Voidant succumbs at last, and you share the snippets that you read.<br><br>“None of those references sound familiar, even for someone as old as I,” the Joyful Reaper says. “Except… the Timewastes are a distant desert at the most hostile edge of Habitica. Portals often fail nearby, but swift mounts could get you there in no time. Lady Glaciate will be glad to assist.” Her voice grows amused. “Which means that the enamored Master of Rogues will undoubtedly tag along.” She hands you the glimmering mask. “Perhaps you should try to track the lingering magic in these items to its source. I’ll go harvest some sustenance for your journey.”",
"questLostMasterclasser2Boss": "The a'Voidant",
"questLostMasterclasser2DropEyewear": "Aether Mask (Eyewear)",

"questLostMasterclasser3Text": "The Mystery of the Masterclassers, Part 3: City in the Sands",
"questLostMasterclasser3Notes": "As night unfurls over the scorching sands of the Timewastes, your guides @AnnDeLune, @Kiwibot, and @Katy133 lead you forward. Some bleached pillars poke from the shadowed dunes, and as you approach them, a strange skittering sound echoes across the seemingly-abandoned expanse.<br><br>“Invisible creatures!” says the April Fool, clearly covetous. “Oho! Just imagine the possibilities. This must be the work of a truly stealthy Rogue.”<br><br>“A Rogue who could be watching us,” says Lady Glaciate, dismounting and raising her spear. “If there’s a head-on attack, try not to irritate our opponent. I don’t want a repeat of the volcano incident.”<br><br>He beams at her. “But it was one of your most resplendent rescues.”<br><br>To your surprise, Lady Glaciate turns very pink at the compliment. She hastily stomps away to examine the ruins.<br><br>“Looks like the wreck of an ancient city,” says @AnnDeLune. “I wonder what…”<br><br>Before she can finish her sentence, a portal roars open in the sky. Wasn’t that magic supposed to be nearly impossible here? The hoofbeats of the invisible animals thunder as they flee in panic, and you steady yourself against the onslaught of shrieking skulls that flood the skies.",
"questLostMasterclasser3Completion": "The April Fool surprises the final skull with a spray of sand, and it blunders backwards into Lady Glaciate, who smashes it expertly. As you catch your breath and look up, you see a single flash of someone’s silhouette moving on the other side of the closing portal. Thinking quickly, you snatch up the amulet from the chest of previously-possessed items, and sure enough, it’s drawn towards the unseen person. Ignoring the shouts of alarm from Lady Glaciate and the April Fool, you leap through the portal just as it snaps shut, plummeting into an inky swath of nothingness.",
"questLostMasterclasser3Boss": "Void Skull Swarm",
"questLostMasterclasser3RageTitle": "Swarm Respawn",
"questLostMasterclasser3RageDescription": "Swarm Respawn: This bar fills when you don't complete your Dailies. When it is full, the Void Skull Swarm will heal 30% of its remaining health!",
"questLostMasterclasser3RageEffect": "`Void Skull Swarm uses SWARM RESPAWN!`\n\nEmboldened by their victories, more skulls scream down from the heavens, bolstering the swarm!",
"questLostMasterclasser3DropBodyAccessory": "Aether Amulet (Body Accessory)",
"questLostMasterclasser3DropBasePotion": "Base Hatching Potion",
"questLostMasterclasser3DropGoldenPotion": "Golden Hatching Potion",
"questLostMasterclasser3DropPinkPotion": "Cotton Candy Pink Hatching Potion",
"questLostMasterclasser3DropShadePotion": "Shade Hatching Potion",
"questLostMasterclasser3DropZombiePotion": "Zombie Hatching Potion",

"questLostMasterclasser4Text": "The Mystery of the Masterclassers, Part 4: The Lost Masterclasser",
"questLostMasterclasser4Notes": "You surface from the portal, but you’re still suspended in a strange, shifting netherworld. “That was bold,” says a cold voice. “I have to admit, I hadn’t planned for a direct confrontation yet.” A woman rises from the churning whirlpool of darkness. “Welcome to the Realm of Void.”<br><br>You try to fight back your rising nausea. “Are you Zinnya?” you ask.<br><br>“That old name for a young idealist,” she says, mouth twisting, and the world writhes beneath you. “No. If anything, you should call me the Anti’zinnya now, given all that I have done and undone.”<br><br>Suddenly, the portal reopens behind you, and as the four Masterclassers burst out, bolting towards you, Anti’zinnya’s eyes flash with hatred. “I see that my pathetic replacements have managed to follow you.”<br><br>You stare. “Replacements?”<br><br>“As the Master Aethermancer, I was the first Masterclasser — the only Masterclasser. These four are a mockery, each possessing only a fragment of what I once had! I commanded every spell and learned every skill. I shaped your very world to my whim — until the traitorous aether itself collapsed under the weight of my talents and my perfectly reasonable expectations. I have been trapped for millennia in this resulting void, recuperating. Imagine my disgust when I learned how my legacy had been corrupted.” She lets out a low, echoing laugh. “My plan was to destroy their domains before destroying them, but I suppose the order is irrelevant.” With a burst of uncanny strength, she charges forward, and the Realm of Void explodes into chaos.",
"questLostMasterclasser4Completion": "Under the onslaught of your final attack, the Lost Masterclasser screams in frustration, her body flickering into translucence. The thrashing void stills around her as she slumps forward, and for a moment, she seems to change, becoming younger, calmer, with an expression of peace upon her face… but then everything melts away with scarcely a whisper, and you’re kneeling once more in the desert sand.<br><br>“It seems that we have much to learn about our own history,” King Manta says, staring at the broken ruins. “After the Master Aethermancer grew overwhelmed and lost control of her abilities, the outpouring of void must have leached the life from the entire land. Everything probably became deserts like this.”<br><br>“No wonder the ancients who founded Habitica stressed a balance of productivity and wellness,” the Joyful Reaper murmurs. “Rebuilding their world would have been a daunting task requiring considerable hard work, but they would have wanted to prevent such a catastrophe from happening again.”<br><br>“Oho, look at those formerly possessed items!” says the April Fool. Sure enough, all of them shimmer with a pale, glimmering translucence from the final burst of aether released when you laid Anti’zinnya’s spirit to rest. “What a dazzling effect. I must take notes.”<br><br>“The concentrated remnants of aether in this area probably caused caused these animals to go invisible, too,” says Lady Glaciate, scratching a patch of emptiness behind the ears. You feel an unseen fluffy head nudge your hand, and suspect that you’ll have to do some explaining at the Stables back home. As you look at the ruins one last time, you spot all that remains of the first Masterclasser: her shimmering cloak. Lifting it onto your shoulders, you head back to Habit City, pondering everything that you have learned.<br><br>",
"questLostMasterclasser4Boss": "Anti'zinnya",
"questLostMasterclasser4RageTitle": "Siphoning Void",
"questLostMasterclasser4RageDescription": "Siphoning Void: This bar fills when you don't complete your Dailies. When it is full, Anti'zinnya will remove the party's Mana!",
"questLostMasterclasser4RageEffect": "`Anti'zinnya uses SIPHONING VOID!` In a twisted inversion of the Ethereal Surge spell, you feel your magic drain away into the darkness!",
"questLostMasterclasser4DropBackAccessory": "Aether Cloak (Back Accessory)",
"questLostMasterclasser4DropWeapon": "Aether Crystals (Two-Handed Weapon)",
"questLostMasterclasser4DropMount": "Invisible Aether Mount"
}

0 comments on commit 9bc2624

Please sign in to comment.