I took a slightly different approach to this.
I would think that AC should always give *some* protection against damage. The amount should vary with each hit. I agree with you that it should not be a constant.
Here's what I did:
	Code:
		if (IsClient() && damage>0)
	{
		int acwork=GetAC()/20;
				
		if (acwork>0)
		{
			damage-=acwork;
			damage-=rand()%acwork;
			if (damage<0) damage=0;
		}
	}
 So you get 5% to 10% protection from each hit. These values need to be adjusted. But it doesn't seem to me that if you have a lot of AC that you should ever get hit for the maxdmg.