Example #1
0
        protected void OrbwalkTo(Unit target)
        {
            switch (ComboMenu.OrbwalkerItem.Value)
            {
            case "Default":
            {
                Orbwalker.OrbwalkTo(target, GameManager.MousePosition, false);
            }
            break;

            case "Distance":
            {
                var mousePosition = GameManager.MousePosition;
                var ownerDis      = Math.Min(Owner.Distance2D(mousePosition), 230);
                var ownerPos      = Owner.Position.Extend(mousePosition, ownerDis);
                var position      = target.Position.Extend(ownerPos, ComboMenu.MinDisInOrbwalkItem.Value);

                if (ComboMenu.FullDistanceModeItem && Owner.Distance2D(target) <= ComboMenu.MinDisInOrbwalkItem.Value - 100)
                {
                    MoveTo(position);
                }
                else
                {
                    Orbwalker.OrbwalkTo(target, position, false);
                }
            }
            break;

            case "Free":
            {
                var attackRange = Owner.AttackRange(target);
                if (Owner.Distance2D(target) <= attackRange && !ComboMenu.FullFreeModeItem || target.Distance2D(GameManager.MousePosition) <= attackRange)
                {
                    Orbwalker.OrbwalkTo(target, GameManager.MousePosition, false);
                }
                else
                {
                    MoveToMousePosition();
                }
            }
            break;

            case "Only Attack":
            {
                Orbwalker.AttackTo(target);
            }
            break;

            case "No Move":
            {
                if (Owner.Distance2D(target) < Owner.AttackRange(target))
                {
                    Orbwalker.AttackTo(target);
                }
            }
            break;
            }
        }