public List<Sword> getSwordPartsByDistance() {
		final ArrayList<Sword> list = new ArrayList<Sword>();

		for (Sword swordPart : Sword.values()) {
			if (swordPart.getHitsNeeded(ctx) > 0) {
				list.add(swordPart);
			}
		}

		if (list.size() > 0) {
			Collections.sort(list, new SwordComparator(ctx));

			HitType hitType = list.get(0).getRequiredHitType(ctx, this);

			final List<Sword> newList = new LinkedList<Sword>();

			for (final Sword sword : list) {
				if (sword.getRequiredHitType(ctx, this) != hitType) {
					break;
				}
				newList.add(sword);
			}

			return newList;
		}

		return list;
	}