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; }
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; }
/// <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; }