Exemplo n.º 1
0
        public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data)
        {
            if (!base.CanExecute(player, data))
            {
                return(false);
            }

            var stables = ((BuildStableAndBakeActionData)data).StableData.ToImmutableArray();
            var bake    = ((BuildStableAndBakeActionData)data).BakeData.ToImmutableArray();

            if ((bake == null || bake.Length == 0) &&
                (stables == null || stables.Length == 0))
            {
                return(false);
            }

            if (bake != null && bake.Length > 0 && !ActionService.CanBake(player, bake))
            {
                return(false);
            }


            if (stables != null &&
                (stables.Length > 1 ||
                 (stables.Length > 0 && !ActionService.CanBuildStables(player, stables, Id))))
            {
                return(false);
            }

            return(true);
        }
        public override bool CanExecute(AgricolaPlayer player, GameActionData data)
        {
            if (!base.CanExecute(player, data))
            {
                return(false);
            }

            var rooms   = ((BuildRoomsAndStablesActionData)data).RoomData.ToImmutableArray();
            var stables = ((BuildRoomsAndStablesActionData)data).StableData.ToImmutableArray();

            if (rooms.Length == 0 && stables.Length == 0 ||
                rooms.Intersect <int>(stables).Count() > 0)
            {
                return(false);
            }

            if (rooms.Length > 0)
            {
                if (!ActionService.CanBuildRooms(player, data.ActionId, rooms))
                {
                    return(false);
                }
            }

            if (stables.Length > 0)
            {
                if (!ActionService.CanBuildStables(player, stables, Id))
                {
                    return(false);
                }
            }

            return(true);
        }
Exemplo n.º 3
0
        public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data)
        {
            var stables = ImmutableArray.Create(((BuildStableActionData)data).StableData);

            if (stables.Length > Count)
            {
                return(false);
            }

            if (stables.Length > 0)
            {
                if (!ActionService.CanBuildStables(player, stables, Id))
                {
                    return(false);
                }
            }

            return(true);
        }