'use strict';

const util = require('util');

const CommandUtil = require('../src/command_util').CommandUtil;
const l10nFile = __dirname + '/../l10n/commands/wield.yml';
const l10n = require('../src/l10n')(l10nFile);
const _ = require('../src/helpers');

exports.command = (rooms, items, players, npcs, Commands) => {

	return (args, player) => {
		let location = 'wield';

		const wielded = player.getEquipped(location);
		const offhand = player.getEquipped('offhand');
		const canDual = player.getSkills('dual');

		if (wielded && (offhand || !canDual)) {
			const wieldedDesc = items.get(wielded).getShortDesc('en');
			const offhandDesc = offhand ? ' and ' + items.get(offhand).getShortDesc('en') : '';
			return player.say('You are already wielding ' + wieldedDesc + offhandDesc + '.');
		} else if (wielded && canDual && !offhand) {
		  location = 'offhand';
		}

		wield(location);

		function wield(location) {
			const weapon = CommandUtil.findItemInInventory(_.firstWord(args), player, true);

			if (!weapon || !weapon.getAttribute('damage')) {
				return player.sayL10n(l10n, 'ITEM_NOT_FOUND');
			}

			util.log(player.getName() + ' ' + location + ' wields ' + weapon.getShortDesc('en'));

			if (CommandUtil.hasScript(weapon, 'wield')) {
				const room = rooms.getAt(player.getLocation());
				weapon.emit('wield', location, room, player, players);
			} else {
				player.say('You wield the ' + weapon.getShortDesc('en') + '.');
			}

			player.equip(location, weapon);
		}
	};
};

@@ -700,16 +700,56 @@
 ) : '';%0A
+%09%09%09const both = offhand ? 'both ' : '';%0A
 %09%09%09retur
@@ -790,16 +790,23 @@
 ding ' +
+ both +
  wielded

Add bothness.