public void equipWeapon(Survivor survivor, Weapon weapon) throws CantEquipWeaponException {
		if (! this.survivors.contains(survivor)) {
			throw new CantEquipWeaponException(CantEquipWeaponException.notInTheTeam(survivor));
		} else if (! this.mainBase.getAvailableWeapons().contains(weapon)) {
			throw new CantEquipWeaponException("Weapon must be one of those stored in base to equip");
		} else {
			Survivor owner = this.alreadyEquipped(weapon);
			if (owner != null) { 
				throw new CantEquipWeaponException("Weapon is already equipped by " + owner.getName());
			} else {
				Weapon oldWeapon = survivor.getWeapon();
				
				this.mainBase.getAvailableWeapons().remove(weapon);
				survivor.setWeapon(weapon);
				
				if (oldWeapon != null) {
					this.mainBase.getAvailableWeapons().add(oldWeapon);
				}
			}
		}
	}