示例#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);
        }
示例#2
0
        /// <summary>
        /// Checks if a player can bake.
        /// </summary>
        /// <param name="player"></param>
        /// <param name="data"></param>
        /// <returns></returns>
        public override bool CanExecute(AgricolaPlayer player, GameActionData data)
        {
            var bakeData = ImmutableArray.Create(((BakeActionData)data).BakeData);

            if (bakeData == null || bakeData.Length == 0)
            {
                return(true);
            }

            return(ActionService.CanBake(player, bakeData));
        }