Пример #1
0
        public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
        {
            var activityType = activity.ParseType();

            return(activityType == ActivityType.DoBuys ||
                   activityType == ActivityType.SelectPile);
        }
Пример #2
0
        public void Respond(IGameClient client, ActivityModel activity, GameViewModel state)
        {
            var pile = SelectPile(state, client);

            TalkSmack(pile, client);

            IGameActionMessage message = null;

            if (activity.ParseType() == ActivityType.DoBuys)
            {
                message = new BuyCardMessage(client.PlayerId, pile.Id);
            }
            else if (activity.ParseType() == ActivityType.SelectPile)
            {
                message = new ChooseAPileMessage(client.PlayerId, pile == null ? Guid.Empty : pile.Id);
            }

            client.AcceptMessage(message);
        }
Пример #3
0
        public void Respond(IGameClient client, ActivityModel activity, GameViewModel state)
        {
            var pile = SelectPile(state, client);

            TalkSmack(pile, client);

            IGameActionMessage message = null;

            if (activity.ParseType() == ActivityType.DoBuys)
            {
                message = new BuyCardMessage(client.PlayerId, pile.Id);
            }
            else if (activity.ParseType() == ActivityType.SelectPile)
            {
                message = new ChooseAPileMessage(client.PlayerId, pile == null ? Guid.Empty : pile.Id);
            }

            client.AcceptMessage(message);
        }
Пример #4
0
        protected override void HandleActivity(ActivityModel activity, GameViewModel state)
        {
            if (activity.ParseType() == ActivityType.WaitingForOtherPlayers)
                return;

            var behaviour = Behaviours.FirstOrDefault(b => b.CanRespond(activity, state));

            if(behaviour == null)
                throw new NoBehaviourException(activity);

            behaviour.Respond(_client, activity, state);
        }
Пример #5
0
        protected override void HandleActivity(ActivityModel activity, GameViewModel state)
        {
            if (activity.ParseType() == ActivityType.WaitingForOtherPlayers)
            {
                return;
            }

            var behaviour = Behaviours.FirstOrDefault(b => b.CanRespond(activity, state));

            if (behaviour == null)
            {
                throw new NoBehaviourException(activity);
            }

            behaviour.Respond(_client, activity, state);
        }
Пример #6
0
 public bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(activity.ParseType() == ActivityType.SelectFromRevealed);
 }
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return activity.ParseType() == ActivityType.MakeChoice;
 }
 public bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return activity.ParseType() == ActivityType.SelectFromRevealed;
 }
Пример #9
0
 public override bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(base.CanRespond(activity, state) &&
            (GetValidBuys(state).Any(pile => AISupportedActions.All.Contains(pile.Name)) ||
             (activity.ParseType() == ActivityType.SelectPile && (bool)activity.Properties["IsOptional"])));
 }
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return activity.ParseType() == ActivityType.SelectFixedNumberOfCards;
 }
Пример #11
0
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(activity.ParseType() == ActivityType.SelectUpToNumberOfCards &&
            activity.ParseHint() == ActivityHint.TrashCards);
 }
Пример #12
0
 public bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return activity.ParseType() == ActivityType.PlayActions;
 }
Пример #13
0
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(activity.ParseType() == ActivityType.SelectFixedNumberOfCards);
 }
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return activity.ParseType() == ActivityType.SelectUpToNumberOfCards
            && activity.ParseHint() == ActivityHint.TrashCards;
 }
Пример #15
0
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(activity.ParseType() == ActivityType.MakeChoice);
 }
Пример #16
0
 public override bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return base.CanRespond(activity, state)
            && (GetValidBuys(state).Any(pile => AISupportedActions.All.Contains(pile.Name))
                     || (activity.ParseType() == ActivityType.SelectPile && (bool)activity.Properties["IsOptional"]));
 }
Пример #17
0
 public bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(activity.ParseType() == ActivityType.PlayActions);
 }
Пример #18
0
 public virtual bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     var activityType = activity.ParseType();
     return activityType == ActivityType.DoBuys 
         || activityType == ActivityType.SelectPile;
 }
Пример #19
0
 public bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return(activity.ParseType() == ActivityType.PlayActions &&
            state.Hand.Select(c => c.Name).Intersect(AISupportedActions.All).Any());
 }
 public bool CanRespond(ActivityModel activity, GameViewModel state)
 {
     return activity.ParseType() == ActivityType.PlayActions &&
            state.Hand.Select(c => c.Name).Intersect(AISupportedActions.All).Any();
 }