예제 #1
0
        private WarriorState ConvertResponseToWarriorState(string value)
        {
            var warriorState = new WarriorState();

            string[] words = value.Split(',');
            words[0] = Regex.Match(words[0], @"\d+").Value;
            int life = Int32.Parse(Regex.Match(words[1], @"-?\d+").Value);

            warriorState.State = ConvertIntToState(Int32.Parse(words[0]));
            warriorState.Life  = life;
            return(warriorState);
        }
예제 #2
0
        public void GetMyInfo()
        {
            string responseString = "";

            while (myInfo.Life > 0)
            {
                try
                {
                    var request = (HttpWebRequest)WebRequest.Create(ConfigSettings.ReadSetting(ServerUrl) + "MyInfo");
                    request.Timeout = 100000;

                    var data = Encoding.ASCII.GetBytes("=" + ConfigSettings.ReadSetting(WarriorName));

                    request.Method        = "POST";
                    request.ContentType   = "application/x-www-form-urlencoded";
                    request.ContentLength = data.Length;

                    using (var stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }

                    var response = (HttpWebResponse)request.GetResponse();

                    // ReSharper disable once AssignNullToNotNullAttribute
                    responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                }
                catch (Exception e)
                {
                    //_logger.Error(e);
                    _logger.Info("Lost connection with server");
                }

                myInfo = ConvertResponseToWarriorState(responseString);
                // Thread.Sleep(50);
            }
        }
예제 #3
0
        public WarriorState Check()
        {
            WarriorState warriorState   = new WarriorState();
            string       responseString = "";

            try
            {
                var request = (HttpWebRequest)WebRequest.Create(ConfigSettings.ReadSetting(ServerUrl) + "Check");
                request.Timeout = 100000;

                var data = Encoding.ASCII.GetBytes("=" + ConfigSettings.ReadSetting(WarriorName));

                request.Method        = "POST";
                request.ContentType   = "application/x-www-form-urlencoded";
                request.ContentLength = data.Length;

                using (var stream = request.GetRequestStream())
                {
                    stream.Write(data, 0, data.Length);
                }

                var response = (HttpWebResponse)request.GetResponse();

                // ReSharper disable once AssignNullToNotNullAttribute
                responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
            }
            catch (Exception e)
            {
                _logger.Error(e);
                _logger.Info("Lost connection with server");
            }
            //Thread.Sleep(500);
            //"{<State:0>},
            warriorState = ConvertResponseToWarriorState(responseString);
            _logger.Info("Enemy warrior state is " + warriorState.State + " life is " + warriorState.Life);
            return(warriorState);
        }