mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-18 15:17:25 +01:00
WIP(world-boss): Initial stats outlay
Also quest reward sprites, groundwork for world damage, and partial content build.
This commit is contained in:
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 |
BIN
common/img/sprites/spritesmith/stable/pets/Pet-Phoenix-Base.png
Normal file
BIN
common/img/sprites/spritesmith/stable/pets/Pet-Phoenix-Base.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 854 B |
@@ -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!"
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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) => {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user