diff --git a/test/common/ops/rebirth.js b/test/common/ops/rebirth.js index 5193126c6a..d7accbfd43 100644 --- a/test/common/ops/rebirth.js +++ b/test/common/ops/rebirth.js @@ -211,22 +211,32 @@ describe('shared.ops.rebirth', () => { expect(user.achievements.rebirthLevel).to.equal(2); }); - it('does not increment rebirth achievements when level is lower than previous', async () => { + it('increments rebirth achievements even when level is lower than previous', async () => { user.stats.lvl = 2; user.achievements.rebirths = 1; user.achievements.rebirthLevel = 3; await rebirth(user); - expect(user.achievements.rebirths).to.equal(1); + expect(user.achievements.rebirths).to.equal(2); expect(user.achievements.rebirthLevel).to.equal(3); }); - it('always increments rebirth achievements when level is MAX_LEVEL', async () => { + it('updates rebirthLevel when current level is higher than previous', async () => { + user.stats.lvl = 5; + user.achievements.rebirths = 1; + user.achievements.rebirthLevel = 3; + + await rebirth(user); + + expect(user.achievements.rebirths).to.equal(2); + expect(user.achievements.rebirthLevel).to.equal(5); + }); + + it('increments rebirth achievements when level is MAX_LEVEL', async () => { user.stats.lvl = MAX_LEVEL; user.achievements.rebirths = 1; - // this value is not actually possible (actually capped at MAX_LEVEL) but makes a good test - user.achievements.rebirthLevel = MAX_LEVEL + 1; + user.achievements.rebirthLevel = MAX_LEVEL; await rebirth(user); @@ -234,11 +244,10 @@ describe('shared.ops.rebirth', () => { expect(user.achievements.rebirthLevel).to.equal(MAX_LEVEL); }); - it('always increments rebirth achievements when level is greater than MAX_LEVEL', async () => { + it('increments rebirth achievements when level is greater than MAX_LEVEL', async () => { user.stats.lvl = MAX_LEVEL + 1; user.achievements.rebirths = 1; - // this value is not actually possible (actually capped at MAX_LEVEL) but makes a good test - user.achievements.rebirthLevel = MAX_LEVEL + 2; + user.achievements.rebirthLevel = MAX_LEVEL; await rebirth(user); diff --git a/website/client/src/assets/images/rebirth-orb.png b/website/client/src/assets/images/rebirth-orb.png new file mode 100644 index 0000000000..daf89541bf Binary files /dev/null and b/website/client/src/assets/images/rebirth-orb.png differ diff --git a/website/client/src/assets/svg/purple-waves.svg b/website/client/src/assets/svg/purple-waves.svg new file mode 100644 index 0000000000..737de7058a --- /dev/null +++ b/website/client/src/assets/svg/purple-waves.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/website/client/src/components/achievements/rebirth.vue b/website/client/src/components/achievements/rebirth.vue index 174b5cd4c3..4bb514c9c9 100644 --- a/website/client/src/components/achievements/rebirth.vue +++ b/website/client/src/components/achievements/rebirth.vue @@ -1,53 +1,228 @@ - + +