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(); } } }
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); } } }
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); } }