I have always thought that the whole enabled/disabled concept was strange for ptimers. I think the best solution for them is to completely remove the concept... either they exist and are running, or they do not exist. 
 
good eye on the CanThisClass* stuff. 
 
as for mitigation, basically it isnt implemented for shit because nobody has been able to find reliable equations for it. 
 
as for the special attacks/riposte stuff, we can keep patching the holes, and end up with a duplicate of Client::Attack(), but really we just need to refactor the attack functions to support special attacks, etc such that we are not duplicating code. I took the special attack code about as far as I thought was reasonable before crossing into duplication land. 
 
I think the crit function looks reasonable, I would rename it to TryCriticalHit. 
		
	
		
		
		
		
		
		
		
		
		
	
		
		
	
	
	 |