Beispiel #1
0
        public void UnStacker(List <RemoteMine> bombs)
        {
            var closest =
                bombs.Where(
                    x =>
                    !x.Equals(this) && x.Stacker.IsActive &&
                    x.Position.Distance2D(Position) <= 200)
                .OrderBy(y => y.Position.Distance2D(Position))
                .FirstOrDefault();

            if (closest != null)
            {
                closest.Stacker.Counter--;
                StackerMain = null;
            }
            else if (Stacker.IsActive)
            {
                Stacker.Counter--;
                if (Stacker.IsActive)
                {
                    closest =
                        bombs.Where(
                            x =>
                            !x.Equals(this) && !x.Stacker.IsActive &&
                            x.Position.Distance2D(Position) <= 200)
                        .OrderBy(y => y.Position.Distance2D(Position))
                        .FirstOrDefault();
                    if (closest != null)
                    {
                        RefreshStacker(bombs);
                    }
                }
            }
        }
Beispiel #2
0
        public void InitNewStacker(RemoteMine target, List <RemoteMine> bombs)
        {
            var closest =
                bombs.Where(
                    x =>
                    !x.Equals(this) && x.Stacker.IsActive &&
                    x.Position.Distance2D(target.Position) <= 200)
                .OrderBy(y => y.Position.Distance2D(target.Position))
                .FirstOrDefault();

            if (closest != null)
            {
                closest.Stacker.Counter++;
            }
            else
            {
                Stacker.Counter++;
            }
        }
Beispiel #3
0
        public RemoteMine UpdateStacker(IEnumerable <RemoteMine> bombs)
        {
            var closest =
                bombs.Where(
                    x =>
                    !x.Equals(this) && x.Stacker.IsActive &&
                    x.Position.Distance2D(Position) <= 200)
                .OrderBy(y => y.Position.Distance2D(Position))
                .FirstOrDefault();

            if (closest != null)
            {
                closest.Stacker.Counter++;
                StackerMain = closest;
            }
            else
            {
                Stacker.Counter++;
            }

            return(this);
        }