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); }
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) { _host.AcceptMessage(message); }