CameraBuddy.MenuGroups.Inteli.AutoPositionCamera.OnUpdate C# (CSharp) Method

OnUpdate() private method

private OnUpdate ( EventArgs args ) : void
args System.EventArgs
return void
        private void OnUpdate(EventArgs args)
        {
            CheckCrosshair();
            var distance = 0f;
            var playerPos = Player.Instance.Position;
            switch (CameraMode)
            {
                case CameraModeSelector.None:
                    return;
                case CameraModeSelector.Heroes:
                    var heroes =
                        Heroes.Enemies.Where(
                            x =>
                                x.GetPosistion().Distance(Player.Instance.Position) < HeroDetectionRange.CurrentValue &&
                                x.IsAlive()).ToList();
                    if (heroes.Count <= 0)
                    {
                        FocusPoint = playerPos.To2D();
                        return;
                    }
                    FocusPoint = heroes.AveragePosition().To2D();
                    distance = Math.Min(ExtraDistance.CurrentValue, playerPos.Distance(FocusPoint));
                    FocusPoint = playerPos.Extend(FocusPoint, distance);

                    break;
                case CameraModeSelector.Minions:
                    var minions = Minions.Enemy.Where(x => x.GetPosistion().Distance(Player.Instance.Position) < MinionDetectionRange.CurrentValue / 2f && x.IsAlive()).ToList();
                    if (minions.Count <= 0)
                    {
                        minions = Minions.Ally.Where(x => x.GetPosistion().Distance(Player.Instance.Position) < MinionDetectionRange.CurrentValue / 2f && x.IsAlive()).ToList();
                        if (minions.Count <= 0)
                        {
                            FocusPoint = playerPos.To2D();
                            return;
                        }
                    }
                    FocusPoint = minions.AveragePosition().To2D();
                    distance = Math.Min(ExtraDistance.CurrentValue, playerPos.Distance(FocusPoint));
                    FocusPoint = playerPos.Extend(FocusPoint, distance);
                    break;
                case CameraModeSelector.Mouse:
                    var pos = EloBuddy.Game.CursorPos2D;
                    distance = Math.Min(pos.Distance(_centerScreen), ExtraDistance.CurrentValue);
                    var angle = new Vector2(-(_centerScreen.X - pos.X) / _centerScreen.Distance(pos),
                        -(pos.Y - _centerScreen.Y) / _centerScreen.Distance(pos));
                    FocusPoint = new Vector2(Player.Instance.Position.X + angle.X * distance,
                        Player.Instance.Position.Y + angle.Y * distance);
                    break;
                default:
                    return;
            }
        }