@Override
	public int getAlignMedianFacValue(Faction.Align eq)
	{
		int bottom=Integer.MAX_VALUE;
		int top=Integer.MIN_VALUE;
		final Enumeration<FRange> e = getRanges(AlignID());
		if(e==null)
			return 0;
		for(;e.hasMoreElements();)
		{
			final Faction.FRange R=e.nextElement();
			if(R.alignEquiv()==eq)
			{
				if(R.low()<bottom)
					bottom=R.low();
				if(R.high()>top)
					top=R.high();
			}
		}
		switch(eq)
		{
			case GOOD:
				return top;
			case EVIL:
				return bottom;
			case NEUTRAL:
				return (int)Math.round(CMath.div((top+bottom),2));
			default:
				return 0;
		}
	}