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