Exemple #1
0
        public static void Drop(Beaver dropper, IEnumerable <Tile> targets, string resource)
        {
            if (!dropper.CanAct() || dropper.GetCount(resource) == 0)
            {
                return;
            }

            var target = targets.FirstOrDefault(t => t == dropper.Tile || dropper.Tile._HasNeighbor(t));

            if (target != null)
            {
                dropper.Drop(target, resource, dropper.GetCount(resource));
            }
        }
Exemple #2
0
        public static void MoveAndDrop(Beaver dropper, IEnumerable <Tile> targets, string resource)
        {
            if (!dropper.CanAct() || dropper.GetCount(resource) == 0)
            {
                return;
            }

            if (dropper.CanMove())
            {
                var movePoints = targets.Concat(targets.SelectMany(t => t.GetNeighbors()))
                                 .Select(n => n.ToPoint());
                Move(dropper, movePoints);
            }

            Drop(dropper, targets, resource);
        }