public ActionResult Create(ServerJoin sj)
 {
     Validate(sj);     // adds the ModelStateErrors
     if (!ModelState.IsValid)
     {
         return(View(sj));
     }
        public void HandleMessage(Packet msg)
        {
            switch (msg.Type)
            {
            case PacketType.Voice:
                Server.SendMessageToAll(msg);
                break;

            case PacketType.DeclareWinner:
                Server.DeclareWinner(((DeclareWinner)msg).Id);
                Server.StartMatch(true);
                break;

            case PacketType.EndTurn:
            {
                EndTurn endTurn = (EndTurn)msg;
                SelectedCards.Clear();
                foreach (CardInfo info in endTurn.Cards)
                {
                    SelectedCards.Add(info.Value);
                }

                CardCount -= endTurn.Cards.Count;
                Ready      = true;

                Server.SendMessageToAllExcept(new SetStatus(Id, false), Id);
                break;
            }

            case PacketType.LobbyBeginGame:
                Server.SendMessageToAll(new BeginGame());
                Server.State = Server.States.InGame;
                Server.StartMatch(false);

                Server.Greet();
                break;

            case PacketType.ServerJoin:
            {
                ServerJoin serverJoin = (ServerJoin)msg;

                // Check version
                if (serverJoin.Version != Program.Version)
                {
                    Connection.Disconnect("Host is running on a different version.");
                    return;
                }

                Name = serverJoin.Name;

                Server.SendMessageToAllExcept(new PlayerNew(Name, Id), Id);
                foreach (ServerClient c in Server.Clients.Where(a => a.Id != Id))
                {
                    Connection.SendMessage(new PlayerNew(c.Name, c.Id));
                }

                Verified = true;

                Server.SendMessageToAllExcept(new ChatMessage(String.Format("{0} has joined the game!", Name)), Id);
                break;
            }

            case PacketType.ChatMessage:
            {
                ChatMessage chatMessage = (ChatMessage)msg;
                Server.SendMessageToAllExcept(new ChatMessage(chatMessage.Value), Id);
                break;
            }

            default:
                Console.WriteLine("Unhandled packet {0}", msg.Type.ToString());
                break;
            }
        }
示例#3
0
 private void InvokeServerJoinEvent()
 {
     ServerJoin?.Invoke(this, EventArgs.Empty);
 }