示例#1
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);
        }
示例#2
0
        public void AcceptMessage(IGameActionMessage message)
        {
            _lock.EnterWriteLock();
            try
            {
                message.Validate(_game);
                message.UpdateGameState(_game);
                _game.IncrementVersion();

                AutomaticallyReact();
                AutomaticallyProgress();
            }
            finally
            {
                _lock.ExitWriteLock();
            }

            NotifyClients();
        }
        public void AcceptMessage(IGameActionMessage message)
        {
            _lock.EnterWriteLock();
            try
            {
                message.Validate(_game);
                message.UpdateGameState(_game);
                _game.IncrementVersion();

                AutomaticallyReact();
                AutomaticallyProgress();
                
            }
            finally
            {
                _lock.ExitWriteLock();
            }

            NotifyClients();
        }
示例#4
0
 public void AcceptMessage(IGameActionMessage message)
 {
     _host.AcceptMessage(message);
 }
示例#5
0
 public void AcceptMessage(IGameActionMessage message)
 {
     _host.AcceptMessage(message);
 }