public static PlayerSettingsConfiguration LoadSettingsFromFile(string path) { PlayerSettings settings = null; try { using (StreamReader reader = new StreamReader(path)) { var xmlReader = XmlReader.Create(reader); var serializer = new XmlSerializer(typeof(PlayerSettings)); if (serializer.CanDeserialize(xmlReader)) { settings = (PlayerSettings)serializer.Deserialize(xmlReader); var errors = Validator.ValidateSettings(new PlayerSettingsConfiguration(settings)); if (!string.IsNullOrEmpty(errors)) { ConsoleWriter.Error(Constants.ERRORS_WHILE_PARSING_XML); ConsoleWriter.Show(errors); return(null); } } } } catch (Exception e) { ConsoleWriter.Error(Constants.UNEXPECTED_ERROR + e.Message); ConsoleWriter.Show(e.StackTrace); } return(new PlayerSettingsConfiguration(settings)); }
public PlayerController(TeamColour team, PlayerRole role, PlayerSettingsConfiguration settings, string gameName = null) { clientSocket = new TcpClient(); PrefferedColor = team; PrefferedRole = role; Settings = settings; GameName = gameName; }
public static void SetDefaultParameters() { serverIP = IPAddress.Parse("127.0.0.1"); serverPort = Int32.Parse("5678"); colour = Messages.TeamColour.blue; role = Messages.PlayerRole.member; settings = LoadSettingsFromFile("PlayerSettings.xml"); }
/// <summary> /// Method for integration tests /// </summary> /// <param name="ip"></param> /// <param name="port"></param> /// <param name="settings"></param> /// <param name="colour"></param> /// <param name="PController"></param> /// <param name="role"></param> /// <returns></returns> public static bool TestStartPlayer(IPAddress ip, Int32 port, PlayerSettingsConfiguration settings, Messages.TeamColour colour, out PlayerController PController, Messages.PlayerRole role = Messages.PlayerRole.member) { var player = new Player(colour, role, settings); PController = new PlayerController(player); player.Controller = PController; return(PController.ConnectToServer(ip, port)); }
public Player(TeamColour team, PlayerRole role = PlayerRole.member, PlayerSettingsConfiguration settings = null, IPlayerController gameController = null, string _guid = "TEST_GUID", IGameMaster gm = null, ulong id = 0) { Settings = settings; gameMaster = gm; Team = team; GUID = _guid; Role = role; Location = new GameArea.GameObjects.Location(0, 0); Controller = gameController; State = AgentState.SearchingForGame; LastMoveTaken = MoveType.up; ID = id; MyPlayerKnowledgeExchangeQueue = new List <KnowledgeExchangeRequestAgent>(); OtherPlayerKnowledgeExchangeQueue = new List <KnowledgeExchangeRequestAgent>(); }
public static string ValidateSettings(PlayerSettingsConfiguration settings) { var gameDefinitions = settings; var errors = new StringBuilder(); if (settings.KeepAliveInterval < 0) { errors.AppendLine(ValidatorMessages.INVALID_KEEP_ALIVE_INTERVAL); } if (settings.RetryJoinGameInterval < 0) { errors.Append(ValidatorMessages.INVALID_KEEP_ALIVE_INTERVAL); } return(errors.ToString()); }
public static void AssignParameterValue(string option, string arg) { switch (option) { case "--address": serverIP = IPAddress.Parse(arg); break; case "--port": serverPort = Int32.Parse(arg); break; case "--conf": settings = LoadSettingsFromFile(arg); ConsoleWriter.Show("Loading settings from file: " + arg); var settingsErrors = settings == null ? null : Validator.ValidateSettings(settings); if (settings == null || (settingsErrors != null && settingsErrors != "")) { ConsoleWriter.Error("Failed to load settings from file. Verify file and try again.\n Closing Agent."); settings = LoadSettingsFromFile("PlayerSettings.xml"); } break; case "--game": gameName = arg; break; case "--team": colour = StringToTeamColour(arg); break; case "--role": role = StringToRole(arg); break; } }
public static bool StartPlayerController(IPAddress ip, Int32 port, PlayerSettingsConfiguration settings, Messages.TeamColour colour, Messages.PlayerRole role) { PController = new PlayerController(colour, role, settings, gameName); return(PController.ConnectToServer(ip, port)); }