Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
 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);
     }
 }