private void BordersReached() { var cachedPreviousDirection = _enemiesMoveDirection; switch (_enemiesMoveDirection) { case EnemiesMoveDirection.Left: case EnemiesMoveDirection.Right: _enemiesMoveDirection = EnemiesMoveDirection.Down; _currentVerticalOffset = _verticalMoveOffsetRange.min; Data.IncrementWaveVerticalPosition(); break; case EnemiesMoveDirection.Down: switch (_previousEnemiesMoveDirection) { case EnemiesMoveDirection.Left: _enemiesMoveDirection = EnemiesMoveDirection.Right; break; case EnemiesMoveDirection.Right: _enemiesMoveDirection = EnemiesMoveDirection.Left; break; } break; } _previousEnemiesMoveDirection = cachedPreviousDirection; }
private void ClearOffset() { _horizontalMoveOffsetRange = _enemiesSettings.WaveHorizontalOffset; _verticalMoveOffsetRange = new Range(-_gameSettings.VerticalPositionStep, 0f); _currentHorizontalOffset = 0f; _currentVerticalOffset = 0f; _previousEnemiesMoveDirection = EnemiesMoveDirection.Right; _enemiesMoveDirection = EnemiesMoveDirection.Right; }