WIP(world-boss): Initial stats outlay

Also quest reward sprites, groundwork for world damage, and partial content build.
This commit is contained in:
Sabe Jones
2015-10-05 16:59:19 -04:00
parent 0d7a57d176
commit f6abcc0ddf
12 changed files with 108 additions and 25 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 B

View File

@@ -298,7 +298,9 @@
"questBurnoutCompletion": "Placeholder",
"questBurnoutCompletionChat": "Placeholder",
"questBurnoutBoss": "Burnout",
"questBurnoutBossRageTitle": "Placeholder",
"questBurnoutBossRageDescription": "Placeholder",
"questBurnoutDesperation": "Placeholder"
"questBurnoutBossRageTitle": "Exhaust Strike",
"questBurnoutBossRageDescription": "When this gauge fills, Burnout will unleash its Exhaust Strike on Habitica!",
"questBurnoutBossRageQuests": "`Burnout uses EXHAUST STRIKE!`\n\nOh no! Despite our best efforts, we've let some Dailies get away from us, and now Burnout is inflamed with energy! With a crackling snarl, it engulfs Ian the Quest Master in a surge of spectral fire. As fallen quest scrolls smolder, the smoke clears, and you see that Ian has been drained of energy and turned into a drifting Exhaust Spirit!\n\nOnly defeating Burnout can break the spell and restore our beloved Quest Master. Let's keep our Dailies in check and defeat this monster before it attacks again!",
"questBurnoutBossRageSeasonalShop": "`Burnout uses EXHAUST STRIKE!`\n\nAhh!!! Our incomplete Dailies have fed the flames of Burnout, and now it has enough energy to strike again! It lets loose a gout of spectral flame that sears the Seasonal Shop. You're horrified to see that the cheery Seasonal Sorceress has been transformed into a drooping Exhaust Spirit.\n\nWe have to rescue our NPCs! Hurry, Habiticans, complete your tasks and defeat Burnout before it strikes for a third time!",
"questBurnoutBossRageTavern": "`Burnout uses EXHAUST STRIKE!`\n\nMany Habiticans have been hiding from Burnout in the Tavern, but no longer! With a screeching howl, Burnout rakes the Tavern with its white-hot hands. As the Tavern patrons flee, Daniel is caught in Burnout's grip, and transforms into an Exhaust Spirit right in front of you!\n\nThis hot-headed horror has gone on for too long. Don't give up... we're so close to vanquishing Burnout for once and for all!"
}

View File

@@ -1349,30 +1349,40 @@ api.quests =
exp: 0
burnout:
text: t("questBurnoutText")
notes: t("questBurnoutNotes")
completion: t("questBurnoutCompletion")
completionChat: t("questBurnoutCompletionChat")
text: t('questBurnoutText')
notes: t('questBurnoutNotes')
completion: t('questBurnoutCompletion')
completionChat: t('questBurnoutCompletionChat')
value: 0
canBuy: false
category: 'world'
boss:
name: t("questBurnoutBoss")
hp: 5000000
str: 1
name: t('questBurnoutBoss')
hp: 11000000
str: 2.5
def: 1
rage:
title: t("questBurnoutBossRageTitle")
description: t("questBurnoutBossRageDescription")
value: 5000000
healing: .3
desperation:
threshold: 500000
str: 3.5
def: 2
text:t('questBurnoutDesperation')
title: t('questBurnoutBossRageTitle')
description: t('questBurnoutBossRageDescription')
value: 1000000
quests: t('questBurnoutBossRageQuests')
seasonalShop: t('questBurnoutBossRageSeasonalShop')
tavern: t('questBurnoutBossRageTavern')
drop:
items: [
{type: 'pets', key: 'Phoenix-Base', text: t('questBurnoutDropPhoenixPet')}
{type: 'mounts', key: 'Phoenix-Base', text: t('questBurnoutDropPhoenixMount')}
{type: 'food', key: 'Candy_Base', text: t('foodCandyBase')}
{type: 'food', key: 'Candy_White', text: t('foodCandyWhite')}
{type: 'food', key: 'Candy_Desert', text: t('foodCandyDesert')}
{type: 'food', key: 'Candy_Red', text: t('foodCandyRed')}
{type: 'food', key: 'Candy_Shade', text: t('foodCandyShade')}
{type: 'food', key: 'Candy_Skeleton', text: t('foodCandySkeleton')}
{type: 'food', key: 'Candy_Zombie', text: t('foodCandyZombie')}
{type: 'food', key: 'Candy_CottonCandyPink', text: t('foodCandyCottonCandyPink')}
{type: 'food', key: 'Candy_CottonCandyBlue', text: t('foodCandyCottonCandyBlue')}
{type: 'food', key: 'Candy_Golden', text: t('foodCandyGolden')}
]
gp: 0
exp: 0

View File

@@ -154,6 +154,78 @@ let worldQuests = {
exp: 0
}
},
burnout: {
completionChat: t('questBurnoutCompletionChat'),
boss: {
name: t('questBurnoutBoss'),
hp: 11000000,
str: 2.5,
def: 1,
rage: {
title: t('questBurnoutBossRageTitle'),
description: t('questBurnoutBossRageDescription'),
value: 1000000,
quests: t('questBurnoutBossRageQuests'),
seasonalShop: t('questBurnoutBossRageSeasonalShop'),
tavern: t('questBurnoutBossRageTavern')
}
},
drop: {
items: [
{
type: 'pets',
key: 'Phoenix-Base',
text: t('questBurnoutDropPhoenixPet')
}, {
type: 'mounts',
key: 'Phoenix-Base',
text: t('questBurnoutDropPhoenixMount')
}, {
type: 'food',
key: 'Candy_Base',
text: t('foodCandyBase')
}, {
type: 'food',
key: 'Candy_White',
text: t('foodCandyWhite')
}, {
type: 'food',
key: 'Candy_Desert',
text: t('foodCandyDesert')
}, {
type: 'food',
key: 'Candy_Red',
text: t('foodCandyRed')
}, {
type: 'food',
key: 'Candy_Shade',
text: t('foodCandyShade')
}, {
type: 'food',
key: 'Candy_Skeleton',
text: t('foodCandySkeleton')
}, {
type: 'food',
key: 'Candy_Zombie',
text: t('foodCandyZombie')
}, {
type: 'food',
key: 'Candy_CottonCandyPink',
text: t('foodCandyCottonCandyPink')
}, {
type: 'food',
key: 'Candy_CottonCandyBlue',
text: t('foodCandyCottonCandyBlue')
}, {
type: 'food',
key: 'Candy_Golden',
text: t('foodCandyGolden')
}
],
gp: 0,
exp: 0
}
},
};
let questDefaults = (name) => {

View File

@@ -308,8 +308,7 @@ GroupSchema.statics.tavernBoss = function(user,progress) {
if (tavern.quest.progress.rage >= quest.boss.rage.value) {
if (!tavern.quest.extra.worldDmg) tavern.quest.extra.worldDmg = {};
var wd = tavern.quest.extra.worldDmg;
// var scene = wd.tavern ? wd.stables ? wd.market ? false : 'market' : 'stables' : 'tavern'; // Dilatory attacks tavern, stables, market
var scene = wd.stables ? wd.bailey ? wd.guide ? false : 'guide' : 'bailey' : 'stables'; // Stressbeast attacks stables, Bailey, Justin
var scene = wd.quests ? wd.seasonalShop ? wd.tavern ? false : 'tavern' : 'seasonalShop' : 'quests'; // Burnout attacks Ian, Seasonal Sorceress, tavern
if (!scene) {
tavern.sendChat('`'+quest.boss.name('en')+' tries to unleash '+quest.boss.rage.title('en')+', but is too tired.`');
tavern.quest.progress.rage = 0 //quest.boss.rage.value;

View File

@@ -4,7 +4,7 @@ include ../../shared/mixins
.row
.col-md-6
.clearfix
.npc_ian.pull-left-sm.col-centered
div(class="#{env.worldDmg.quests ? 'npc_ian_broken' : 'npc_ian'}").pull-left-sm.col-centered
.popover.static-popover.fade.right.in.pull-left-sm.col-centered
.arrow.hidden-xs
h3.popover-title=env.t('ian')

View File

@@ -1,4 +1,4 @@
.npc_ian.pull-left
div(class="#{env.worldDmg.quests ? 'npc_ian_broken' : 'npc_ian'}").pull-left
div(ng-if='::Content.quests[group.quest.key].boss')
if tavern

View File

@@ -18,7 +18,7 @@ div(ng-if='group.quest.active===false')
hr
.npc_ian.pull-left
div(class="#{env.worldDmg.quests ? 'npc_ian_broken' : 'npc_ian'}").pull-left
p=env.t('questStart')
span(ng-if='user.party.quest.RSVPNeeded')

View File

@@ -38,7 +38,7 @@ script(type='text/ng-template', id='modals/showQuest.html')
.modal-body
+questInfo
hr
.npc_ian.pull-left
div(class="#{env.worldDmg.quests ? 'npc_ian_broken' : 'npc_ian'}").pull-left
p=env.t('questSend')
p=env.t('questWarning')
.modal-footer