Example #1
0
        /// <summary>
        /// クライアントメッセージの処理
        /// </summary>
        /// <param name="jsonObj"></param>
        /// <returns></returns>
        public ProtocolData ProcMessage(JObject jsonObj)
        {
            string kind = null;

            try
            {
                kind = jsonObj["Kind"].ToString();
            }
            catch (Exception)
            {
                throw new InvalidOperationException("Kindがありません");
            }

            if (kind == "Tweet")
            {
                string message;
                try
                {
                    message = jsonObj["Message"].ToString();
                }
                catch (Exception)
                {
                    throw new InvalidOperationException("Messageがありません");
                }
                room.Tweet(playerNum, message);
            }
            else if (kind == "Start")
            {
                // 自動的に不足人数を追加してゲーム開始する
                room.DoComplementPlayers(5);
                room.Master.Start();
            }
            else if (kind == "Put")
            {
                var ret = room.Master.PutCards(this, DeckGenerator.FromCardsetString(jsonObj["Cards"].ToString()));
                if (!(ret is CheckOK))
                {
                    return(new WebDaifugo.Neof5Protocols.ProtocolData(ret));
                }
                myTimer.Enabled = false;
            }
            return(null);
        }