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.
|