mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-17 14:47:53 +01:00
Squashed commit of the following:
commit 3746ccb2fdfb23276f49a9aee25e00ca366be14c Author: Phillip Thelen <phillip@habitica.com> Date: Thu Jan 23 17:30:31 2025 +0100 fix giving gear to contributors commit 557cb582df47abb75331794e2af5c69da5548a90 Author: Phillip Thelen <phillip@habitica.com> Date: Tue Jan 21 11:10:29 2025 +0100 Give contributors gear immediately commit 8d25bef6e1c6e48aa4d5a3b0cde49844d3164ed9 Author: Phillip Thelen <phillip@habitica.com> Date: Tue Jan 21 11:10:16 2025 +0100 adjust contributor tests commit d918738533fe059db65d9020adb0126b43aaf0b3 Author: Phillip Thelen <phillip@habitica.com> Date: Tue Jan 21 11:02:19 2025 +0100 adjust gems per tier
This commit is contained in:
@@ -60,12 +60,12 @@ describe('PUT /heroes/:heroId', () => {
|
|||||||
expect(heroRes.profile).to.have.all.keys(['name']);
|
expect(heroRes.profile).to.have.all.keys(['name']);
|
||||||
|
|
||||||
// test response values
|
// 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.contributor.level).to.equal(1);
|
||||||
expect(heroRes.purchased.ads).to.equal(true);
|
expect(heroRes.purchased.ads).to.equal(true);
|
||||||
// test hero values
|
// test hero values
|
||||||
await hero.sync();
|
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.contributor.level).to.equal(1);
|
||||||
expect(hero.purchased.ads).to.equal(true);
|
expect(hero.purchased.ads).to.equal(true);
|
||||||
expect(hero.auth.blocked).to.equal(prevBlockState);
|
expect(hero.auth.blocked).to.equal(prevBlockState);
|
||||||
@@ -136,12 +136,12 @@ describe('PUT /heroes/:heroId', () => {
|
|||||||
expect(heroRes.profile).to.have.all.keys(['name']);
|
expect(heroRes.profile).to.have.all.keys(['name']);
|
||||||
|
|
||||||
// test response values
|
// 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.contributor.level).to.equal(6);
|
||||||
expect(heroRes.items.pets['Dragon-Hydra']).to.equal(5);
|
expect(heroRes.items.pets['Dragon-Hydra']).to.equal(5);
|
||||||
// test hero values
|
// test hero values
|
||||||
await hero.sync();
|
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.contributor.level).to.equal(6);
|
||||||
expect(hero.items.pets['Dragon-Hydra']).to.equal(5);
|
expect(hero.items.pets['Dragon-Hydra']).to.equal(5);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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 = {
|
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
|
let tierDiff = newTier - oldTier; // can be 2+ tier increases at once
|
||||||
while (tierDiff) {
|
while (tierDiff) {
|
||||||
await hero.updateBalance(gemsPerTier[newTier] / 4, 'contribution', newTier); // eslint-disable-line no-await-in-loop
|
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;
|
tierDiff -= 1;
|
||||||
newTier -= 1; // give them gems for the next tier down if they weren't already that tier
|
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');
|
hero.addNotification('NEW_CONTRIBUTOR_LEVEL');
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user