Merge pull request #6264 from ojeytonwilliams/two-handed-weapon-fix

Two-handed weapons no longer automatically equip unless desired. fixes #6231
This commit is contained in:
Sabe Jones 2015-11-26 10:53:50 -06:00
commit 5d02b70be1
2 changed files with 29 additions and 1 deletions

View file

@ -1392,9 +1392,9 @@ api.wrap = function(user, main) {
} else {
if (user.preferences.autoEquip) {
user.items.gear.equipped[item.type] = item.key;
message = user.fns.handleTwoHanded(item, null, req);
}
user.items.gear.owned[item.key] = true;
message = user.fns.handleTwoHanded(item, null, req);
if (message == null) {
message = i18n.t('messageBought', {
itemText: item.text(req.language)

View file

@ -101,6 +101,34 @@ describe('user.fns.buy', () => {
expect(user.items.gear.equipped).to.not.have.property('armor');
});
it('removes one-handed weapon and shield if auto-equip is on and a two-hander is bought', () => {
user.stats.gp = 100;
user.preferences.autoEquip = true;
user.ops.buy({params: {key: 'shield_warrior_1'}});
user.ops.equip({params: {key: 'shield_warrior_1'}});
user.ops.buy({params: {key: 'weapon_warrior_1'}});
user.ops.equip({params: {key: 'weapon_warrior_1'}});
user.ops.buy({params: {key: 'weapon_wizard_1'}});
expect(user.items.gear.equipped).to.have.property('shield', 'shield_base_0');
expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_wizard_1');
});
it('buys two-handed equipment but does not automatically remove sword or shield', () => {
user.stats.gp = 100;
user.preferences.autoEquip = false;
user.ops.buy({params: {key: 'shield_warrior_1'}});
user.ops.equip({params: {key: 'shield_warrior_1'}});
user.ops.buy({params: {key: 'weapon_warrior_1'}});
user.ops.equip({params: {key: 'weapon_warrior_1'}});
user.ops.buy({params: {key: 'weapon_wizard_1'}});
expect(user.items.gear.equipped).to.have.property('shield', 'shield_warrior_1');
expect(user.items.gear.equipped).to.have.property('weapon', 'weapon_warrior_1');
});
it('does not buy equipment without enough Gold', () => {
user.stats.gp = 20;