feat(event): March-April goodness
@@ -535,24 +535,12 @@ describe('PUT /tasks/:id', () => {
|
||||
});
|
||||
|
||||
expect(savedMonthly.nextDue.length).to.eql(6);
|
||||
expect(moment(savedMonthly.nextDue[0]).toDate()).to.eql(
|
||||
moment(date2).add(1, 'months').startOf('day').toDate(),
|
||||
);
|
||||
expect(moment(savedMonthly.nextDue[1]).toDate()).to.eql(
|
||||
moment(date2).add(2, 'months').startOf('day').toDate(),
|
||||
);
|
||||
expect(moment(savedMonthly.nextDue[2]).toDate()).to.eql(
|
||||
moment(date2).add(3, 'months').startOf('day').toDate(),
|
||||
);
|
||||
expect(moment(savedMonthly.nextDue[3]).toDate()).to.eql(
|
||||
moment(date2).add(4, 'months').startOf('day').toDate(),
|
||||
);
|
||||
expect(moment(savedMonthly.nextDue[4]).toDate()).to.eql(
|
||||
moment(date2).add(5, 'months').startOf('day').toDate(),
|
||||
);
|
||||
expect(moment(savedMonthly.nextDue[5]).toDate()).to.eql(
|
||||
moment(date2).add(6, 'months').startOf('day').toDate(),
|
||||
);
|
||||
expect(moment(savedMonthly.nextDue[0]).isSame(moment(date2).add(1, 'months').startOf('day')));
|
||||
expect(moment(savedMonthly.nextDue[1]).isSame(moment(date2).add(2, 'months').startOf('day')));
|
||||
expect(moment(savedMonthly.nextDue[2]).isSame(moment(date2).add(3, 'months').startOf('day')));
|
||||
expect(moment(savedMonthly.nextDue[3]).isSame(moment(date2).add(4, 'months').startOf('day')));
|
||||
expect(moment(savedMonthly.nextDue[4]).isSame(moment(date2).add(5, 'months').startOf('day')));
|
||||
expect(moment(savedMonthly.nextDue[5]).isSame(moment(date2).add(6, 'months').startOf('day')));
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,132 +1,174 @@
|
||||
.quest_bronze {
|
||||
.quest_atom2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1333px -1332px;
|
||||
width: 207px;
|
||||
height: 138px;
|
||||
}
|
||||
.quest_atom3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -211px -1534px;
|
||||
width: 216px;
|
||||
height: 180px;
|
||||
}
|
||||
.quest_axolotl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_bunny {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -1546px;
|
||||
width: 210px;
|
||||
height: 186px;
|
||||
}
|
||||
.quest_butterfly {
|
||||
.quest_badger {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_cheetah {
|
||||
.quest_basilist {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -642px -1534px;
|
||||
width: 189px;
|
||||
height: 141px;
|
||||
}
|
||||
.quest_beetle {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -1332px;
|
||||
width: 204px;
|
||||
height: 201px;
|
||||
}
|
||||
.quest_blackPearl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px -214px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_bronze {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_cow {
|
||||
.quest_bunny {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1760px 0px;
|
||||
width: 174px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_dilatory {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dilatoryDistress1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -222px -1332px;
|
||||
background-position: 0px -1534px;
|
||||
width: 210px;
|
||||
height: 210px;
|
||||
height: 186px;
|
||||
}
|
||||
.quest_dilatoryDistress2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1760px -422px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_dilatoryDistress3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -660px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dilatory_derby {
|
||||
.quest_butterfly {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dolphin {
|
||||
.quest_cheetah {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px -232px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_cow {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1762px 0px;
|
||||
width: 174px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_dilatory {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -660px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_dustbunnies {
|
||||
.quest_dilatoryDistress1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px -1112px;
|
||||
width: 210px;
|
||||
height: 210px;
|
||||
}
|
||||
.quest_dilatoryDistress2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1762px -422px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_dilatoryDistress3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_egg {
|
||||
.quest_dilatory_derby {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1760px -214px;
|
||||
width: 165px;
|
||||
height: 207px;
|
||||
background-position: -660px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_evilsanta {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1760px -724px;
|
||||
width: 118px;
|
||||
height: 131px;
|
||||
}
|
||||
.quest_evilsanta2 {
|
||||
.quest_dolphin {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_falcon {
|
||||
.quest_dustbunnies {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_ferret {
|
||||
.quest_egg {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1762px -214px;
|
||||
width: 165px;
|
||||
height: 207px;
|
||||
}
|
||||
.quest_evilsanta {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1762px -724px;
|
||||
width: 118px;
|
||||
height: 131px;
|
||||
}
|
||||
.quest_evilsanta2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -660px -452px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_fluorite {
|
||||
.quest_falcon {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -880px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_frog {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -1332px;
|
||||
width: 221px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_ghost_stag {
|
||||
.quest_ferret {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -880px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_goldenknight1 {
|
||||
.quest_fluorite {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -880px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_frog {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px 0px;
|
||||
width: 221px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_ghost_stag {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_goldenknight1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_goldenknight2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -211px -1546px;
|
||||
background-position: -1082px -1332px;
|
||||
width: 250px;
|
||||
height: 150px;
|
||||
}
|
||||
@@ -138,253 +180,211 @@
|
||||
}
|
||||
.quest_gryphon {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -876px -1332px;
|
||||
background-position: -648px -1332px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_guineapig {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -672px;
|
||||
background-position: -440px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_harpy {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px -672px;
|
||||
background-position: -660px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_hedgehog {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -433px -1332px;
|
||||
background-position: -205px -1332px;
|
||||
width: 219px;
|
||||
height: 186px;
|
||||
}
|
||||
.quest_hippo {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px -672px;
|
||||
background-position: -880px -672px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_horse {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -660px -672px;
|
||||
background-position: -1100px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_kangaroo {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -880px -672px;
|
||||
background-position: -1100px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_kraken {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1093px -1332px;
|
||||
background-position: -865px -1332px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_lostMasterclasser1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1100px 0px;
|
||||
background-position: -1100px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_lostMasterclasser2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1100px -220px;
|
||||
background-position: -1100px -660px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_lostMasterclasser3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1100px -440px;
|
||||
background-position: 0px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_mayhemMistiflying1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1760px -573px;
|
||||
background-position: -1762px -573px;
|
||||
width: 150px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_mayhemMistiflying2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1100px -660px;
|
||||
background-position: -220px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_mayhemMistiflying3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -892px;
|
||||
background-position: -440px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_monkey {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px -892px;
|
||||
background-position: -660px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moon1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px -220px;
|
||||
background-position: -1540px -431px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_moon2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px -892px;
|
||||
background-position: -880px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moon3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -660px -892px;
|
||||
background-position: -1100px -892px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moonstone1 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -880px -892px;
|
||||
background-position: -1320px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moonstone2 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1100px -892px;
|
||||
background-position: -1320px -220px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_moonstone3 {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px 0px;
|
||||
background-position: -1320px -440px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_nudibranch {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px -437px;
|
||||
background-position: -1540px -648px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_octopus {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -653px -1332px;
|
||||
background-position: -425px -1332px;
|
||||
width: 222px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_owl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px -220px;
|
||||
background-position: -1320px -660px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_peacock {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px -654px;
|
||||
background-position: -1540px -865px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_penguin {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -1733px;
|
||||
background-position: 0px -1721px;
|
||||
width: 190px;
|
||||
height: 183px;
|
||||
}
|
||||
.quest_pterodactyl {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px -440px;
|
||||
background-position: -1320px -880px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_rat {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px -660px;
|
||||
background-position: 0px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_robot {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px -880px;
|
||||
background-position: -220px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_rock {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px -871px;
|
||||
background-position: -1540px -1082px;
|
||||
width: 216px;
|
||||
height: 216px;
|
||||
}
|
||||
.quest_rooster {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1527px -1332px;
|
||||
background-position: -428px -1534px;
|
||||
width: 213px;
|
||||
height: 174px;
|
||||
}
|
||||
.quest_ruby {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: 0px -1112px;
|
||||
background-position: -440px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sabretooth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -220px -1112px;
|
||||
background-position: -660px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_seaserpent {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -440px -1112px;
|
||||
background-position: -880px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sheep {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -660px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_silver {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -880px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_slime {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1100px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_sloth {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1320px -1112px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
.quest_snail {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px -1088px;
|
||||
width: 219px;
|
||||
height: 213px;
|
||||
}
|
||||
.quest_snake {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1310px -1332px;
|
||||
width: 216px;
|
||||
height: 177px;
|
||||
}
|
||||
.quest_spider {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -462px -1546px;
|
||||
width: 250px;
|
||||
height: 150px;
|
||||
}
|
||||
.quest_squirrel {
|
||||
background-image: url('~@/assets/images/sprites/spritesmith-main-14.png');
|
||||
background-position: -1540px 0px;
|
||||
width: 219px;
|
||||
height: 219px;
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 134 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 124 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 413 KiB After Width: | Height: | Size: 378 KiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 306 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 156 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 169 KiB |
|
Before Width: | Height: | Size: 142 KiB After Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 138 KiB After Width: | Height: | Size: 138 KiB |
|
Before Width: | Height: | Size: 189 KiB After Width: | Height: | Size: 180 KiB |
|
Before Width: | Height: | Size: 145 KiB After Width: | Height: | Size: 158 KiB |
|
Before Width: | Height: | Size: 155 KiB After Width: | Height: | Size: 153 KiB |
|
Before Width: | Height: | Size: 149 KiB After Width: | Height: | Size: 149 KiB |
|
Before Width: | Height: | Size: 159 KiB After Width: | Height: | Size: 161 KiB |
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 182 KiB |
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 172 KiB |
@@ -213,10 +213,9 @@ export default {
|
||||
}),
|
||||
eventName () {
|
||||
if (
|
||||
!this.currentEvent || !this.currentEvent.event
|
||||
|| this.currentEvent.season === 'normal' || this.currentEvent.season === 'valentines'
|
||||
!this.currentEvent || !this.currentEvent.event || !this.currentEvent.gear
|
||||
) return null;
|
||||
return this.currentEvent.event.replace('NoPromo', '');
|
||||
return this.currentEvent.event;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<span
|
||||
v-if="member.items.currentPet"
|
||||
class="current-pet"
|
||||
:class="'Pet-' + member.items.currentPet"
|
||||
:class="petClass"
|
||||
></span>
|
||||
</template>
|
||||
</div>
|
||||
@@ -121,9 +121,15 @@
|
||||
.offset-kangaroo {
|
||||
margin-top: 24px;
|
||||
}
|
||||
|
||||
.invert {
|
||||
filter: invert(100%);
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import some from 'lodash/some';
|
||||
import moment from 'moment';
|
||||
import { mapState } from '@/libs/store';
|
||||
|
||||
import ClassBadge from '@/components/members/classBadge';
|
||||
@@ -174,6 +180,7 @@ export default {
|
||||
computed: {
|
||||
...mapState({
|
||||
flatGear: 'content.gear.flat',
|
||||
currentEventList: 'worldState.data.currentEventList',
|
||||
}),
|
||||
hasClass () {
|
||||
return this.$store.getters['members:hasClass'](this.member);
|
||||
@@ -233,6 +240,15 @@ export default {
|
||||
|
||||
return null;
|
||||
},
|
||||
petClass () {
|
||||
if (some(
|
||||
this.currentEventList,
|
||||
event => moment().isBetween(event.start, event.end) && event.aprilFools && event.aprilFools === 'invert',
|
||||
)) {
|
||||
return `Pet-${this.member.items.currentPet} invert`;
|
||||
}
|
||||
return `Pet-${this.member.items.currentPet}`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
getGearClass (gearType) {
|
||||
|
||||
@@ -103,9 +103,15 @@
|
||||
transform: scale(1.2);
|
||||
}
|
||||
}
|
||||
|
||||
.invert {
|
||||
filter: invert(100%);
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
import some from 'lodash/some';
|
||||
import moment from 'moment';
|
||||
import { v4 as uuid } from 'uuid';
|
||||
import { mapState } from '@/libs/store';
|
||||
import {
|
||||
@@ -141,6 +147,7 @@ export default {
|
||||
computed: {
|
||||
...mapState({
|
||||
userItems: 'user.data.items',
|
||||
currentEventList: 'worldState.data.currentEventList',
|
||||
}),
|
||||
potionClass () {
|
||||
return `Pet_HatchingPotion_${this.item.potionKey}`;
|
||||
@@ -160,6 +167,13 @@ export default {
|
||||
return isAllowedToFeed(this.item, this.userItems);
|
||||
},
|
||||
getPetItemClass () {
|
||||
if (this.isOwned() && some(
|
||||
this.currentEventList,
|
||||
event => moment().isBetween(event.start, event.end) && event.aprilFools && event.aprilFools === 'invert',
|
||||
)) {
|
||||
return `Pet Pet-${this.item.key} ${this.item.eggKey} invert`;
|
||||
}
|
||||
|
||||
if (this.isOwned() || (this.mountOwned() && this.isHatchable())) {
|
||||
return `Pet Pet-${this.item.key} ${this.item.eggKey}`;
|
||||
}
|
||||
|
||||
@@ -389,6 +389,15 @@
|
||||
"headSpecialNye2020Text": "Extravagant Party Hat",
|
||||
"headSpecialNye2020Notes": "You've received an Extravagant Party Hat! Wear it with pride while ringing in the New Year! Confers no benefit.",
|
||||
|
||||
"weaponSpecialSpring2021RogueText": "Twin Flower Bloom",
|
||||
"weaponSpecialSpring2021RogueNotes": "You know what's better than dual-wielding flowers? QUADRUPLE wielding flowers! Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021WarriorText": "Hammer of the Sun",
|
||||
"weaponSpecialSpring2021WarriorNotes": "Harness the power of the sun against your enemies, and let the sunstone bring you luck! Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021MageText": "Swan Plume",
|
||||
"weaponSpecialSpring2021MageNotes": "Throw, beat, treadle, rest! Swish this magnificent feather in time to conduct the music of your magic. Increases Intelligence by <%= int %> and Perception by <%= per %>. Limited Edition 2021 Spring Gear.",
|
||||
"weaponSpecialSpring2021HealerText": "Willow Branch",
|
||||
"weaponSpecialSpring2021HealerNotes": "The bark and leaves of this fresh cutting are known for their ability to relieve pain. Or you can plant it and watch it grow! Increases Intelligence by <%= int %>. Limited Edition 2021 Spring Gear.",
|
||||
|
||||
"weaponMystery201411Text": "Pitchfork of Feasting",
|
||||
"weaponMystery201411Notes": "Stab your enemies or dig in to your favorite foods - this versatile pitchfork does it all! Confers no benefit. November 2014 Subscriber Item.",
|
||||
"weaponMystery201502Text": "Shimmery Winged Staff of Love and Also Truth",
|
||||
@@ -908,6 +917,15 @@
|
||||
"armorSpecialWinter2021HealerText": "Arctic Parka",
|
||||
"armorSpecialWinter2021HealerNotes": "Defy the chill winds with the best protection available north of the Circle! Increases Constitution by <%= con %>. Limited Edition 2020-2021 Winter Gear.",
|
||||
|
||||
"armorSpecialSpring2021RogueText": "Twin Flower Stem",
|
||||
"armorSpecialSpring2021RogueNotes": "No one will see you waiting in amBUSH with this cunning armor; you look like a plant from every angle. Increases Perception by <%= per %>. Limited Edition 2021 Spring Gear.",
|
||||
"armorSpecialSpring2021WarriorText": "Armor of the Sun",
|
||||
"armorSpecialSpring2021WarriorNotes": "Be careful you don't dazzle yourself as this sunstone armor catches the light! Increases Constitution by <%= con %>. Limited Edition 2021 Spring Gear.",
|
||||
"armorSpecialSpring2021MageText": "White Swan's Splendor",
|
||||
"armorSpecialSpring2021MageNotes": "Your transformation is complete! Take to the sky, or to the lake, and sing for joy! Increases Intelligence by <%= int %>. Limited Edition 2021 Spring Gear.",
|
||||
"armorSpecialSpring2021HealerText": "Willow Bark Coat",
|
||||
"armorSpecialSpring2021HealerNotes": "This armor helps you bend instead of break when buffeted by wind or weapon. Increases Constitution by <%= con %>. Limited Edition 2021 Spring Gear.",
|
||||
|
||||
"armorMystery201402Text": "Messenger Robes",
|
||||
"armorMystery201402Notes": "Shimmering and strong, these robes have many pockets to carry letters. Confers no benefit. February 2014 Subscriber Item.",
|
||||
"armorMystery201403Text": "Forest Walker Armor",
|
||||
@@ -1528,6 +1546,15 @@
|
||||
"headSpecialWinter2021HealerText": "Arctic Exploration Headgear",
|
||||
"headSpecialWinter2021HealerNotes": "A surprising amount of heat escapes through the head! Not if you're wearing this thick hood and goggles, though. There'll be no icicles on YOUR eyelashes! Increases Intelligence by <%= int %>. Limited Edition 2020-2021 Winter Gear.",
|
||||
|
||||
"headSpecialSpring2021RogueText": "Twin Flower Hat",
|
||||
"headSpecialSpring2021RogueNotes": "Let's keep the flowery language to a minimum: this hat will help you blend in with the spring flowers! Increases Perception by <%= per %>. Limited Edition 2021 Spring Gear.",
|
||||
"headSpecialSpring2021WarriorText": "Helm of the Sun",
|
||||
"headSpecialSpring2021WarriorNotes": "Don't fear! The sunstone in this helm will help you bring to light those deepest, darkest red to-dos. Increases Strength by <%= str %>. Limited Edition 2021 Spring Gear.",
|
||||
"headSpecialSpring2021MageText": "Cygnet Circlet",
|
||||
"headSpecialSpring2021MageNotes": "Set this airy crown upon your brow, and the birds of the water will come attend to you. To what quest will you call them? Increases Perception by <%= per %>. Limited Edition 2021 Spring Gear.",
|
||||
"headSpecialSpring2021HealerText": "Salix Wreath",
|
||||
"headSpecialSpring2021HealerNotes": "Weep not, friends! A Healer is here to soothe your suffering! Increases Intelligence by <%= int %>. Limited Edition 2021 Spring Gear.",
|
||||
|
||||
"headSpecialGaymerxText": "Rainbow Warrior Helm",
|
||||
"headSpecialGaymerxNotes": "In celebration of the GaymerX Conference, this special helmet is decorated with a radiant, colorful rainbow pattern! GaymerX is a game convention celebrating LGTBQ and gaming and is open to everyone.",
|
||||
|
||||
@@ -2005,6 +2032,11 @@
|
||||
"shieldSpecialWinter2021HealerText": "Arctic Armguards",
|
||||
"shieldSpecialWinter2021HealerNotes": "These mighty mitts stop weapons cold. Increases Constitution by <%= con %>. Limited Edition 2020-2021 Winter Gear.",
|
||||
|
||||
"shieldSpecialSpring2021WarriorText": "Shield of the Sun",
|
||||
"shieldSpecialSpring2021WarriorNotes": "The beauty in this roughly-shaped sunstone will shine even in the deepest caves and darkest dungeons. Hold it high! Increases Constitution by <%= con %>. Limited Edition 2021 Spring Gear.",
|
||||
"shieldSpecialSpring2021HealerText": "Salicylic Shield",
|
||||
"shieldSpecialSpring2021HealerNotes": "A leafy green bundle that heralds shelter and compassion. Increases Constitution by <%= con %>. Limited Edition 2021 Spring Gear.",
|
||||
|
||||
"shieldMystery201601Text": "Resolution Slayer",
|
||||
"shieldMystery201601Notes": "This blade can be used to parry away all distractions. Confers no benefit. January 2016 Subscriber Item.",
|
||||
"shieldMystery201701Text": "Time-Freezer Shield",
|
||||
|
||||
@@ -163,6 +163,10 @@
|
||||
"winter2021WinterMoonMageSet": "Winter Moon (Mage)",
|
||||
"winter2021ArcticExplorerHealerSet": "Arctic Explorer (Healer)",
|
||||
"winter2021HollyIvyRogueSet": "Holly and Ivy (Rogue)",
|
||||
"spring2021SunstoneWarriorSet": "Sunstone (Warrior)",
|
||||
"spring2021SwanMageSet": "Swan (Mage)",
|
||||
"spring2021WillowHealerSet": "Willow (Healer)",
|
||||
"spring2021TwinFlowerRogueSet": "Twin Flower (Rogue)",
|
||||
"eventAvailability": "Available for purchase until <%= date(locale) %>.",
|
||||
"eventAvailabilityReturning": "Available for purchase until <%= availableDate(locale) %>. This potion was last available in <%= previousDate(locale) %>.",
|
||||
"dateEndMarch": "April 30",
|
||||
|
||||
@@ -10,19 +10,35 @@ const gemsPromo = {
|
||||
|
||||
export const EVENTS = {
|
||||
noCurrentEvent2021: {
|
||||
start: '2021-02-16T08:00-05:00',
|
||||
end: '2021-03-23T08:00-05:00',
|
||||
start: '2021-04-30T08:00-05:00',
|
||||
end: '2021-08-23T08:00-05:00',
|
||||
season: 'normal',
|
||||
npcImageSuffix: '',
|
||||
},
|
||||
spring2021: {
|
||||
start: '2021-03-23T08:00-05:00',
|
||||
end: '2021-04-30T20:00-05:00',
|
||||
npcImageSuffix: 'spring',
|
||||
season: 'spring',
|
||||
gear: true,
|
||||
},
|
||||
aprilFools2021: {
|
||||
start: '2021-04-01T08:00-05:00',
|
||||
end: '2021-04-02T08:00-05:00',
|
||||
aprilFools: 'invert',
|
||||
},
|
||||
valentines2021: {
|
||||
start: '2021-02-07T08:00-05:00',
|
||||
end: '2021-02-16T08:00-05:00',
|
||||
season: 'valentines',
|
||||
npcImageSuffix: 'valentines',
|
||||
},
|
||||
winter2021: {
|
||||
start: '2020-12-17T08:00-05:00',
|
||||
end: '2021-01-31T20:00-05:00',
|
||||
season: 'winter',
|
||||
npcImageSuffix: 'winter',
|
||||
gear: true,
|
||||
},
|
||||
winter2021Promo: { // used in tests, not an actual past event
|
||||
start: '2020-12-01T08:00-05:00',
|
||||
@@ -30,45 +46,41 @@ export const EVENTS = {
|
||||
season: 'winter',
|
||||
promo: 'g1g1',
|
||||
},
|
||||
noCurrentEvent2020: {
|
||||
start: '2020-10-31T20:00-05:00',
|
||||
end: '2020-12-17T08:00-05:00',
|
||||
season: 'normal',
|
||||
},
|
||||
fall2020: {
|
||||
start: '2020-09-22T08:00-04:00',
|
||||
end: '2020-10-31T20:00-04:00',
|
||||
gear: true,
|
||||
gemsPromo,
|
||||
},
|
||||
// Dates from this point on (^) are in the RFC 2822 format, see https://momentjs.com/docs/#/parsing/string/
|
||||
|
||||
summer2020: { start: '2020-06-18', end: '2020-08-02' },
|
||||
spring2020: { start: '2020-03-17', end: '2020-05-02' },
|
||||
winter2020: { start: '2019-12-19', end: '2020-02-02' },
|
||||
fall2019: { start: '2019-09-24', end: '2019-11-02' },
|
||||
summer2019: { start: '2019-06-18', end: '2019-08-02' },
|
||||
spring2019: { start: '2019-03-19', end: '2019-05-02' },
|
||||
winter2019: { start: '2018-12-19', end: '2019-02-02' },
|
||||
fall2018: { start: '2018-09-20', end: '2018-11-02' },
|
||||
summer2018: { start: '2018-06-19', end: '2018-08-02' },
|
||||
spring2018: { start: '2018-03-20', end: '2018-05-02' },
|
||||
winter2018: { start: '2017-12-19', end: '2018-02-02' },
|
||||
fall2017: { start: '2017-09-21', end: '2017-11-02' },
|
||||
summer2017: { start: '2017-06-20', end: '2017-08-02' },
|
||||
spring2017: { start: '2017-03-21', end: '2017-05-02' },
|
||||
winter2017: { start: '2016-12-16', end: '2017-02-02' },
|
||||
fall2016: { start: '2016-09-20', end: '2016-11-02' },
|
||||
summer2016: { start: '2016-06-21', end: '2016-08-02' },
|
||||
spring2016: { start: '2016-03-18', end: '2016-05-02' },
|
||||
winter2016: { start: '2015-12-18', end: '2016-02-02' },
|
||||
summer2020: { start: '2020-06-18', end: '2020-08-02', gear: true },
|
||||
spring2020: { start: '2020-03-17', end: '2020-05-02', gear: true },
|
||||
winter2020: { start: '2019-12-19', end: '2020-02-02', gear: true },
|
||||
fall2019: { start: '2019-09-24', end: '2019-11-02', gear: true },
|
||||
summer2019: { start: '2019-06-18', end: '2019-08-02', gear: true },
|
||||
spring2019: { start: '2019-03-19', end: '2019-05-02', gear: true },
|
||||
winter2019: { start: '2018-12-19', end: '2019-02-02', gear: true },
|
||||
fall2018: { start: '2018-09-20', end: '2018-11-02', gear: true },
|
||||
summer2018: { start: '2018-06-19', end: '2018-08-02', gear: true },
|
||||
spring2018: { start: '2018-03-20', end: '2018-05-02', gear: true },
|
||||
winter2018: { start: '2017-12-19', end: '2018-02-02', gear: true },
|
||||
fall2017: { start: '2017-09-21', end: '2017-11-02', gear: true },
|
||||
summer2017: { start: '2017-06-20', end: '2017-08-02', gear: true },
|
||||
spring2017: { start: '2017-03-21', end: '2017-05-02', gear: true },
|
||||
winter2017: { start: '2016-12-16', end: '2017-02-02', gear: true },
|
||||
fall2016: { start: '2016-09-20', end: '2016-11-02', gear: true },
|
||||
summer2016: { start: '2016-06-21', end: '2016-08-02', gear: true },
|
||||
spring2016: { start: '2016-03-18', end: '2016-05-02', gear: true },
|
||||
winter2016: { start: '2015-12-18', end: '2016-02-02', gear: true },
|
||||
gaymerx: { start: '2016-09-29', end: '2016-10-03' },
|
||||
fall2015: { start: '2015-09-21', end: '2015-11-01' },
|
||||
summer2015: { start: '2015-06-20', end: '2015-08-02' },
|
||||
spring2015: { start: '2015-03-20', end: '2015-05-02' },
|
||||
winter2015: { start: '2014-12-21', end: '2015-02-02' },
|
||||
fall: { start: '2014-09-21', end: '2014-11-01' },
|
||||
summer: { start: '2014-06-20', end: '2014-08-01' },
|
||||
spring: { start: '2014-03-21', end: '2014-05-01' },
|
||||
fall2015: { start: '2015-09-21', end: '2015-11-01', gear: true },
|
||||
summer2015: { start: '2015-06-20', end: '2015-08-02', gear: true },
|
||||
spring2015: { start: '2015-03-20', end: '2015-05-02', gear: true },
|
||||
winter2015: { start: '2014-12-21', end: '2015-02-02', gear: true },
|
||||
fall: { start: '2014-09-21', end: '2014-11-01', gear: true },
|
||||
summer: { start: '2014-06-20', end: '2014-08-01', gear: true },
|
||||
spring: { start: '2014-03-21', end: '2014-05-01', gear: true },
|
||||
birthday: { start: '2017-01-31', end: '2017-02-02' },
|
||||
winter: { start: '2013-12-31', end: '2014-02-01' },
|
||||
};
|
||||
|
||||
@@ -86,11 +86,16 @@ const SEASONAL_SETS = {
|
||||
'spring2019RobinHealerSet',
|
||||
|
||||
// spring 2020
|
||||
|
||||
'spring2020BeetleWarriorSet',
|
||||
'spring2020IrisHealerSet',
|
||||
'spring2020LapisLazuliRogueSet',
|
||||
'spring2020PuddleMageSet',
|
||||
|
||||
// spring 2021
|
||||
'spring2021SwanMageSet',
|
||||
'spring2021WillowHealerSet',
|
||||
'spring2021SunstoneWarriorSet',
|
||||
'spring2021TwinFlowerRogueSet',
|
||||
],
|
||||
summer: [
|
||||
// summer 2014
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import moment from 'moment';
|
||||
import cloneDeep from 'lodash/cloneDeep';
|
||||
import pickBy from 'lodash/pickBy';
|
||||
import defaults from 'lodash/defaults';
|
||||
import find from 'lodash/find';
|
||||
import upperFirst from 'lodash/upperFirst';
|
||||
@@ -14,12 +14,11 @@ import * as takeThisGear from './special-takeThis';
|
||||
import * as wonderconGear from './special-wondercon';
|
||||
import t from '../../../translation';
|
||||
|
||||
const CURRENT_EVENT = find(EVENTS, event => moment().isBetween(event.start, event.end));
|
||||
const CURRENT_EVENT = find(
|
||||
EVENTS, event => moment().isBetween(event.start, event.end) && Boolean(event.season),
|
||||
);
|
||||
|
||||
const gearEvents = cloneDeep(EVENTS);
|
||||
['winter', 'birthday', 'gaymerx', 'noCurrentEvent2020', 'winter2021NoPromo', 'noCurrentEvent2021'].forEach(nonGearEvent => {
|
||||
delete gearEvents[nonGearEvent];
|
||||
}); // TODO maybe we can match with regex instead of manually specifying here?
|
||||
const gearEvents = pickBy(EVENTS, event => event.gear);
|
||||
|
||||
const armor = {
|
||||
0: backerGear.armorSpecial0,
|
||||
@@ -664,6 +663,18 @@ const armor = {
|
||||
value: 0,
|
||||
canOwn: ownsItem('armor_special_birthday2021'),
|
||||
},
|
||||
spring2021Rogue: {
|
||||
set: 'spring2021TwinFlowerRogueSet',
|
||||
},
|
||||
spring2021Warrior: {
|
||||
set: 'spring2021SunstoneWarriorSet',
|
||||
},
|
||||
spring2021Mage: {
|
||||
set: 'spring2021SwanMageSet',
|
||||
},
|
||||
spring2021Healer: {
|
||||
set: 'spring2021WillowHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const armorStats = {
|
||||
@@ -1671,6 +1682,18 @@ const head = {
|
||||
value: 0,
|
||||
canOwn: ownsItem('head_special_nye2020'),
|
||||
},
|
||||
spring2021Rogue: {
|
||||
set: 'spring2021TwinFlowerRogueSet',
|
||||
},
|
||||
spring2021Warrior: {
|
||||
set: 'spring2021SunstoneWarriorSet',
|
||||
},
|
||||
spring2021Mage: {
|
||||
set: 'spring2021SwanMageSet',
|
||||
},
|
||||
spring2021Healer: {
|
||||
set: 'spring2021WillowHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const headStats = {
|
||||
@@ -2403,6 +2426,15 @@ const shield = {
|
||||
winter2021Healer: {
|
||||
set: 'winter2021ArcticExplorerHealerSet',
|
||||
},
|
||||
spring2021Rogue: {
|
||||
set: 'spring2021TwinFlowerRogueSet',
|
||||
},
|
||||
spring2021Warrior: {
|
||||
set: 'spring2021SunstoneWarriorSet',
|
||||
},
|
||||
spring2021Healer: {
|
||||
set: 'spring2021WillowHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const shieldStats = {
|
||||
@@ -3025,6 +3057,18 @@ const weapon = {
|
||||
winter2021Healer: {
|
||||
set: 'winter2021ArcticExplorerHealerSet',
|
||||
},
|
||||
spring2021Rogue: {
|
||||
set: 'spring2021TwinFlowerRogueSet',
|
||||
},
|
||||
spring2021Warrior: {
|
||||
set: 'spring2021SunstoneWarriorSet',
|
||||
},
|
||||
spring2021Mage: {
|
||||
set: 'spring2021SwanMageSet',
|
||||
},
|
||||
spring2021Healer: {
|
||||
set: 'spring2021WillowHealerSet',
|
||||
},
|
||||
};
|
||||
|
||||
const weaponStats = {
|
||||
|
||||
@@ -6,7 +6,9 @@ import {
|
||||
SEASONAL_SETS,
|
||||
} from '../content/constants';
|
||||
|
||||
const CURRENT_EVENT = find(EVENTS, event => moment().isBetween(event.start, event.end));
|
||||
const CURRENT_EVENT = find(
|
||||
EVENTS, event => moment().isBetween(event.start, event.end) && Boolean(event.season),
|
||||
);
|
||||
|
||||
const SHOP_OPEN = CURRENT_EVENT && ['winter', 'spring', 'summer', 'fall'].includes(CURRENT_EVENT.season);
|
||||
|
||||
@@ -15,35 +17,37 @@ export default {
|
||||
|
||||
currentSeason: SHOP_OPEN ? upperFirst(CURRENT_EVENT.season) : 'Closed',
|
||||
|
||||
dateRange: { start: '2020-12-17', end: '2021-01-31' },
|
||||
dateRange: {
|
||||
start: moment(CURRENT_EVENT.start).format('YYYY-MM-DD'),
|
||||
end: moment(CURRENT_EVENT.end).format('YYYY-MM-DD'),
|
||||
},
|
||||
|
||||
availableSets: SHOP_OPEN
|
||||
? [
|
||||
...SEASONAL_SETS.winter,
|
||||
...SEASONAL_SETS[CURRENT_EVENT.season],
|
||||
]
|
||||
: [],
|
||||
|
||||
pinnedSets: SHOP_OPEN
|
||||
? {
|
||||
healer: 'winter2021ArcticExplorerHealerSet',
|
||||
rogue: 'winter2021HollyIvyRogueSet',
|
||||
warrior: 'winter2021IceFishingWarriorSet',
|
||||
wizard: 'winter2021WinterMoonMageSet',
|
||||
healer: 'spring2021WillowHealerSet',
|
||||
rogue: 'spring2021TwinFlowerRogueSet',
|
||||
warrior: 'spring2021SunstoneWarriorSet',
|
||||
wizard: 'spring2021SwanMageSet',
|
||||
}
|
||||
: {},
|
||||
|
||||
availableSpells: moment().isBetween('2020-12-29T08:00-04:00', '2021-01-31T20:00-04:00')
|
||||
availableSpells: moment().isBetween('2021-04-06T08:00-05:00', '2021-04-30T20:00-05:00')
|
||||
? [
|
||||
'snowball',
|
||||
'shinySeed',
|
||||
]
|
||||
: [],
|
||||
|
||||
availableQuests: SHOP_OPEN
|
||||
availableQuests: SHOP_OPEN && moment().isAfter('2021-03-30T08:00-05:00')
|
||||
? [
|
||||
'evilsanta',
|
||||
'evilsanta2',
|
||||
'egg',
|
||||
]
|
||||
: [],
|
||||
|
||||
featuredSet: 'winter2020CarolOfTheMageSet',
|
||||
featuredSet: 'spring2020PuddleMageSet',
|
||||
};
|
||||
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 503 B |
|
After Width: | Height: | Size: 717 B |
|
After Width: | Height: | Size: 877 B |
|
After Width: | Height: | Size: 782 B |
|
After Width: | Height: | Size: 754 B |
|
After Width: | Height: | Size: 751 B |
|
After Width: | Height: | Size: 578 B |
|
After Width: | Height: | Size: 1007 B |
|
After Width: | Height: | Size: 550 B |
|
After Width: | Height: | Size: 746 B |
|
After Width: | Height: | Size: 915 B |
|
After Width: | Height: | Size: 408 B |
|
After Width: | Height: | Size: 606 B |
|
After Width: | Height: | Size: 612 B |
|
After Width: | Height: | Size: 480 B |
|
After Width: | Height: | Size: 615 B |
|
After Width: | Height: | Size: 642 B |
|
After Width: | Height: | Size: 398 B |
|
After Width: | Height: | Size: 817 B |
|
After Width: | Height: | Size: 439 B |
|
After Width: | Height: | Size: 727 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 819 B |
|
After Width: | Height: | Size: 552 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 485 B |
|
After Width: | Height: | Size: 666 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 679 B |
@@ -1,5 +1,6 @@
|
||||
import {
|
||||
getCurrentEvent,
|
||||
getCurrentEventList,
|
||||
getWorldBoss,
|
||||
} from '../../libs/worldState';
|
||||
|
||||
@@ -29,9 +30,10 @@ api.getWorldState = {
|
||||
const worldState = {};
|
||||
|
||||
worldState.worldBoss = await getWorldBoss();
|
||||
worldState.npcImageSuffix = '';
|
||||
|
||||
worldState.currentEvent = getCurrentEvent();
|
||||
worldState.npcImageSuffix = worldState.currentEvent ? worldState.currentEvent.npcImageSuffix : '';
|
||||
|
||||
worldState.currentEventList = getCurrentEventList();
|
||||
|
||||
res.respond(200, worldState);
|
||||
},
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import filter from 'lodash/filter';
|
||||
import moment from 'moment';
|
||||
import { // eslint-disable-line import/no-cycle
|
||||
model as Group,
|
||||
@@ -22,7 +23,7 @@ export function getCurrentEvent () {
|
||||
|
||||
const now = moment();
|
||||
|
||||
return now.isBetween(event.start, event.end);
|
||||
return now.isBetween(event.start, event.end) && Boolean(event.npcImageSuffix);
|
||||
});
|
||||
|
||||
if (!currEvtKey) return null;
|
||||
@@ -31,3 +32,22 @@ export function getCurrentEvent () {
|
||||
...common.content.events[currEvtKey],
|
||||
};
|
||||
}
|
||||
|
||||
export function getCurrentEventList () {
|
||||
const currentEventKeys = filter(Object.keys(common.content.events), eventKey => {
|
||||
const eventData = common.content.events[eventKey];
|
||||
|
||||
return moment().isBetween(eventData.start, eventData.end);
|
||||
});
|
||||
|
||||
const currentEventList = [];
|
||||
|
||||
currentEventKeys.forEach(key => {
|
||||
currentEventList.push({
|
||||
event: key,
|
||||
...common.content.events[key],
|
||||
});
|
||||
});
|
||||
|
||||
return currentEventList;
|
||||
}
|
||||
|
||||