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", "questBurnoutCompletion": "Placeholder",
"questBurnoutCompletionChat": "Placeholder", "questBurnoutCompletionChat": "Placeholder",
"questBurnoutBoss": "Burnout", "questBurnoutBoss": "Burnout",
"questBurnoutBossRageTitle": "Placeholder", "questBurnoutBossRageTitle": "Exhaust Strike",
"questBurnoutBossRageDescription": "Placeholder", "questBurnoutBossRageDescription": "When this gauge fills, Burnout will unleash its Exhaust Strike on Habitica!",
"questBurnoutDesperation": "Placeholder" "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 exp: 0
burnout: burnout:
text: t("questBurnoutText") text: t('questBurnoutText')
notes: t("questBurnoutNotes") notes: t('questBurnoutNotes')
completion: t("questBurnoutCompletion") completion: t('questBurnoutCompletion')
completionChat: t("questBurnoutCompletionChat") completionChat: t('questBurnoutCompletionChat')
value: 0 value: 0
canBuy: false canBuy: false
category: 'world' category: 'world'
boss: boss:
name: t("questBurnoutBoss") name: t('questBurnoutBoss')
hp: 5000000 hp: 11000000
str: 1 str: 2.5
def: 1 def: 1
rage: rage:
title: t("questBurnoutBossRageTitle") title: t('questBurnoutBossRageTitle')
description: t("questBurnoutBossRageDescription") description: t('questBurnoutBossRageDescription')
value: 5000000 value: 1000000
healing: .3 quests: t('questBurnoutBossRageQuests')
desperation: seasonalShop: t('questBurnoutBossRageSeasonalShop')
threshold: 500000 tavern: t('questBurnoutBossRageTavern')
str: 3.5
def: 2
text:t('questBurnoutDesperation')
drop: drop:
items: [ 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 gp: 0
exp: 0 exp: 0

View File

@@ -154,6 +154,78 @@ let worldQuests = {
exp: 0 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) => { 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.progress.rage >= quest.boss.rage.value) {
if (!tavern.quest.extra.worldDmg) tavern.quest.extra.worldDmg = {}; if (!tavern.quest.extra.worldDmg) tavern.quest.extra.worldDmg = {};
var wd = 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.quests ? wd.seasonalShop ? wd.tavern ? false : 'tavern' : 'seasonalShop' : 'quests'; // Burnout attacks Ian, Seasonal Sorceress, tavern
var scene = wd.stables ? wd.bailey ? wd.guide ? false : 'guide' : 'bailey' : 'stables'; // Stressbeast attacks stables, Bailey, Justin
if (!scene) { if (!scene) {
tavern.sendChat('`'+quest.boss.name('en')+' tries to unleash '+quest.boss.rage.title('en')+', but is too tired.`'); 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; tavern.quest.progress.rage = 0 //quest.boss.rage.value;

View File

@@ -4,7 +4,7 @@ include ../../shared/mixins
.row .row
.col-md-6 .col-md-6
.clearfix .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 .popover.static-popover.fade.right.in.pull-left-sm.col-centered
.arrow.hidden-xs .arrow.hidden-xs
h3.popover-title=env.t('ian') 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') div(ng-if='::Content.quests[group.quest.key].boss')
if tavern if tavern

View File

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

View File

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