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; } }