internal static void R2Logic(Obj_AI_Hero target)
        {
            if (target == null || R.Instance.Name == "RivenFengShuiEngine")
            {
                return;
            }

            if (target.Check(850))
            {
                switch (Menu.GetList("R2Mode"))
                {
                case 0:
                    if (DamageCalculate.GetRDamage(target) > target.Health && target.DistanceToPlayer() < 600)
                    {
                        var pred = R.GetPrediction(target, true);

                        if (pred.Hitchance >= HitChance.VeryHigh)
                        {
                            R.Cast(pred.CastPosition, true);
                        }
                    }
                    break;

                case 1:
                    if (target.HealthPercent < 20 ||
                        (target.Health > DamageCalculate.GetRDamage(target) + Me.GetAutoAttackDamage(target) * 2 &&
                         target.HealthPercent < 40) ||
                        (target.Health <= DamageCalculate.GetRDamage(target)) ||
                        (target.Health <= DamageCalculate.GetComboDamage(target) * 1.3))
                    {
                        var pred = R.GetPrediction(target, true);

                        if (pred.Hitchance >= HitChance.VeryHigh)
                        {
                            R.Cast(pred.CastPosition, true);
                        }
                    }
                    break;

                case 2:
                    if (target.DistanceToPlayer() < 600)
                    {
                        var pred = R.GetPrediction(target, true);

                        if (pred.Hitchance >= HitChance.VeryHigh)
                        {
                            R.Cast(pred.CastPosition, true);
                        }
                    }
                    break;
                }
            }
        }
Beispiel #2
0
        private void RLogic()
        {
            Obj_AI_Hero target = null;

            if (TargetSelector.GetSelectedTarget() != null &&
                TargetSelector.GetSelectedTarget().DistanceToPlayer() <= Menu.GetSlider("rMenuMax"))
            {
                target = TargetSelector.GetSelectedTarget();
            }
            else
            {
                target = TargetSelector.GetTarget(R.Range, TargetSelector.DamageType.Physical);
            }

            if (R.IsReady() && target.Check(R.Range))
            {
                switch (R.Instance.Name)
                {
                case "JhinR":
                    if (Menu.GetKey("rMenuSemi"))
                    {
                        if (R.Cast(R.GetPrediction(target).UnitPosition))
                        {
                            rShotTarget = target;
                            return;
                        }
                    }

                    if (!Menu.GetBool("rMenuAuto"))
                    {
                        return;
                    }

                    if (Menu.GetBool("rMenuCheck") && Me.CountEnemiesInRange(800f) > 0)
                    {
                        return;
                    }

                    if (target.DistanceToPlayer() <= Menu.GetSlider("rMenuMin"))
                    {
                        return;
                    }

                    if (target.DistanceToPlayer() > Menu.GetSlider("rMenuMax"))
                    {
                        return;
                    }

                    if (target.Health >
                        Me.GetSpellDamage(target, SpellSlot.R) * Menu.GetSlider("rMenuKill"))
                    {
                        return;
                    }

                    if (IsSpellHeroCollision(target, R))
                    {
                        return;
                    }

                    if (R.Cast(R.GetPrediction(target).UnitPosition))
                    {
                        rShotTarget = target;
                    }
                    break;

                case "JhinRShot":
                    var selectTarget = TargetSelector.GetSelectedTarget();

                    if (selectTarget != null && selectTarget.IsValidTarget(R.Range) && InRCone(selectTarget))
                    {
                        if (Menu.GetKey("rMenuSemi"))
                        {
                            AutoUse(rShotTarget);
                            SpellManager.PredCast(R, rShotTarget);
                            return;
                        }

                        if (Menu.GetBool("ComboR") && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                        {
                            AutoUse(rShotTarget);
                            SpellManager.PredCast(R, rShotTarget);
                            return;
                        }

                        if (!Menu.GetBool("rMenuAuto"))
                        {
                            return;
                        }

                        AutoUse(rShotTarget);
                        SpellManager.PredCast(R, rShotTarget);
                        return;
                    }

                    foreach (
                        var t in
                        HeroManager.Enemies.Where(x => x.IsValidTarget(R.Range) && InRCone(x))
                        .OrderBy(x => x.Health))
                    {
                        if (Menu.GetKey("rMenuSemi"))
                        {
                            AutoUse(t);
                            SpellManager.PredCast(R, t);
                            return;
                        }

                        if (Menu.GetBool("ComboR") && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Combo)
                        {
                            AutoUse(t);
                            SpellManager.PredCast(R, t);
                            return;
                        }

                        if (!Menu.GetBool("rMenuAuto"))
                        {
                            return;
                        }

                        AutoUse(t);
                        SpellManager.PredCast(R, t);
                        return;
                    }
                    break;
                }
            }
        }