public Rectangle(Vector2 start, Vector2 end, float width) { RStart = start; REnd = end; Width = width; Direction = (end - start).Normalized(); Perpendicular = Direction.Perpendicular(); }
public void OnSpellHitDetected(Vector2 direction, Obj_AI_Base target) { EvadeData edata; Vector2 evade_direction = direction.Perpendicular(); Vector2 evade_pos = ObjectManager.Player.ServerPosition.To2D() + evade_direction * EvadeSpell.Range; bool position_needed = SpecialMethod.HasFlag(EvadeMethods.Dash) || SpecialMethod.HasFlag(EvadeMethods.Blink); if (position_needed) { switch (evade.Item("EVADEMETHOD").GetValue<StringList>().SelectedIndex) { case 0: //near turret CorrectNearTurret(ref evade_pos, evade_direction); break; case 1: //less enemies CorrectLessEnemies(ref evade_pos, evade_direction); break; case 2: //both if (!CorrectLessEnemies(ref evade_pos, evade_direction)) CorrectNearTurret(ref evade_pos, evade_direction); break; } } edata = new EvadeData (evade_pos, ObjectManager.Player.CharData.BaseSkinName == "Morgana" || ObjectManager.Player.CharData.BaseSkinName == "Lissandra", ObjectManager.Player.CharData.BaseSkinName == "Sivir" || ObjectManager.Player.CharData.BaseSkinName == "Nocturne" || ObjectManager.Player.CharData.BaseSkinName == "Vladimir", target); m_evade_queue.Enqueue(edata); }
public void OnSpellHitDetected(Vector2 direction, Obj_AI_Base target) { EvadeData edata; Vector2 evade_direction = direction.Perpendicular(); Vector2 evade_pos = ObjectManager.Player.ServerPosition.To2D() + direction.Perpendicular() * EvadeSpell.Range; bool position_needed = !(SpecialMethod.HasFlag(EvadeMethods.MorganaE) || SpecialMethod.HasFlag(EvadeMethods.LissandraR) || SpecialMethod.HasFlag(EvadeMethods.KayleR) || SpecialMethod.HasFlag(EvadeMethods.SivirE) || SpecialMethod.HasFlag(EvadeMethods.NocturneW) || SpecialMethod.HasFlag(EvadeMethods.VladimirW)); if (position_needed) { switch (evade.Item("EVADEMETHOD").GetValue<StringList>().SelectedIndex) { case 0: //near turret CorrectNearTurret(ref evade_pos, evade_direction.Perpendicular()); break; case 1: //less enemies CorrectLessEnemies(ref evade_pos, evade_direction.Perpendicular()); break; case 2: //both if (!CorrectLessEnemies(ref evade_pos, evade_direction.Perpendicular())) CorrectNearTurret(ref evade_pos, evade_direction.Perpendicular()); break; } } edata = new EvadeData (evade_pos, SpecialMethod.HasFlag(EvadeMethods.MorganaE) || SpecialMethod.HasFlag(EvadeMethods.LissandraR) || SpecialMethod.HasFlag(EvadeMethods.KayleR), SpecialMethod.HasFlag(EvadeMethods.SivirE) || SpecialMethod.HasFlag(EvadeMethods.NocturneW) || SpecialMethod.HasFlag(EvadeMethods.VladimirW), target); m_evade_queue.Enqueue(edata); }
public Line(Vector2 start, Vector2 direction) { Start = start; Normal = direction.Normal; _perpendicular = direction.Perpendicular(); }