private static void Execute(Modes args) { switch (args) { case Modes.Combo: { var target = TargetSelector.GetTarget(ArgsE.Range, DamageType.Physical); if (target == null) { return; } if (_canusebotrk && Botrk.IsReady() && Botrk.IsInRange(target) && target.IsValidTarget(Botrk.Range)) { Botrk.Cast(target); _canusebotrk = false; } if (WInCombo && _combo["WMode"].Cast <ComboBox>().CurrentValue == 1 && _aacancelpossible && ArgsW.IsReady() && ArgsW.IsInRange(target) && Player.Instance.Mana > 120) { var wPrediction = ArgsW.GetPrediction(target); if (wPrediction.HitChance >= HitChance.Medium) { ArgsW.Cast(wPrediction.CastPosition); } } else if (WInCombo && _combo["WMode"].Cast <ComboBox>().CurrentValue == 0 && ArgsW.IsReady() && ArgsW.IsInRange(target) && Player.Instance.Mana > 120) { var wPrediction = ArgsW.GetPrediction(target); if (wPrediction.HitChance >= HitChance.Medium) { ArgsW.Cast(wPrediction.CastPosition); } } if (UseeInCombo && ArgsE.IsReady() && ArgsE.IsInRange(target) && CountEStacks(target) >= EInCombo && CanUseEOnEnemy(target.BaseSkinName)) { ArgsE.Cast(); } if (UseRInCombo && CountEnemiesInRange(ArgsR.Range - 150) >= MinEnemiesForR && ArgsR.IsReady()) { ArgsR.Cast(); } break; } case Modes.Flee: { if (ArgsQ.IsReady()) { ArgsQ.Cast(); } break; } case Modes.Harass: { if (HarassW && ArgsW.IsReady()) { var t = EntityManager.Heroes.Enemies.OrderByDescending(a => a.TotalAttackDamage) .FirstOrDefault(a => a.IsValidTarget(ArgsW.Range)); if (t == null) { return; } var wPrediction = ArgsW.GetPrediction(t); if (wPrediction.HitChance >= HitChance.Medium) { ArgsW.Cast(wPrediction.CastPosition); } } break; } case Modes.JungleClear: { if (!ArgsW.IsReady()) { return; } var minionw = EntityManager.MinionsAndMonsters.GetJungleMonsters(Player.Instance.ServerPosition, ArgsW.Range); var wfarm = EntityManager.MinionsAndMonsters.GetCircularFarmLocation(minionw, ArgsW.Width, (int)ArgsW.Range); ArgsW.Cast(wfarm.CastPosition); break; } case Modes.LaneClear: { if (LaneClearW && ArgsW.IsReady() && Player.Instance.ManaPercent >= LaneClearManaPercentW) { var minionw = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, ArgsW.Range); var wfarm = EntityManager.MinionsAndMonsters.GetCircularFarmLocation(minionw, ArgsW.Width, (int)ArgsW.Range); if (wfarm.HitNumber >= 3) { ArgsW.Cast(wfarm.CastPosition); } } if (LaneClearE && ArgsE.IsReady() && Player.Instance.ManaPercent >= LaneClearManaPercentE) { var minione = EntityManager.MinionsAndMonsters.GetLaneMinions(EntityManager.UnitTeam.Enemy, Player.Instance.Position, ArgsE.Range).Where( a => a.IsValidTarget() && a.HasBuff("twitchdeadlyvenom")); var objAiMinions = minione as IList <Obj_AI_Minion> ?? minione.ToList(); if (objAiMinions.Count >= LaneClearEMin && !LaneClearEKillable) { ArgsE.Cast(); break; } if (LaneClearEKillable && objAiMinions.Count(a => a.Health <= CalculateE_DmgOnUnit(a)) >= LaneClearEMin) { ArgsE.Cast(); } } break; } case Modes.LastHit: { break; } default: throw new ArgumentOutOfRangeException(nameof(args), args, null); } }