@Override
	public String getWeaponLimitDesc()
	{
		final StringBuffer str=new StringBuffer("");
		if((disallowedWeaponClasses(null)!=null)&&(disallowedWeaponClasses(null).size()>0))
		{
			str.append(L("The following weapon types may not be used: "));
			for(final Iterator i=disallowedWeaponClasses(null).iterator();i.hasNext();)
			{
				final Integer I=(Integer)i.next();
				str.append(CMStrings.capitalizeAndLower(Weapon.CLASS_DESCS[I.intValue()])+" ");
			}
			str.append(".  ");
		}
		if((requiredWeaponMaterials()!=null)&&(requiredWeaponMaterials().size()>0))
		{
			str.append(L("Requires using weapons made of the following materials: "));
			for(final Iterator i=requiredWeaponMaterials().iterator();i.hasNext();)
			{
				final Integer I=(Integer)i.next();
				str.append(CMStrings.capitalizeAndLower(CMLib.materials().getMaterialDesc(I.intValue()))+" ");
			}
			str.append(".  ");
		}

		if(str.length()==0)
			str.append(L("No limitations."));
		return str.toString().trim();
	}