diff --git a/common/img/sprites/quest_burnout.gif b/common/img/sprites/quest_burnout.gif index 9763809eb9..3230b6368a 100644 Binary files a/common/img/sprites/quest_burnout.gif and b/common/img/sprites/quest_burnout.gif differ diff --git a/common/img/sprites/spritesmith/stable/mounts/Mount_Body_Phoenix-Base.png b/common/img/sprites/spritesmith/stable/mounts/Mount_Body_Phoenix-Base.png new file mode 100644 index 0000000000..25e2473106 Binary files /dev/null and b/common/img/sprites/spritesmith/stable/mounts/Mount_Body_Phoenix-Base.png differ diff --git a/common/img/sprites/spritesmith/stable/mounts/Mount_Head_Phoenix-Base.png b/common/img/sprites/spritesmith/stable/mounts/Mount_Head_Phoenix-Base.png new file mode 100644 index 0000000000..58c4be9c2f Binary files /dev/null and b/common/img/sprites/spritesmith/stable/mounts/Mount_Head_Phoenix-Base.png differ diff --git a/common/img/sprites/spritesmith/stable/pets/Pet-Phoenix-Base.png b/common/img/sprites/spritesmith/stable/pets/Pet-Phoenix-Base.png new file mode 100644 index 0000000000..fe0f6ebcc6 Binary files /dev/null and b/common/img/sprites/spritesmith/stable/pets/Pet-Phoenix-Base.png differ diff --git a/common/locales/en/questsContent.json b/common/locales/en/questsContent.json index fad0b7edea..1856cf7000 100644 --- a/common/locales/en/questsContent.json +++ b/common/locales/en/questsContent.json @@ -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!" } diff --git a/common/script/content/index.coffee b/common/script/content/index.coffee index 20362cc3b9..d3a3a4936a 100644 --- a/common/script/content/index.coffee +++ b/common/script/content/index.coffee @@ -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 diff --git a/common/script/src/content/quests/world.js b/common/script/src/content/quests/world.js index 3c2bf83eb0..97e7cba466 100644 --- a/common/script/src/content/quests/world.js +++ b/common/script/src/content/quests/world.js @@ -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) => { diff --git a/website/src/models/group.js b/website/src/models/group.js index ef2aba8752..19f3ddcffa 100644 --- a/website/src/models/group.js +++ b/website/src/models/group.js @@ -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; diff --git a/website/views/options/inventory/quests.jade b/website/views/options/inventory/quests.jade index 1e200f57e3..0af4463120 100644 --- a/website/views/options/inventory/quests.jade +++ b/website/views/options/inventory/quests.jade @@ -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') diff --git a/website/views/options/social/quests/ianQuestInfo.jade b/website/views/options/social/quests/ianQuestInfo.jade index f6305e6dc8..519845afdf 100644 --- a/website/views/options/social/quests/ianQuestInfo.jade +++ b/website/views/options/social/quests/ianQuestInfo.jade @@ -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 diff --git a/website/views/options/social/quests/questNotActive.jade b/website/views/options/social/quests/questNotActive.jade index b21845d59d..69e672da9e 100644 --- a/website/views/options/social/quests/questNotActive.jade +++ b/website/views/options/social/quests/questNotActive.jade @@ -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') diff --git a/website/views/shared/modals/quests.jade b/website/views/shared/modals/quests.jade index c31963742b..55a778433e 100644 --- a/website/views/shared/modals/quests.jade +++ b/website/views/shared/modals/quests.jade @@ -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