internal static bool R2Logic(AIHeroClient target) { if (!target.IsValidTarget() || R.Instance.Name == "RivenFengShuiEngine" || MenuInit.ComboR2 == 3) { return(false); } switch (MenuInit.ComboR2) { case 0: 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) { return(R.Cast(pred.CastPosition, true)); } } break; case 1: if (DamageCalculate.GetRDamage(target) > target.Health && target.DistanceToPlayer() < 600) { var pred = R.GetPrediction(target, true); if (pred.Hitchance >= HitChance.VeryHigh) { return(R.Cast(pred.CastPosition, true)); } } break; case 2: if (target.DistanceToPlayer() < 600) { var pred = R.GetPrediction(target, true); if (pred.Hitchance >= HitChance.VeryHigh) { return(R.Cast(pred.CastPosition, true)); } } break; } return(false); }
private static void Combo() { var target = myTarget.IsValidTarget() ? myTarget : TargetSelector.GetTarget(800f, TargetSelector.DamageType.Physical); if (target != null && target.IsValidTarget(800f)) { if (MenuInit.ComboDot && IgniteSlot != SpellSlot.Unknown && Ignite.IsReady() && target.IsValidTarget(Ignite.Range) && (target.Health < DamageCalculate.GetComboDamage(target) || target.Health < DamageCalculate.GetIgniteDmage(target)) && Ignite.Cast(target, true) == Spell.CastStates.SuccessfullyCasted) { return; } if (MenuInit.ComboYoumuu && Items.HasItem(3142) && Items.CanUseItem(3142) && target.IsValidTarget(580) && Items.UseItem(3142)) { return; } if (MenuInit.ComboR && R.IsReady() && !isRActive && target.Health <= DamageCalculate.GetComboDamage(target) && target.IsValidTarget(600f) && Riven.R1Logic(target)) { return; } if (MenuInit.ComboR2 != 3 && R.IsReady() && isRActive && Riven.R2Logic(target)) { return; } if (MenuInit.ComboQGap && Q.IsReady() && Utils.TickCount - lastQTime > 3600 && !Me.IsDashing() && target.IsValidTarget(480) && target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me)) { var pred = Prediction.GetPrediction(target, Q.Delay); if (pred.UnitPosition != Vector3.Zero && (pred.UnitPosition.DistanceToPlayer() < target.DistanceToPlayer() || pred.UnitPosition.Distance(target.Position) <= target.DistanceToPlayer()) && Riven.CastQ(target)) { return; } } if (MenuInit.ComboEGap && E.IsReady() && target.IsValidTarget(600) && target.DistanceToPlayer() > Orbwalking.GetRealAutoAttackRange(Me) + 50) { E.Cast(target.Position, true); } if (MenuInit.ComboWLogic && W.IsReady() && target.IsValidTarget(W.Range)) { if (!Q.IsReady() && qStack == 0 && W.Cast(true)) { return; } if (!target.IsFacing(Me) && W.Cast(true)) { return; } if (Q.IsReady() && qStack > 0 && W.Cast(true)) { return; } if (Me.HasBuff("RivenFeint")) { W.Cast(true); } } } }