private void readElectLine(string line, PoliticalCard politicalCard) { string[] parts = line.Split (" ".ToCharArray()); //Determine election type politicalCard.ElectType = gameManager.LanguageMgr.ExtractEType(parts); //Determine election quantity int quantity = 1; foreach(string part in parts) { bool isANumber; int conversion = stringToInt(part, out isANumber); if (isANumber) { quantity = conversion; } } politicalCard.ElectQuantity = quantity; }
private PoliticalCard readPoliticalCard(string dataType, string dataText, string fileName, StreamReader reader) { if (dataText == "<{>") { PoliticalCard politicalCard = new PoliticalCard(); string line = reader.ReadLine().Trim (); VType voteType = VType.ForAgainst; do { string[] lineParts; //Split category name from data lineParts = line.Split(":".ToCharArray(), 2); //Remove any extra whitespace from parts & set descriptive variables string newDataType = gameManager.LanguageMgr.StringToDataType(lineParts[0].Trim ()); string newDataText = lineParts[1].Trim (); if (newDataType == "Name") { politicalCard.Name = readTextLine(newDataType, newDataText, fileName); } else if (newDataType == "Law") { politicalCard.IsLaw = gameManager.LanguageMgr.StringToBoolean(readTextLine(newDataType, newDataText, fileName)); } else if (newDataType == "Event") { bool isEvent = gameManager.LanguageMgr.StringToBoolean (readTextLine (newDataType, newDataText, fileName)); if (isEvent) { voteType = VType.Event; } } else if (newDataType == "Expansion") { politicalCard.Expansion = gameManager.LanguageMgr.StringToExpansion(readTextLine(newDataType, newDataText, fileName)); } else if (newDataType == "Flavor Text") { politicalCard.FlavorText = readTextLine (newDataType, newDataText, fileName); } else if (newDataType == "For") { politicalCard.ForText = readTextLine(newDataType, newDataText, fileName); } else if (newDataType == "Against") { politicalCard.AgainstText = readTextLine(newDataType, newDataText, fileName); } else if (newDataType == "Discard") { politicalCard.DiscardText = readTextLine(newDataType, newDataText, fileName); } else if (newDataType == "Elect") { voteType = VType.Elect; readElectLine(readTextLine (newDataType, newDataText, fileName), politicalCard); } else if (newDataType == "Effect") { if (voteType == VType.Event) { politicalCard.EventText = readTextLine(newDataType, newDataText, fileName); } else { politicalCard.ElectText = readTextLine(newDataType, newDataText, fileName); } } else if (newDataType == "ID") { politicalCard.Id = readTextLine (newDataType, dataText, fileName); } line = reader.ReadLine().Trim (); } while (line != "<}>"); // End of outermost block politicalCard.VoteType = voteType; if (politicalCard.Id == default(string)) { politicalCard.Id = politicalCard.Name; } return politicalCard; } else { throw new System.Exception(string.Format("Error reading file {0}:: got \"{1}\" should be <{>", fileName, dataText)); } }