示例#1
0
        public static CountedCollection<Card> ParseDeck(string filename)
        {
            var deck = new CountedCollection<Card>();
            var parser = new ConfigParser(filename, ' ');
            var colors = parser.Sections;

            foreach(var colorKey in colors)
            {
                var colorCards = parser.GetSection(colorKey);
                foreach(var card in colorCards)
                {
                    var color = Global.ColorMap.GetValueOrDefault(colorKey, -1);
                    var type = Global.TypeMap[card.Key];
                    var value = Global.ValueMap[card.Key];
                    var number = card.Value.ToInt();
                    deck.Add(new Card(color, type, value), number);
                }
            }
            return deck;
        }
示例#2
0
        public static GameSettings ParseSettings(string filename)
        {
            var settings = new GameSettings();
            var parser = new ConfigParser(filename);

            const string game = "Game Settings";
            settings.MaxPlayers = parser.Get(game, "maxplayers", "7").ToInt();
            settings.DrawUntilPlayable = parser.Get(game, "drawuntilplayable", "true").ToBool();
            settings.CanPlayAfterDraw = parser.Get(game, "playafterdraw", "true").ToBool();
            settings.CardsPerStartingHand = parser.Get(game, "cardsinfirsthand", "7").ToInt();
            settings.DeckFilename = parser.Get(game, "deck", null);

            const string server = "Server Settings";
            settings.HostIP = parser.Get(server, "ip", "127.0.0.1");
            settings.LogFilename = parser.Get(server, "log", null);
            settings.Port = parser.Get(server, "port", "2012").ToInt();

            return settings;
        }
示例#3
0
 /// <summary>
 /// Returns a mapping between name and host:port, all in lowercase.
 /// </summary>
 /// <param name="filename"></param>
 /// <returns></returns>
 public static Dictionary<string, string> ParseServerFavorites(string filename)
 {
     var favorites = new Dictionary<string, string>();
     var parser = new ConfigParser(filename);
     const string header = "Saved Hosts";
     var mixedCaseFavorites = parser.GetSection(header);
     foreach (var key in mixedCaseFavorites.Keys)
         favorites[key.ToLower()] = mixedCaseFavorites[key].ToLower();
     return favorites;
 }