@Override
	public CMObject newInstance()
	{
		if(!ID().equals("Sword"))
		{
			try
			{
				return this.getClass().newInstance();
			}
			catch(final Exception e)
			{
			}
			return new Sword();
		}
		final Random randomizer = new Random(System.currentTimeMillis());
		final int swordType = Math.abs(randomizer.nextInt() % 6);
		switch (swordType)
		{
		case 0:
			return new Rapier();
		case 1:
			return new Katana();
		case 2:
			return new Longsword();
		case 3:
			return new Scimitar();
		case 4:
			return new Claymore();
		case 5:
			return new Shortsword();
		default:
			try
			{
				return this.getClass().newInstance();
			}
			catch(final Exception e)
			{
			}
			return new Sword();
		}

	}