mirror of
https://github.com/sudoxnym/habitica-self-host.git
synced 2026-07-13 17:52:22 +00:00
refactor(bosses): DRY bosses so we can share code between tavern boss &
party boss
This commit is contained in:
parent
3b0a22409e
commit
7107f2d323
4 changed files with 83 additions and 71 deletions
73
views/options/social/boss.jade
Normal file
73
views/options/social/boss.jade
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
mixin boss(tavern)
|
||||
//-.panel.panel-default(bindonce='group', ng-if='group.type==="party" && group.quest.key')
|
||||
.panel.panel-default(bindonce='group', ng-if='group.quest.key')
|
||||
.panel-heading
|
||||
h3.panel-title(ng-if='group.quest.active==false')=env.t('questInvitation') + ' {{Content.quests[group.quest.key].text()}}'
|
||||
h3.panel-title(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text()}}
|
||||
.panel-body.modal-fixed-height
|
||||
div(ng-if='group.quest.active==false')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='member in group.members')
|
||||
td {{member.profile.name}}
|
||||
td {{group.quest.members[member._id] === true ? env.t('accepted') : group.quest.members[member._id] === false ? env.t('rejected') : env.t('pending')}}
|
||||
hr
|
||||
.npc_ian.pull-left
|
||||
p=env.t('questStart')
|
||||
button.btn.btn-sm.btn-warning(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='party.$questAccept({"force":true})')=env.t('begin')
|
||||
//-TODO Cancel button
|
||||
//-TODO Both force-start & cancel should only be available to quest-initiator
|
||||
|
||||
div(ng-if='group.quest.active==true')
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
div(class="quest_{{group.quest.key}}")
|
||||
//-
|
||||
.progress
|
||||
.bar(style='width: {{Shared.percent(group.quest.hp, Content.quests[group.quest.key].hp)}}%;')
|
||||
span.meter-text
|
||||
span.glyphicon.glyphicon-heart
|
||||
| {{group.quest.hp | number:0}} / {{Content.quests[group.quest.key].hp}}
|
||||
.hero-stats
|
||||
.meter.health(tooltip=env.t('bossHP'))
|
||||
.bar(style='width: {{Shared.percent(group.quest.progress.hp, Content.quests[group.quest.key].boss.hp)}}%;')
|
||||
span.meter-text.title
|
||||
span.glyphicon.glyphicon-heart
|
||||
| HP
|
||||
span.meter-text.value
|
||||
| {{Math.ceil(group.quest.progress.hp)}} / {{Content.quests[group.quest.key].boss.hp}}
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
h4=env.t('collected') + ':'
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.quest.progress.collect', class='quest_collected_{{v >= Content.quests[group.quest.key].collect[k].count}}')
|
||||
td
|
||||
div.pull-left(class='quest_{{group.quest.key}}_{{k}}')
|
||||
| {{Content.quests[group.quest.key].collect[k].text()}}
|
||||
td
|
||||
{{v}} / {{Content.quests[group.quest.key].collect[k].count}}
|
||||
|
||||
div(ng-bind-html='Content.quests[group.quest.key].notes()')
|
||||
unless tavern
|
||||
hr
|
||||
h5=env.t('participants')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.members', ng-show='group.quest.members[v._id]')
|
||||
td {{v.profile.name}}
|
||||
quest-rewards(key='{{group.quest.key}}')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
.npc_ian.pull-left
|
||||
if tavern
|
||||
p!=env.t('tavernBossInfo')
|
||||
else
|
||||
p!=env.t('bossDmg1')
|
||||
br
|
||||
p=env.t('bossDmg2')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
.npc_ian.pull-left
|
||||
p=env.t('bossColl1')
|
||||
br
|
||||
p=env.t('bossColl2')
|
||||
|
||||
|
||||
unless tavern
|
||||
button.btn.btn-xs.btn-danger(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='questAbort()')=env.t('abort')
|
||||
|
|
@ -2,7 +2,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
|
|||
// <span class="task-action-btn tile flush bright add-gems-btn">+</span>
|
||||
span.task-action-btn.tile.flush.neutral
|
||||
.Pet_Currency_Gem2x.Gems
|
||||
| {{group.balance * 4 | number:0 }}
|
||||
| {{group.balance * 4 | number:0 }}
|
||||
=env.t('guildGems')
|
||||
|
||||
.container-fluid
|
||||
|
|
@ -10,77 +10,12 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
|
|||
.col-md-4
|
||||
|
||||
// ------ Bosses -------
|
||||
.panel.panel-default(bindonce='group', ng-if='group.type==="party" && group.quest.key')
|
||||
.panel-heading
|
||||
h3.panel-title(ng-if='group.quest.active==false')=env.t('questInvitation') + ' {{Content.quests[group.quest.key].text()}}'
|
||||
h3.panel-title(ng-if='group.quest.active==true') {{Content.quests[group.quest.key].text()}}
|
||||
.panel-body.modal-fixed-height
|
||||
div(ng-if='group.quest.active==false')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='member in group.members')
|
||||
td {{member.profile.name}}
|
||||
td {{group.quest.members[member._id] === true ? env.t('accepted') : group.quest.members[member._id] === false ? env.t('rejected') : env.t('pending')}}
|
||||
hr
|
||||
.npc_ian.pull-left
|
||||
p=env.t('questStart')
|
||||
button.btn.btn-sm.btn-warning(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='party.$questAccept({"force":true})')=env.t('begin')
|
||||
//-TODO Cancel button
|
||||
//-TODO Both force-start & cancel should only be available to quest-initiator
|
||||
|
||||
div(ng-if='group.quest.active==true')
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
div(class="quest_{{group.quest.key}}")
|
||||
//-
|
||||
.progress
|
||||
.bar(style='width: {{Shared.percent(group.quest.hp, Content.quests[group.quest.key].hp)}}%;')
|
||||
span.meter-text
|
||||
span.glyphicon.glyphicon-heart
|
||||
| {{group.quest.hp | number:0}} / {{Content.quests[group.quest.key].hp}}
|
||||
.hero-stats
|
||||
.meter.health(tooltip=env.t('bossHP'))
|
||||
.bar(style='width: {{Shared.percent(group.quest.progress.hp, Content.quests[group.quest.key].boss.hp)}}%;')
|
||||
span.meter-text.title
|
||||
span.glyphicon.glyphicon-heart
|
||||
| HP
|
||||
span.meter-text.value
|
||||
| {{Math.ceil(group.quest.progress.hp)}} / {{Content.quests[group.quest.key].boss.hp}}
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
h4=env.t('collected') + ':'
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.quest.progress.collect', class='quest_collected_{{v >= Content.quests[group.quest.key].collect[k].count}}')
|
||||
td
|
||||
div.pull-left(class='quest_{{group.quest.key}}_{{k}}')
|
||||
| {{Content.quests[group.quest.key].collect[k].text()}}
|
||||
td
|
||||
{{v}} / {{Content.quests[group.quest.key].collect[k].count}}
|
||||
|
||||
div(ng-bind-html='Content.quests[group.quest.key].notes()')
|
||||
hr
|
||||
h5=env.t('participants')
|
||||
table.table.table-striped
|
||||
tr(ng-repeat='(k,v) in group.members', ng-show='group.quest.members[v._id]')
|
||||
td {{v.profile.name}}
|
||||
quest-rewards(key='{{group.quest.key}}')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].boss')
|
||||
.npc_ian.pull-left
|
||||
p!=env.t('bossDmg1')
|
||||
br
|
||||
p=env.t('bossDmg2')
|
||||
|
||||
div(ng-if='Content.quests[group.quest.key].collect')
|
||||
.npc_ian.pull-left
|
||||
p=env.t('bossColl1')
|
||||
br
|
||||
p=env.t('bossColl2')
|
||||
|
||||
|
||||
button.btn.btn-xs.btn-danger(ng-if='!group.quest.leader || group.quest.leader==user._id', ng-click='questAbort()')=env.t('abort')
|
||||
+boss(false)
|
||||
|
||||
// ------ Information -------
|
||||
.panel.panel-default
|
||||
.panel-heading(bindonce='group')
|
||||
h3.panel-title
|
||||
h3.panel-title
|
||||
| {{group.name}}
|
||||
span(ng-if='group.leader == user.id')
|
||||
button.btn.btn-primary.pull-right(ng-click='save(group)', ng-show='group._editing')=env.t('save')
|
||||
|
|
@ -136,7 +71,7 @@ a.pull-right.gem-wallet(popover-trigger='mouseenter', popover-title=env.t('guild
|
|||
| {{member.profile.name}}
|
||||
tr(ng-if='group.memberCount > group.members.length')
|
||||
td
|
||||
|<span class='badge'>{{group.memberCount - group.members.length}}
|
||||
|<span class='badge'>{{group.memberCount - group.members.length}}
|
||||
= ' ' + env.t('moreMembers')
|
||||
|</span>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,14 +3,15 @@
|
|||
|
||||
include ./challenges.jade
|
||||
include ./hall.jade
|
||||
include ./boss.jade
|
||||
|
||||
script(type='text/ng-template', id='partials/options.social.tavern.html')
|
||||
include ./tavern
|
||||
|
||||
script(type='text/ng-template', id='partials/options.social.party.html')
|
||||
div(ng-show='group._id')
|
||||
div(ng-if='group._id')
|
||||
include ./group
|
||||
div(ng-hide='group._id')
|
||||
div(ng-if='!group._id')
|
||||
div(ng-show='user.invitations.party.id')
|
||||
h2=env.t('invitedTo', {name: '{{user.invitations.party.name}}'})
|
||||
a.btn.btn-success(data-type='party', ng-click='join(user.invitations.party)')=env.t('accept')
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
.container-fluid
|
||||
.row
|
||||
.col-md-4
|
||||
|
||||
+boss(true)
|
||||
|
||||
table
|
||||
tr
|
||||
td
|
||||
|
|
|
|||
Loading…
Reference in a new issue