Beispiel #1
0
        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));
        }
Beispiel #2
0
 public PlayerController(TeamColour team, PlayerRole role, PlayerSettingsConfiguration settings, string gameName = null)
 {
     clientSocket   = new TcpClient();
     PrefferedColor = team;
     PrefferedRole  = role;
     Settings       = settings;
     GameName       = gameName;
 }
Beispiel #3
0
 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");
 }
Beispiel #4
0
        /// <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));
        }
Beispiel #5
0
 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>();
 }
Beispiel #6
0
        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());
        }
Beispiel #7
0
        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;
            }
        }
Beispiel #8
0
 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));
 }