예제 #1
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
        private void JhinOnUpdate(EventArgs args)
        {
            #region Orbwalker & Modes

            switch (Initializer.Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                OnCombo();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                OnClear();
                OnJungle();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                OnHarass();
                break;

            case Orbwalking.OrbwalkingMode.None:
                OnKillSteal();
                break;
            }

            #endregion

            if (ObjectManager.Player.IsActive(R))
            {
                Initializer.Orbwalker.SetAttack(false);
                Initializer.Orbwalker.SetMovement(false);
            }
            else
            {
                Initializer.Orbwalker.SetAttack(true);
                Initializer.Orbwalker.SetMovement(true);
            }

            if (Initializer.Config.Item("semi.manual.ult", true).GetValue <KeyBind>().Active&&
                R.IsReady() && Utilities.Enabled("r.combo") && !Utilities.Enabled("auto.shoot.bullets"))
            {
                foreach (var target in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) &&
                                                                 Utilities.Enabled("r.combo." + x.ChampionName)))
                {
                    R.Do(target, Utilities.HikiChance("hitchance"));
                }
            }

            if (ObjectManager.Player.IsActive(R) && Utilities.Enabled("auto.shoot.bullets") && R.IsReady())
            {
                foreach (var target in HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) &&
                                                                 Utilities.Enabled("r.combo." + x.ChampionName)))
                {
                    R.Do(target, Utilities.HikiChance("hitchance"));
                }
            }
        }
예제 #2
0
 private static void Combo()
 {
     if (Q.IsReady() && Utilities.Enabled("qCombo"))
     {
         KalistaLogics.PierceCombo();
     }
     if (E.IsReady() && Utilities.Enabled("eCombo"))
     {
         KalistaLogics.RendCombo();
     }
 }
예제 #3
0
        private static void Clear()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("manaClear"))
            {
                return;
            }


            if (E.IsReady() && Utilities.Enabled("eClear"))
            {
                KalistaLogics.RendClear(Utilities.Slider("eClearCount"));
            }
        }
예제 #4
0
 private static void Harass()
 {
     if (ObjectManager.Player.ManaPercent < Utilities.Slider("manaHarass"))
     {
         return;
     }
     if (Q.IsReady() && Utilities.Enabled("qHarass"))
     {
         KalistaLogics.PierceCombo();
     }
     if (E.IsReady() && Utilities.Enabled("eHarass"))
     {
         KalistaLogics.RendHarass(Utilities.Slider("eSpearCount"));
     }
 }
예제 #5
0
        private static void Jungle()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("manaJungle"))
            {
                return;
            }

            if (Q.IsReady() && Utilities.Enabled("qJungle"))
            {
                KalistaLogics.PierceJungleClear(Q);
            }
            if (E.IsReady() && Utilities.Enabled("eJungle"))
            {
                KalistaLogics.RendJungleClear();
            }
        }
예제 #6
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
 private void OnKillSteal()
 {
     if (Q.IsReady() && Utilities.Enabled("q.ks"))
     {
         var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
         if (target != null && target.IsValidTarget(Q.Range) && target.Health < Q.GetDamage(target))
         {
             Q.CastOnUnit(target);
         }
     }
     if (W.IsReady() && Utilities.Enabled("w.ks"))
     {
         var target = TargetSelector.GetTarget(W.Range, TargetSelector.DamageType.Physical);
         if (target != null && target.IsValidTarget(W.Range) && target.Health < W.GetDamage(target))
         {
             W.Do(target, Utilities.HikiChance("hitchance"));
         }
     }
 }
예제 #7
0
        private void KalistaOnUpdate(EventArgs args)
        {
            switch (Initializer.Orbwalker.ActiveMode)
            {
            case Orbwalking.OrbwalkingMode.Combo:
                Combo();
                break;

            case Orbwalking.OrbwalkingMode.Mixed:
                Harass();
                break;

            case Orbwalking.OrbwalkingMode.LaneClear:
                Clear();
                Jungle();
                break;
            }
            if (Utilities.Enabled("use.balista"))
            {
                KalistaLogics.Balista(Utilities.Slider("balista.minrange"), Utilities.Slider("balista.maxrange"), R);
            }
            if (Utilities.Enabled("use.skalista"))
            {
                KalistaLogics.SKalista(Utilities.Slider("skalista.minrange"), Utilities.Slider("skalista.maxrange"), R);
            }
            if (Utilities.Enabled("qKS"))
            {
                KalistaLogics.KillStealWithPierce();
            }
            if (Utilities.Enabled("eKS"))
            {
                KalistaLogics.KillStealWithRend();
            }
            if (Utilities.Enabled("qImmobile"))
            {
                KalistaLogics.ImmobilePierce();
            }
            if (Utilities.Enabled("saveSupport"))
            {
                KalistaLogics.SupportProtector(R);
            }
        }
예제 #8
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
        private void OnCombo()
        {
            if (Q.IsReady() && Utilities.Enabled("q.combo"))
            {
                foreach (var enemy in HeroManager.Enemies.Where(x => x.IsValidTarget(Q.Range)))
                {
                    Q.CastOnUnit(enemy);
                }
            }
            if (W.IsReady() && Utilities.Enabled("w.combo"))
            {
                if (Utilities.Enabled("w.passive.combo"))
                {
                    var target = TargetSelector.GetTarget(Utilities.Slider("w.combo.max.distance"), TargetSelector.DamageType.Physical);
                    if (target != null && target.IsValidTarget(Utilities.Slider("w.combo.max.distance")) &&
                        target.HasBuff("jhinespotteddebuff") && target.Distance(ObjectManager.Player.Position) > Utilities.Slider("w.combo.min.distance"))
                    {
                        W.Do(target, Utilities.HikiChance("hitchance"));
                    }
                }
                else
                {
                    var target = TargetSelector.GetTarget(Utilities.Slider("w.combo.max.distance"), TargetSelector.DamageType.Physical);
                    if (target != null && target.IsValidTarget(Utilities.Slider("w.combo.max.distance")) &&
                        target.Distance(ObjectManager.Player.Position) > Utilities.Slider("w.combo.min.distance"))
                    {
                        W.Do(target, Utilities.HikiChance("hitchance"));
                    }
                }
            }

            if (E.IsReady() && Utilities.Enabled("e.combo"))
            {
                var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
                if (target != null && target.IsValidTarget(E.Range) && Utilities.IsImmobile(target))
                {
                    E.Do(target, Utilities.HikiChance("hitchance"));
                }
            }
        }
예제 #9
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
        private void OnJungle()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("jungle.mana"))
            {
                return;
            }
            var mobs = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Jhin.Q.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);

            if (mobs == null || (mobs.Count == 0))
            {
                return;
            }

            if (Q.IsReady() && Utilities.Enabled("q.jungle"))
            {
                Q.Cast(mobs[0]);
            }

            if (W.IsReady() && Utilities.Enabled("w.jungle"))
            {
                W.Cast(mobs[0]);
            }
        }
예제 #10
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
 private void OnHarass()
 {
     if (ObjectManager.Player.ManaPercent < Utilities.Slider("harass.mana"))
     {
         return;
     }
     if (Q.IsReady() && Utilities.Enabled("q.harass"))
     {
         var target = TargetSelector.GetTarget(Q.Range, TargetSelector.DamageType.Physical);
         if (target != null && target.IsValidTarget(Q.Range))
         {
             Q.CastOnUnit(target);
         }
     }
     if (W.IsReady() && Utilities.Enabled("w.harass"))
     {
         var target = TargetSelector.GetTarget(E.Range, TargetSelector.DamageType.Physical);
         if (target != null && target.IsValidTarget(W.Range))
         {
             W.Do(target, Utilities.HikiChance("hitchance"));
         }
     }
 }
예제 #11
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
        private void ObjAiHeroOnOnNewPath(Obj_AI_Base sender, GameObjectNewPathEventArgs args)
        {
            if (sender.IsEnemy && sender is AIHeroClient && args.IsDash && Utilities.Enabled("e.to.dash.end") &&
                sender.IsValidTarget(E.Range) && E.IsReady())
            {
                var starttick = Utils.TickCount;
                var speed     = args.Speed;
                var startpos  = sender.ServerPosition.To2D();
                var forch     = args.Path.OrderBy(x => starttick + (int)(1000 * (new Vector3(x.X, x.Y, x.Z).
                                                                                 Distance(startpos.To3D()) / speed))).FirstOrDefault();
                {
                    var endpos  = new Vector3(forch.X, forch.Y, forch.Z);
                    var endtick = starttick + (int)(1000 * (endpos.Distance(startpos.To3D())
                                                            / speed));
                    var duration = endtick - starttick;

                    if (duration < starttick)
                    {
                        E.Cast(endpos);
                    }
                }
            }
        }
예제 #12
0
파일: Jhin.cs 프로젝트: waldow90/PortAIO
        private void OnClear()
        {
            if (ObjectManager.Player.ManaPercent < Utilities.Slider("clear.mana"))
            {
                return;
            }
            if (Q.IsReady() && Utilities.Enabled("q.clear"))
            {
                var min = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, Q.Range).MinOrDefault(x => x.Health);
                if (min != null)
                {
                    Q.CastOnUnit(min);
                }
            }

            if (W.IsReady() && Utilities.Enabled("w.clear"))
            {
                var min = MinionManager.GetMinions(ObjectManager.Player.ServerPosition, W.Range);
                if (min != null && W.GetLineFarmLocation(min).MinionsHit >= Utilities.Slider("w.hit.x.minion"))
                {
                    W.Cast(W.GetLineFarmLocation(min).Position);
                }
            }
        }