Example #1
0
        private void ExecuteCommand(Command command)
        {
            switch (command.Action)
            {
            case ActionName.Attack:
                AttackOutcome attackOutcome = _warriorClient.Attack(command.Strength);
                WarriorLogger.AttackLogging(attackOutcome, command.Strength);
                break;

            case ActionName.Defend:
                DefenseOutcome defenseOutcome = _warriorClient.Defend(command.Time);
                WarriorLogger.DefenceLogging(defenseOutcome);
                break;

            case ActionName.Rest:
                RestOutcome restOutcome = _warriorClient.Rest(command.Time);
                WarriorLogger.RestLogging(restOutcome);
                break;

            case ActionName.Check:
                WarriorState warriorState = _warriorClient.Check();
                WarriorLogger.CheckLogging(warriorState);
                break;
            }
        }
        public WarriorState Check()
        {
            try
            {
                HttpResponseMessage responseMessage = _client.PostAsJsonAsync("Check/" + WarriorBrain.RoomGuid + "/" + _myGuid, "aaa").Result;
                responseMessage.EnsureSuccessStatusCode();

                WarriorState enemyState = responseMessage.Content.ReadAsAsync <WarriorState>().Result;

                return(enemyState);
            }
            catch (Exception exception)
            {
                WarriorLogger.UnableToConnect();
            }
            return(null);
        }
        public bool CheckForWinner()
        {
            try
            {
                HttpResponseMessage responseMessage = _client.GetAsync("Winner/" + WarriorBrain.RoomGuid + "/" + _myGuid).Result;
                responseMessage.EnsureSuccessStatusCode();

                string content = responseMessage.Content.ReadAsAsync <string>().Result;
                WarriorLogger.Winner(content == "WINNER");
                return(content == "NOT WINNER");
            }
            catch (Exception exception)
            {
                WarriorLogger.UnableToConnect();
            }
            return(false);
        }
        public bool IsBattleOver()
        {
            try
            {
                HttpResponseMessage responseMessage = _client.GetAsync("IsAlive/" + WarriorBrain.RoomGuid).Result;
                responseMessage.EnsureSuccessStatusCode();

                bool content = responseMessage.Content.ReadAsAsync <bool>().Result;
                //return content.Equals("true");
                return(content);
            }
            catch (Exception exception)
            {
                WarriorLogger.UnableToConnect();
            }
            return(false);
        }
        public RestOutcome Rest(int time)
        {
            try
            {
                string info = time.ToString();

                HttpResponseMessage responseMessage = _client.PostAsJsonAsync("Rest/" + WarriorBrain.RoomGuid + "/" + _myGuid + "/" + info, "aaa").Result;
                responseMessage.EnsureSuccessStatusCode();

                string content = responseMessage.Content.ReadAsAsync <string>().Result;
                return((RestOutcome)Enum.Parse(typeof(AttackOutcome), content));
            }
            catch (Exception exception)
            {
                WarriorLogger.UnableToConnect();
            }
            return(RestOutcome.WrongData);
        }
        public void GetMyInfo()
        {
            while (true)
            {
                try
                {
                    HttpResponseMessage responseMessage = _client.GetAsync("MyStats/" + WarriorBrain.RoomGuid + "/" + _myGuid).Result;
                    responseMessage.EnsureSuccessStatusCode();

                    WarriorBrain.MyInfo = responseMessage.Content.ReadAsAsync <WarriorState>().Result;
                    Thread.Sleep(25);
                }
                catch (Exception exception)
                {
                    WarriorLogger.UnableToConnect();
                }
            }
        }
        public JoinRoomOutcome JoinGame(Guid roomGuid)
        {
            while (true)
            {
                try
                {
                    HttpResponseMessage responseMessage = _client.PostAsJsonAsync("JoinGame/" + roomGuid + "/" + _myGuid, "aaa").Result;
                    responseMessage.EnsureSuccessStatusCode();

                    string content = responseMessage.Content.ReadAsAsync <string>().Result;
                    return((JoinRoomOutcome)Enum.Parse(typeof(JoinRoomOutcome), content));
                }
                catch (Exception)
                {
                    WarriorLogger.UnableToConnect();
                }
            }
        }
Example #8
0
        public void Start()
        {
            string action;

            Console.WriteLine("Do you want to join a game or host it?\n \n'J' to Join, 'H' to Host ");
            while (true)
            {
                action = Console.ReadLine();
                if (action != null && action.ToLower() == "h")
                {
                    RoomGuid = _warriorClient.HostGame();
                    WarriorLogger.GameHost(RoomGuid);
                    break;
                }
                if (action != null && action.ToLower() == "j")
                {
                    string guid = Console.ReadLine();

                    if (Guid.TryParse(guid, out RoomGuid))
                    {
                        JoinRoomOutcome joinOutcome = _warriorClient.JoinGame(RoomGuid);
                        WarriorLogger.JoinGame(joinOutcome);
                        break;
                    }
                    WarriorLogger.WrongRoomGuid();
                }
                else
                {
                    WarriorLogger.WrongLetter();
                }
            }
            while (!_bothUsersOnline)
            {
                _bothUsersOnline = _warriorClient.AreBothUsersOnline();
                Thread.Sleep(100);
            }

            Thread checkGetAttackedThread = new Thread(_warriorClient.GetMyInfo);

            checkGetAttackedThread.Start();

            Fight();
        }
        public bool AreBothUsersOnline()
        {
            try
            {
                HttpResponseMessage responseMessage = _client.PostAsJsonAsync("UsersReady/" + WarriorBrain.RoomGuid, "aaa").Result;
                responseMessage.EnsureSuccessStatusCode();

                bool content = responseMessage.Content.ReadAsAsync <bool>().Result;

                if (content)
                {
                    return(true);
                }
            }
            catch (Exception)
            {
                WarriorLogger.UnableToConnect();
            }
            return(false);
        }
        public Guid HostGame()
        {
            while (true)
            {
                try
                {
                    HttpResponseMessage responseMessage = _client.PostAsJsonAsync("HostGame/" + _myGuid, "aaa").Result;
                    responseMessage.EnsureSuccessStatusCode();

                    string content = responseMessage.Content.ReadAsAsync <string>().Result;
                    //content = content.Substring(1, content.Length - 2);

                    return(Guid.Parse(content));
                }
                catch (Exception e)
                {
                    WarriorLogger.UnableToConnect();
                    Console.WriteLine(e);
                }
            }
        }
Example #11
0
 private void Fight()
 {
     while (true)
     {
         if (_warriorClient.IsBattleOver())
         {
             _ihaveLost = _warriorClient.CheckForWinner();
             break;
         }
         ExecuteNextCommand();
     }
     if (_ihaveLost)
     {
         WarriorLogger.BattleLost();
         for (int i = 5; i > 0; i--)
         {
             WarriorLogger.CountDown(i);
             Thread.Sleep(1000);
         }
         Environment.Exit(0);
     }
 }