示例#1
0
        public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data)
        {
            if (!base.CanExecute(player, data))
            {
                return(false);
            }

            var occupationData = (OccupationActionData)data;

            if (occupationData.FamilyGrowth)
            {
                if (((AgricolaGame)player.Game).CurrentRound < 5)
                {
                    return(false);
                }
            }
            else
            {
                if (!occupationData.Id.HasValue)
                {
                    return(false);
                }

                if (!ActionService.CanPlayOccupation(player, data.ActionId, occupationData.Id.Value))
                {
                    return(false);
                }
            }

            return(true);
        }
示例#2
0
        public override bool CanExecute(AgricolaPlayer player, Data.GameActionData data)
        {
            var occupationData = (OccupationActionData)data;

            if (!occupationData.Id.HasValue)
            {
                return(true);
            }

            if (!ActionService.CanPlayOccupation(player, data.ActionId, occupationData.Id.Value))
            {
                return(false);
            }


            return(true);
        }