public void WaitWhileAnimating(int iMaxSafetyLoops = 10, bool bWaitForAttacking = false)
{
bool bKeepLooping = true;
int iSafetyLoops = 0;
while (bKeepLooping)
{
iSafetyLoops++;
if (iSafetyLoops > iMaxSafetyLoops)
bKeepLooping = false;
bool bIsAnimating = false;
try
{
AnimationState currentanimstate = CurrentAnimationState;
if (currentanimstate==(AnimationState.Casting) || currentanimstate==AnimationState.Channeling)
bIsAnimating = true;
if (bWaitForAttacking && currentanimstate==AnimationState.Attacking)
bIsAnimating = true;
}
catch (NullReferenceException)
{
bIsAnimating = true;
}
if (!bIsAnimating)
bKeepLooping = false;
}
}