public void Teleport() { var bs = Area.GetOverlappingBodies(); var a = new Node2D[bs.Count]; bs.CopyTo(a, 0); a = a.Where(b => b is Knight).ToArray(); if (a.Any()) { var p = new List <Vector2> { Start, Start + new Vector2(20, 0), Start + new Vector2(-20, 0) }; p.RemoveAll(t => t.DistanceTo(GlobalPosition) < 2); var r = new Random(); GlobalPosition = p[r.Next(0, 2)]; Sprite.FlipH = a.First().GlobalPosition < GlobalPosition; } else { Sprite.FlipH = true; GlobalPosition = Start; } }