Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
78612a91dd | ||
|
|
8bcd93075b | ||
|
|
f318afb8cf | ||
|
|
b954379f38 |
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "habitica",
|
"name": "habitica",
|
||||||
"version": "4.86.1",
|
"version": "4.86.2",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "habitica",
|
"name": "habitica",
|
||||||
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
"description": "A habit tracker app which treats your goals like a Role Playing Game.",
|
||||||
"version": "4.86.1",
|
"version": "4.86.2",
|
||||||
"main": "./website/server/index.js",
|
"main": "./website/server/index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google-cloud/trace-agent": "^3.5.2",
|
"@google-cloud/trace-agent": "^3.5.2",
|
||||||
|
|||||||
@@ -1,42 +1,36 @@
|
|||||||
.promo_armoire_backgrounds_201903 {
|
.promo_armoire_backgrounds_201903 {
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||||
background-position: 0px -220px;
|
background-position: 0px -327px;
|
||||||
width: 423px;
|
width: 423px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.promo_mystery_201902 {
|
.promo_mystery_201902 {
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||||
background-position: -424px -220px;
|
background-position: -424px -327px;
|
||||||
width: 240px;
|
width: 240px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.promo_mythical_marvels_bundle {
|
.promo_mythical_marvels_bundle {
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||||
background-position: 0px -368px;
|
background-position: 0px -475px;
|
||||||
width: 423px;
|
width: 423px;
|
||||||
height: 147px;
|
height: 147px;
|
||||||
}
|
}
|
||||||
.promo_take_this {
|
.promo_take_this {
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||||
background-position: -424px -368px;
|
background-position: -665px -327px;
|
||||||
width: 96px;
|
width: 96px;
|
||||||
height: 69px;
|
height: 69px;
|
||||||
}
|
}
|
||||||
.promo_valentines_potions {
|
.scene_dailies {
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||||
background-position: 0px -516px;
|
background-position: -441px 0px;
|
||||||
width: 420px;
|
width: 327px;
|
||||||
height: 147px;
|
height: 276px;
|
||||||
}
|
}
|
||||||
.scene_achievement {
|
.scene_tavern {
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
|
||||||
background-position: -397px 0px;
|
|
||||||
width: 339px;
|
|
||||||
height: 210px;
|
|
||||||
}
|
|
||||||
.scene_cooking {
|
|
||||||
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
background-image: url('~assets/images/sprites/spritesmith-largeSprites-0.png');
|
||||||
background-position: 0px 0px;
|
background-position: 0px 0px;
|
||||||
width: 396px;
|
width: 440px;
|
||||||
height: 219px;
|
height: 326px;
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 71 KiB After Width: | Height: | Size: 52 KiB |
@@ -1,57 +1,41 @@
|
|||||||
<template lang="pug">
|
<template lang="pug">
|
||||||
.row(:class="{'small-version': smallVersion}")
|
.row(:class="{'small-version': smallVersion}")
|
||||||
dl
|
dl
|
||||||
.table-row(v-if="quest.collect")
|
template(v-if="quest.collect")
|
||||||
dt {{ $t('collect') + ':' }}
|
dt(:class="smallVersion ? 'col-3' : 'col-4'") {{ $t('collect') + ':' }}
|
||||||
dd
|
dd.col-8
|
||||||
div(v-for="(collect, key) of quest.collect")
|
div(v-for="(collect, key) of quest.collect")
|
||||||
span {{ collect.count }} {{ getCollectText(collect) }}
|
span {{ collect.count }} {{ getCollectText(collect) }}
|
||||||
|
|
||||||
.table-row(v-if="quest.boss")
|
template(v-if="quest.boss")
|
||||||
dt {{ $t('bossHP') + ':' }}
|
dt(:class="smallVersion ? 'col-3' : 'col-4'") {{ $t('bossHP') + ':' }}
|
||||||
dd {{ quest.boss.hp }}
|
dd.col-8 {{ quest.boss.hp }}
|
||||||
|
|
||||||
.table-row
|
dt(:class="smallVersion ? 'col-3' : 'col-4'") {{ $t('difficulty') + ':' }}
|
||||||
dt {{ $t('difficulty') + ':' }}
|
dd.col-8
|
||||||
dd
|
.svg-icon.inline(
|
||||||
.svg-icon.inline(
|
v-for="star of stars()", v-html="icons[star]",
|
||||||
v-for="star of stars()", v-html="icons[star]",
|
:class="smallVersion ? 'icon-12' : 'icon-16'",
|
||||||
:class="smallVersion ? 'icon-12' : 'icon-16'",
|
)
|
||||||
)
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import '~client/assets/scss/colors.scss';
|
@import '~client/assets/scss/colors.scss';
|
||||||
|
|
||||||
.row {
|
|
||||||
display: table;
|
|
||||||
color: #E1E0E3;
|
|
||||||
}
|
|
||||||
|
|
||||||
.table-row {
|
|
||||||
display: table-row;
|
|
||||||
margin-bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
dd {
|
|
||||||
padding-left: 1em;
|
|
||||||
padding-bottom: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
dt, dd {
|
|
||||||
display: table-cell;
|
|
||||||
}
|
|
||||||
|
|
||||||
dt, dd, dd > * {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
dt {
|
dt {
|
||||||
font-size: 1.3em;
|
font-size: 1.3em;
|
||||||
line-height: 1.2;
|
line-height: 1.2;
|
||||||
color: $gray-50;
|
color: $gray-50;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.col-8 {
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.col-8:not(:last-child) {
|
||||||
|
margin-bottom: 4px;
|
||||||
|
}
|
||||||
|
|
||||||
.svg-icon {
|
.svg-icon {
|
||||||
margin-right: 4px;
|
margin-right: 4px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,9 +37,8 @@
|
|||||||
draggable.sortable-tasks(
|
draggable.sortable-tasks(
|
||||||
ref="tasksList",
|
ref="tasksList",
|
||||||
@update='taskSorted',
|
@update='taskSorted',
|
||||||
@start="isDragging(true)",
|
|
||||||
@end="isDragging(false)",
|
|
||||||
:options='{disabled: activeFilter.label === "scheduled", scrollSensitivity: 64}',
|
:options='{disabled: activeFilter.label === "scheduled", scrollSensitivity: 64}',
|
||||||
|
class="sortable-tasks"
|
||||||
)
|
)
|
||||||
task(
|
task(
|
||||||
v-for="task in taskList",
|
v-for="task in taskList",
|
||||||
@@ -50,11 +49,12 @@
|
|||||||
:group='group',
|
:group='group',
|
||||||
)
|
)
|
||||||
template(v-if="hasRewardsList")
|
template(v-if="hasRewardsList")
|
||||||
draggable.reward-items(
|
draggable(
|
||||||
ref="rewardsList",
|
ref="rewardsList",
|
||||||
@update="rewardSorted",
|
@update="rewardSorted",
|
||||||
@start="rewardDragStart",
|
@start="rewardDragStart",
|
||||||
@end="rewardDragEnd",
|
@end="rewardDragEnd",
|
||||||
|
class="reward-items",
|
||||||
)
|
)
|
||||||
shopItem(
|
shopItem(
|
||||||
v-for="reward in inAppRewards",
|
v-for="reward in inAppRewards",
|
||||||
@@ -76,9 +76,6 @@
|
|||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
@import '~client/assets/scss/colors.scss';
|
@import '~client/assets/scss/colors.scss';
|
||||||
|
|
||||||
/deep/ .draggable-cursor {
|
|
||||||
cursor: grabbing;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tasks-column {
|
.tasks-column {
|
||||||
min-height: 556px;
|
min-height: 556px;
|
||||||
@@ -92,6 +89,7 @@
|
|||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.reward-items {
|
.reward-items {
|
||||||
@supports (display: grid) {
|
@supports (display: grid) {
|
||||||
display: grid;
|
display: grid;
|
||||||
@@ -337,7 +335,6 @@ export default {
|
|||||||
showPopovers: true,
|
showPopovers: true,
|
||||||
|
|
||||||
selectedItemToBuy: {},
|
selectedItemToBuy: {},
|
||||||
dragging: false,
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
@@ -524,11 +521,9 @@ export default {
|
|||||||
rewardDragStart () {
|
rewardDragStart () {
|
||||||
// We need to stop popovers from interfering with our dragging
|
// We need to stop popovers from interfering with our dragging
|
||||||
this.showPopovers = false;
|
this.showPopovers = false;
|
||||||
this.isDragging(true);
|
|
||||||
},
|
},
|
||||||
rewardDragEnd () {
|
rewardDragEnd () {
|
||||||
this.showPopovers = true;
|
this.showPopovers = true;
|
||||||
this.isDragging(false);
|
|
||||||
},
|
},
|
||||||
quickAdd (ev) {
|
quickAdd (ev) {
|
||||||
// Add a new line if Shift+Enter Pressed
|
// Add a new line if Shift+Enter Pressed
|
||||||
@@ -683,14 +678,6 @@ export default {
|
|||||||
this.error(e.message);
|
this.error(e.message);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
isDragging (dragging) {
|
|
||||||
this.dragging = dragging;
|
|
||||||
if (dragging) {
|
|
||||||
document.documentElement.classList.add('draggable-cursor');
|
|
||||||
} else {
|
|
||||||
document.documentElement.classList.remove('draggable-cursor');
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
v-if="isUser && !isRunningYesterdailies",
|
v-if="isUser && !isRunningYesterdailies",
|
||||||
:right="task.type === 'reward'",
|
:right="task.type === 'reward'",
|
||||||
ref="taskDropdown",
|
ref="taskDropdown",
|
||||||
v-b-tooltip.hover.top="$t('options')"
|
v-b-tooltip.hover.top="$t('showMore')"
|
||||||
)
|
)
|
||||||
div(slot="dropdown-toggle", draggable=false)
|
div(slot="dropdown-toggle", draggable=false)
|
||||||
.svg-icon.dropdown-icon(v-html="icons.menu")
|
.svg-icon.dropdown-icon(v-html="icons.menu")
|
||||||
@@ -141,11 +141,6 @@
|
|||||||
min-width: 0px;
|
min-width: 0px;
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
|
|
||||||
// markdown p-tag, can't find without /deep/
|
|
||||||
/deep/ p {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.has-notes {
|
&.has-notes {
|
||||||
padding-bottom: 4px;
|
padding-bottom: 4px;
|
||||||
}
|
}
|
||||||
@@ -234,7 +229,7 @@
|
|||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
|
|
||||||
&.has-checklist {
|
&.has-checklist {
|
||||||
padding-bottom: 2px;
|
padding-bottom: 8px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -290,7 +285,7 @@
|
|||||||
margin-bottom: -3px;
|
margin-bottom: -3px;
|
||||||
min-height: 0px;
|
min-height: 0px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-left: 0;
|
margin-left: 8px;
|
||||||
padding-right: 20px;
|
padding-right: 20px;
|
||||||
overflow-wrap: break-word;
|
overflow-wrap: break-word;
|
||||||
|
|
||||||
@@ -432,7 +427,7 @@
|
|||||||
border-left: none;
|
border-left: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.task-control:not(.task-disabled-habit-control-inner), .reward-control {
|
.task-control, .reward-control {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
.col-12.col-md-4.offset-md-4
|
.col-12.col-md-4.offset-md-4
|
||||||
.d-flex
|
.d-flex
|
||||||
input.form-control.input-search(type="text", :placeholder="$t('search')", v-model="searchText")
|
input.form-control.input-search(type="text", :placeholder="$t('search')", v-model="searchText")
|
||||||
button.btn.btn-secondary.dropdown-toggle.ml-2.d-flex.align-items-center.search-button(
|
button.btn.btn-secondary.dropdown-toggle.ml-2.d-flex.align-items-center(
|
||||||
type="button",
|
type="button",
|
||||||
@click="toggleFilterPanel()",
|
@click="toggleFilterPanel()",
|
||||||
:class="{active: selectedTags.length > 0}",
|
:class="{active: selectedTags.length > 0}",
|
||||||
@@ -110,10 +110,6 @@
|
|||||||
padding-top: 16px;
|
padding-top: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.input-search, .search-button {
|
|
||||||
height: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tasks-navigation {
|
.tasks-navigation {
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
"saveEdits": "Save Edits",
|
"saveEdits": "Save Edits",
|
||||||
"showMore": "Show More",
|
"showMore": "Show More",
|
||||||
"showLess": "Show Less",
|
"showLess": "Show Less",
|
||||||
"options": "Options",
|
|
||||||
|
|
||||||
"expandToolbar": "Expand Toolbar",
|
"expandToolbar": "Expand Toolbar",
|
||||||
"collapseToolbar": "Collapse Toolbar",
|
"collapseToolbar": "Collapse Toolbar",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 29 KiB |
BIN
website/raw_sprites/spritesmith_large/scene_dailies.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
website/raw_sprites/spritesmith_large/scene_tavern.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
@@ -3,7 +3,7 @@ import { authWithHeaders } from '../../middlewares/auth';
|
|||||||
let api = {};
|
let api = {};
|
||||||
|
|
||||||
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
// @TODO export this const, cannot export it from here because only routes are exported from controllers
|
||||||
const LAST_ANNOUNCEMENT_TITLE = 'MARCH BACKGROUNDS AND ARMOIRE ITEMS!';
|
const LAST_ANNOUNCEMENT_TITLE = 'HABITICA BLOG: NEW GUILDS AND WIKI SPOTLIGHT ON DAILIES';
|
||||||
const worldDmg = { // @TODO
|
const worldDmg = { // @TODO
|
||||||
bailey: false,
|
bailey: false,
|
||||||
};
|
};
|
||||||
@@ -30,14 +30,18 @@ api.getNews = {
|
|||||||
<div class="mr-3 ${baileyClass}"></div>
|
<div class="mr-3 ${baileyClass}"></div>
|
||||||
<div class="media-body">
|
<div class="media-body">
|
||||||
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
<h1 class="align-self-center">${res.t('newStuff')}</h1>
|
||||||
<h2>3/5/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
<h2>3/12/2019 - ${LAST_ANNOUNCEMENT_TITLE}</h2>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr/>
|
<hr/>
|
||||||
<div class="promo_armoire_backgrounds_201903 center-block"></div>
|
<div class="scene_tavern center-block"></div>
|
||||||
<p>We’ve added three new backgrounds to the Background Shop! Now your avatar can feed the birds at the Duck Pond, browse the Flower Market and go on the hunt for Spring goodies in a Field with Colored Eggs. Check them out under User Icon > Backgrounds!</p>
|
<h3>Guild Spotlight: Yet More New and Notable Guilds!</h3>
|
||||||
<p>Plus, there’s new Gold-purchasable equipment in the Enchanted Armoire, including the Vernal Vestment set. Better work hard on your real-life tasks to earn all the pieces! Enjoy :)</p>
|
<p>There's a new <a href='https://habitica.wordpress.com/2019/03/12/new-and-notable-guild-spotlight-3/' target='_blank'>Guild Spotlight</a> on the blog that highlights some of the new movers and shakers in our community! Check it out now to find some cool new places to hang out in Habitica with folks who share your interests and goals.</p>
|
||||||
<div class="small mb-3">by AnneDeLune, GeraldThePixel, QuartzFox, Vikte, gawrone, astigmatism, and SabreCat</div>
|
<div class="small mb-3">by shanaqui</div>
|
||||||
|
<div class="scene_dailies center-block"></div>
|
||||||
|
<h3>Blog Post: Dailies</h3>
|
||||||
|
<p>This month's <a href='https://habitica.wordpress.com/2019/03/12/dailies/' target='_blank'>featured Wiki article</a> is about Dailies! We hope that it will help you as you work on completing routine tasks. Be sure to check it out, and let us know what you think by reaching out on <a href='https://twitter.com/habitica' target='_blank'>Twitter</a>, <a href='http://blog.habitrpg.com' target='_blank'>Tumblr</a>, and <a href='https://facebook.com/habitica' target='_blank'>Facebook</a>.</p>
|
||||||
|
<div class="small mb-3">by shanaqui and the Wiki Wizards</div>
|
||||||
</div>
|
</div>
|
||||||
`,
|
`,
|
||||||
});
|
});
|
||||||
|
|||||||