private static void GameEvents_GameStart() { if (ObjectManager.GetLocalPlayer().ChampionName != "Ekko") { return; } var Ekko = new Ekko(); }
/// <summary> /// OnUpdate event. /// </summary> /// <param name="args"> /// The event data /// </param> private static void OnUpdate(EventArgs args) { Ekko.Player.SetSkin( Ekko.Player.BaseSkinName, Ekko.Menu.Item("l33t.ekko.skinchanger.enable").GetValue <bool>() ? Ekko.Menu.Item("l33t.ekko.skinchanger.list").GetValue <StringList>().SelectedIndex : Ekko.Player.BaseSkinId); if (Ekko.Spells[SpellSlot.R].IsReady() && Ekko.Menu.Item("l33t.ekko.combo.rbackenable").GetValue <bool>()) { if (!Ekko.OldHealthPercent.ContainsKey(Ekko.GameTime)) { Ekko.OldHealthPercent.Add(Ekko.GameTime, Ekko.Player.Health); } foreach (var contents in Ekko.OldHealthPercent.ToArray().Where(contents => contents.Key + 4000 < Ekko.GameTime)) { Ekko.OldHealthPercent.Remove(contents.Key); } } if (Ekko.Menu.Item("l33t.ekko.ks.use").GetValue <bool>()) { Mechanics.ProcessKillsteal(); } Orbwalking.AfterAttack += (unit, target) => { if (Ekko.Orbwalker.ActiveMode.Equals(Orbwalking.OrbwalkingMode.LaneClear) && Ekko.GameTime - LastAfterAttackTick > Ekko.Player.AttackDelay * 1000) { var targetBase = target as Obj_AI_Minion; if (unit.IsMe && targetBase != null && Ekko.Spells[SpellSlot.E].IsReady()) { if (!targetBase.BaseSkinName.Contains("minion") && !targetBase.BaseSkinName.Contains("Minion") && !targetBase.BaseSkinName.Contains("ward") && !targetBase.BaseSkinName.Contains("Ward") && !targetBase.BaseSkinName.Contains("trinket") && !targetBase.BaseSkinName.Contains("Trinket")) { if (targetBase.Health > Ekko.Player.GetAutoAttackDamage(targetBase) || (targetBase.GetAutoAttackDamage(Ekko.Player) < Ekko.Player.Health && targetBase.Health < Ekko.Player.GetAutoAttackDamage(targetBase))) { var dashPosition = targetBase.Position; for (var i = 0; i <= Ekko.Spells[SpellSlot.E].Range; ++i) { var range = targetBase.Position.Extend(Ekko.Player.Position, i); if (range.Distance(targetBase.Position) < Ekko.Player.AttackRange) { dashPosition = range; } } if (dashPosition.IsValid()) { Utility.DelayAction.Add( (int)(Ekko.Spells[SpellSlot.E].Delay * 1000) + 500 + Game.Ping / 2, () => { Ekko.Player.IssueOrder(GameObjectOrder.AttackUnit, target); }); Ekko.Spells[SpellSlot.E].Cast(dashPosition); } } } } LastAfterAttackTick = Ekko.GameTime; } }; switch (Ekko.Orbwalker.ActiveMode) { case Orbwalking.OrbwalkingMode.Combo: Mechanics.ProcessSpells(); break; case Orbwalking.OrbwalkingMode.LastHit: case Orbwalking.OrbwalkingMode.LaneClear: Mechanics.ProcessFarm(); break; case Orbwalking.OrbwalkingMode.Mixed: Mechanics.ProcessSpells(true); break; case Orbwalking.OrbwalkingMode.None: if (Ekko.Menu.Item("l33t.ekko.flee.enable").GetValue <bool>() && Ekko.Menu.Item("l33t.ekko.flee.key").GetValue <KeyBind>().Active) { Mechanics.ProcessFlee(); Ekko.MoveTo(Game.CursorPos, Ekko.Player.BoundingRadius); } break; } }