diff --git a/test/api/v3/integration/hall/PUT-hall_heores_heroId.test.js b/test/api/v3/integration/hall/PUT-hall_heores_heroId.test.js index 2c27536a61..020b5a56ae 100644 --- a/test/api/v3/integration/hall/PUT-hall_heores_heroId.test.js +++ b/test/api/v3/integration/hall/PUT-hall_heores_heroId.test.js @@ -60,12 +60,12 @@ describe('PUT /heroes/:heroId', () => { expect(heroRes.profile).to.have.all.keys(['name']); // test response values - expect(heroRes.balance).to.equal(3 + 0.75); // 3+0.75 for first contrib level + expect(heroRes.balance).to.equal(3 + 2.5); // 3+2.5 for first contrib level expect(heroRes.contributor.level).to.equal(1); expect(heroRes.purchased.ads).to.equal(true); // test hero values await hero.sync(); - expect(hero.balance).to.equal(3 + 0.75); // 3+0.75 for first contrib level + expect(hero.balance).to.equal(3 + 2.5); // 3+2.5 for first contrib level expect(hero.contributor.level).to.equal(1); expect(hero.purchased.ads).to.equal(true); expect(hero.auth.blocked).to.equal(prevBlockState); @@ -136,12 +136,12 @@ describe('PUT /heroes/:heroId', () => { expect(heroRes.profile).to.have.all.keys(['name']); // test response values - expect(heroRes.balance).to.equal(1); // 0+1 for sixth contrib level + expect(heroRes.balance).to.equal(15); // 0+15 for sixth contrib level expect(heroRes.contributor.level).to.equal(6); expect(heroRes.items.pets['Dragon-Hydra']).to.equal(5); // test hero values await hero.sync(); - expect(hero.balance).to.equal(1); // 0+1 for sixth contrib level + expect(hero.balance).to.equal(15); // 0+15 for sixth contrib level expect(hero.contributor.level).to.equal(6); expect(hero.items.pets['Dragon-Hydra']).to.equal(5); }); diff --git a/website/server/controllers/api-v3/hall.js b/website/server/controllers/api-v3/hall.js index 0c3e6e0090..0303764d0c 100644 --- a/website/server/controllers/api-v3/hall.js +++ b/website/server/controllers/api-v3/hall.js @@ -206,9 +206,9 @@ api.getHero = { }, }; -// e.g., tier 5 gives 4 gems. Tier 8 = moderator. Tier 9 = staff +// e.g., tier 5 gives 50 gems. Tier 8 = moderator. Tier 9 = staff const gemsPerTier = { - 1: 3, 2: 3, 3: 3, 4: 4, 5: 4, 6: 4, 7: 4, 8: 0, 9: 0, + 1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 0, 9: 0, }; /** @@ -326,9 +326,19 @@ api.updateHero = { let tierDiff = newTier - oldTier; // can be 2+ tier increases at once while (tierDiff) { await hero.updateBalance(gemsPerTier[newTier] / 4, 'contribution', newTier); // eslint-disable-line no-await-in-loop + if (newTier === 2 || newTier === '2') { + hero.items.gear.owned.armor_special_1 = true; + } else if (newTier === 3 || newTier === '3') { + hero.items.gear.owned.head_special_1 = true; + } else if (newTier === 4 || newTier === '4') { + hero.items.gear.owned.weapon_special_1 = true; + } else if (newTier === 5 || newTier === '5') { + hero.items.gear.owned.shield_special_1 = true; + } tierDiff -= 1; newTier -= 1; // give them gems for the next tier down if they weren't already that tier } + hero.markModified('items.gear.owned'); hero.addNotification('NEW_CONTRIBUTOR_LEVEL'); }