private void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args) { if (!Enable) { return; } var mode = new Orbwalking.OrbwalkingMode[] { Orbwalking.OrbwalkingMode.Mixed, Orbwalking.OrbwalkingMode.Combo }; if (IsPickingCard && mode.Contains(Orbwalker.ActiveMode)) { args.Process = false; } else if (HasACard != "none" && !HeroManager.Enemies.Contains(args.Target) && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { args.Process = false; var target = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(Player), TargetSelector.DamageType.Magical); if (target.IsValidTarget() && !target.IsZombie) { Player.IssueOrder(GameObjectOrder.AttackUnit, target); } } else if (HasACard != "none" && HasRed && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { args.Process = false; IDictionary <Obj_AI_Minion, int> creeps = new Dictionary <Obj_AI_Minion, int>(); foreach (var x in ObjectManager.Get <Obj_AI_Minion>().Where(x => x.Team != Player.Team && x.Team != GameObjectTeam.Neutral && Orbwalking.InAutoAttackRange(x))) { creeps.Add(x, ObjectManager.Get <Obj_AI_Minion>().Count(y => y.Team != Player.Team && y.Team != GameObjectTeam.Neutral && y.IsValidTarget() && y.Distance(x.Position) <= 300)); } foreach (var x in ObjectManager.Get <Obj_AI_Minion>().Where(x => x.Team == GameObjectTeam.Neutral && Orbwalking.InAutoAttackRange(x))) { creeps.Add(x, ObjectManager.Get <Obj_AI_Minion>().Count(y => y.Team == GameObjectTeam.Neutral && y.IsValidTarget() && y.Distance(x.Position) <= 300)); } var minion = creeps.OrderByDescending(x => x.Value).FirstOrDefault(); Player.IssueOrder(GameObjectOrder.AttackUnit, minion.Key); } }
private void Orbwalking_BeforeAttack(Orbwalking.BeforeAttackEventArgs args) { if (!Enable) return; var mode = new Orbwalking.OrbwalkingMode[] { Orbwalking.OrbwalkingMode.Mixed, Orbwalking.OrbwalkingMode.Combo }; if (IsPickingCard && mode.Contains(Orbwalker.ActiveMode)) args.Process = false; else if (HasACard != "none" && !HeroManager.Enemies.Contains(args.Target) && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.Mixed) { args.Process = false; var target = TargetSelector.GetTarget(Orbwalking.GetRealAutoAttackRange(Player), TargetSelector.DamageType.Magical); if (target.IsValidTarget() && !target.IsZombie) Player.IssueOrder(GameObjectOrder.AttackUnit, target); } else if (HasACard != "none" && HasRed && Orbwalker.ActiveMode == Orbwalking.OrbwalkingMode.LaneClear) { args.Process = false; IDictionary<Obj_AI_Minion, int> creeps = new Dictionary<Obj_AI_Minion, int>(); foreach (var x in ObjectManager.Get<Obj_AI_Minion>().Where(x => x.Team != Player.Team && x.Team != GameObjectTeam.Neutral && Orbwalking.InAutoAttackRange(x))) { creeps.Add(x, ObjectManager.Get<Obj_AI_Minion>().Count(y => y.Team != Player.Team && y.Team != GameObjectTeam.Neutral && y.IsValidTarget() && y.Distance(x.Position) <= 300)); } foreach (var x in ObjectManager.Get<Obj_AI_Minion>().Where(x => x.Team == GameObjectTeam.Neutral && Orbwalking.InAutoAttackRange(x))) { creeps.Add(x, ObjectManager.Get<Obj_AI_Minion>().Count(y => y.Team == GameObjectTeam.Neutral && y.IsValidTarget() && y.Distance(x.Position) <= 300)); } var minion = creeps.OrderByDescending(x => x.Value).FirstOrDefault(); Player.IssueOrder(GameObjectOrder.AttackUnit, minion.Key); } }