public override void Update()
{
if (Main.gamePaused || !Main.hasFocus)
return;
int index1 = _activeUfos;
for (int index2 = 0; index2 < _ufos.Length; ++index2)
{
Ufo ufo = _ufos[index2];
if (ufo.IsActive)
{
++ufo.Frame;
if (!ufo.Update())
{
if (!_leaving)
{
ufo.AssignNewBehavior();
}
else
{
ufo.IsActive = false;
--index1;
}
}
}
_ufos[index2] = ufo;
}
if (!_leaving && index1 != _maxUfos)
{
_ufos[index1].IsActive = true;
_ufos[index1++].AssignNewBehavior();
}
_active = !_leaving || index1 != 0;
_activeUfos = index1;
}