Esempio n. 1
0
        private static void MinionAAInfoMethod()
        {
            if (PossibleMinion != null)
            {
                NearMeleeCreeps =
                    ObjectManager.GetEntities <Creep>()
                    .Where(
                        creep =>
                        creep.IsAlive && creep.IsMelee && creep.IsValid &&
                        creep.Distance2D(PossibleMinion) <= creep.GetAttackRange() &&
                        creep.Team == PossibleMinion.GetEnemyTeam())
                    .ToList();

                NearRangedCreeps =
                    ObjectManager.GetEntities <Creep>()
                    .Where(
                        creep =>
                        creep.IsAlive && !creep.IsMelee && creep.IsValid &&
                        creep.Distance2D(PossibleMinion) <= (creep.AttackRange + creep.HullRadius / 2) &&
                        creep.Team == PossibleMinion.GetEnemyTeam())
                    .ToList();

                if (NearMeleeCreeps.Any())
                {
                    foreach (Creep creep in NearMeleeCreeps)
                    {
                        if (StartedAttack(creep))
                        {
                            minionAttackPointList.Add(creep.Handle);

                            var creepAttackPoint     = MinionAAData.GetAttackPoint(creep) * 1000;
                            var creepAttackBackswing = MinionAAData.GetAttackBackswing(creep) * 1000;

                            DelayAction.Add(creepAttackPoint, () =>
                            {
                                minionAttackPointList.Remove(creep.Handle);
                                minionAttackBackswingList.Add(creep.Handle);
                            });

                            DelayAction.Add(creepAttackPoint + creepAttackBackswing, () =>
                            {
                                minionAttackBackswingList.Remove(creep.Handle);
                            });
                        }
                    }
                }

                if (NearRangedCreeps.Any())
                {
                    foreach (Creep creep in NearRangedCreeps)
                    {
                        if (StartedAttack(creep))
                        {
                            minionAttackPointList.Add(creep.Handle);

                            var creepAttackPoint     = MinionAAData.GetAttackPoint(creep) * 1000;
                            var creepAttackBackswing = MinionAAData.GetAttackBackswing(creep) * 1000;

                            DelayAction.Add(creepAttackPoint, () =>
                            {
                                minionAttackPointList.Remove(creep.Handle);
                                minionAttackBackswingList.Add(creep.Handle);
                            });

                            DelayAction.Add(creepAttackPoint + creepAttackBackswing, () =>
                            {
                                minionAttackBackswingList.Remove(creep.Handle);
                            });
                        }
                    }
                }
            }
        }