示例#1
0
        public void farmE()
        {
            if (Farm && !DeathWalker.canAttack())
            {
                var mobs = MinionManager.GetMinions(player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Neutral, MinionOrderTypes.MaxHealth);
                if (mobs.Count > 0)
                {
                    var mob = mobs[0];
                    E.Cast(mob, true);
                    return;
                }

                var minions = MinionManager.GetMinions(player.ServerPosition, E.Range, MinionTypes.All, MinionTeam.Enemy, MinionOrderTypes.MaxHealth);
                foreach (var minion in minions.Where(minion => minion.Health > player.GetAutoAttackDamage(minion) && FarmId != minion.NetworkId))
                {
                    var eDmg = E.GetDamage(minion);
                    if (minion.HasBuff("chilled"))
                    {
                        eDmg = 2 * eDmg;
                    }

                    if (minion.Health < eDmg * 0.9)
                    {
                        E.Cast(minion);
                    }
                }
            }
        }
示例#2
0
        public static void useQSmart(Obj_AI_Base target)
        {
            try
            {
                if (!Q.IsReady() || target.Path.Count() == 0 || !target.IsMoving)
                {
                    return;
                }
                Vector2 nextEnemPath = target.Path[0].To2D();
                var     dist         = player.Position.To2D().Distance(target.Position.To2D());
                var     distToNext   = nextEnemPath.Distance(player.Position.To2D());
                if (distToNext <= dist)
                {
                    return;
                }
                var msDif = player.MoveSpeed - target.MoveSpeed;
                if (msDif <= 0 && !DeathWalker.inAutoAttackRange(target) && DeathWalker.canAttack())
                {
                    Q.Cast(target);
                }

                var reachIn = dist / msDif;
                if (reachIn > 4)
                {
                    Q.Cast(target);
                }
            }
            catch (Exception)
            {
                throw;
            }
        }
示例#3
0
文件: Azir.cs 项目: wade1990/PortAIO
 public void doAttack()
 {
     List<AIHeroClient> enes = getEnemiesInSolRange();
     if (enes != null)
     {
         foreach (var ene in enes)
         {
             if (DeathWalker.canMove() && DeathWalker.canAttack() && solisAreStill())
             {
                 //DeathWalker. = DeathWalker.now;
                 EloBuddy.Player.IssueOrder(GameObjectOrder.AttackUnit, ene);
             }
         }
     }
 }
示例#4
0
        private static void onDamage(AttackableUnit sender, AttackableUnitDamageEventArgs args)
        {
            return;

            try
            {
                if (args.SourceNetworkId == MasterYi.player.NetworkId)
                {
                    Console.WriteLine("type: " + args.Type + " : " + args.HitType);
                }
                if (args.SourceNetworkId != MasterYi.player.NetworkId || !MasterYi.W.IsReady() || DeathWalker.canAttack() || !isYiAA(args.Type))
                {
                    return;
                }


                GameObject targ = ObjectManager.GetUnitByNetworkId <GameObject>(args.TargetNetworkId);

                if (targ == null)
                {
                    return;
                }
                // Console.WriteLine("dmg: " + args.Damage + " type " + args.Type + " dmg type: " + args.HitType + " pred dmg: "+ MasterYi.player.GetAutoAttackDamage(targ));

                // if (args.Type == DamageType.Physical)
                // {
                if (targ is Obj_AI_Hero)
                {
                    if (Config.Item("comboWreset").GetValue <bool>())
                    {
                        MasterYi.W.Cast();
                    }
                    DeathWalker.resetAutoAttackTimer();
                }
                // }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }