public void LoadDeckList(String filePath) { if (File.Exists(filePath) == false) { return; } XmlDocument doc = new XmlDocument(); doc.Load(filePath.ToString()); foreach (XmlNode node in doc.DocumentElement.ChildNodes) { String name = node.Attributes["Name"].Value; String expansionStr = node.Attributes["Expansion"].Value; String numStr = node.Attributes["Num"].Value; eExpansion expansion = GetExpansionEnumFromString(expansionStr); DeckCardData cardData = new DeckCardData(); cardData.SetCardNum(Int32.Parse(numStr)); cardData.SetCardData(m_CardList[expansion][name]); m_DeckList.Add(name, cardData); } }
public void CrawlingCard() { String expansionName = ExpansionComboBox.SelectedItem as String; eExpansion expansion = GetExpansionEnumFromString(expansionName); StringBuilder imagePath = new StringBuilder(m_cardImageDir); imagePath.Append(expansionName); imagePath.Append("\\"); int startCardId = m_setStartIdList[expansion]; for (int i = 0; i < m_cardSetNumList[expansion]; ++i) { int cardID = startCardId + i; String strCardID = cardID.ToString(); String url = m_WebLibrary.MakeURL(strCardID); HtmlDocument doc = m_WebLibrary.GetHTMLDocumentByURL(url); CardData card = m_WebLibrary.MakeCardData(doc, imagePath.ToString(), strCardID); if (m_CardList[expansion].ContainsKey(card.GetCardName()) == false) { if (File.Exists(imagePath.ToString()) == false) { m_WebLibrary.DownLoadCardImage(imagePath.ToString(), ref card); } m_CardList[expansion].Add(card.GetCardName(), card); } double progressRate = (double)m_CardList[expansion].Count / (double)m_cardSetNumList[expansion]; CardDataProgressBar.Value = (int)(progressRate * 100); } }
public DeckBuilder() { InitializeComponent(); // initialize member variables m_setStartIdList = new Dictionary <eExpansion, int>(); m_cardSetNumList = new Dictionary <eExpansion, int>(); m_WebLibrary = new WebLibrary(); m_CardList = new Dictionary <eExpansion, Dictionary <string, CardData> >(); for (eExpansion expansion = eExpansion.XLN; expansion < eExpansion.EXPANSION_MAX; ++expansion) { Dictionary <string, CardData> cardList = new Dictionary <string, CardData>(); m_CardList.Add(expansion, cardList); } m_DeckList = new Dictionary <string, DeckCardData>(); // load settings & card data LoadSettings(); LoadCardData(); RefreshCardList(); SetExpansionComboBox(); SetCardNumComboBox(); }
private void SetExpansionComboBox() { for (eExpansion expansion = eExpansion.XLN; expansion != eExpansion.EXPANSION_MAX; expansion++) { ExpansionComboBox.Items.Add(GetFullNameFromExpansionEnum(expansion)); } ExpansionComboBox.SelectedIndex = 0; }
public bool LoadSettings() { StringBuilder path = new StringBuilder("CardData\\"); if (Directory.Exists(path.ToString()) == false) { Directory.CreateDirectory(path.ToString()); } path.Append("Settings.xml"); if (File.Exists(path.ToString()) == false) { return(false); } XmlDocument doc = new XmlDocument(); doc.Load(path.ToString()); foreach (XmlNode node in doc.DocumentElement.ChildNodes) { if (node.Name == "CardDataDir") { m_cardDataDir = node.InnerText; } else if (node.Name == "CardImageDir") { m_cardImageDir = node.InnerText; } else if (node.Name == "SetStartID") { for (eExpansion expansion = eExpansion.XLN; expansion != eExpansion.EXPANSION_MAX; expansion++) { String data = node.Attributes[expansion.ToString()].Value; m_setStartIdList.Add(expansion, Int32.Parse(data)); } } else if (node.Name == "SetCardNum") { for (eExpansion expansion = eExpansion.XLN; expansion != eExpansion.EXPANSION_MAX; expansion++) { String data = node.Attributes[expansion.ToString()].Value; m_cardSetNumList.Add(expansion, Int32.Parse(data)); } } } return(true); }
private String GetFullNameFromExpansionEnum(eExpansion expansion) { switch (expansion) { case eExpansion.XLN: return("Ixalan"); case eExpansion.RIX: return("Rivals of Ixalan"); case eExpansion.DOM: return("Dominaria"); case eExpansion.M19: return("Core Set 2019"); case eExpansion.GRN: return("Guild of Ravnica"); case eExpansion.RNA: return("Ravnica Allegiance"); default: return(""); } }
public void LoadCardData() { if (Directory.Exists(m_cardDataDir) == false) { Directory.CreateDirectory(m_cardDataDir); } for (eExpansion expansion = eExpansion.XLN; expansion != eExpansion.EXPANSION_MAX; expansion++) { StringBuilder filePath = new StringBuilder(m_cardDataDir); filePath.Append(expansion.ToString()); filePath.Append(".xml"); if (File.Exists(filePath.ToString()) == false) { continue; } XmlDocument doc = new XmlDocument(); doc.Load(filePath.ToString()); foreach (XmlNode node in doc.DocumentElement.ChildNodes) { CardData cardData = new CardData(); cardData.SetCardSet(expansion.ToString()); StringBuilder value = new StringBuilder(); value.Append(node.Attributes["ID"].Value); cardData.SetCardID(value.ToString()); value.Clear(); value.Append(node.Attributes["Name"].Value); cardData.SetCardName(value.ToString()); value.Clear(); value.Append(node.Attributes["ManaCost"].Value); cardData.SetManaCost(value.ToString()); value.Clear(); value.Append(node.Attributes["CMC"].Value); cardData.SetCMC(value.ToString()); value.Clear(); value.Append(node.Attributes["Type"].Value); cardData.SetType(value.ToString()); value.Clear(); value.Append(node.Attributes["Text"].Value); cardData.SetText(value.ToString()); value.Clear(); value.Append(node.Attributes["Rarity"].Value); cardData.SetRarity(value.ToString()); value.Clear(); value.Append(node.Attributes["ImagePath"].Value); cardData.SetImagePath(value.ToString()); value.Clear(); m_CardList[expansion].Add(cardData.GetCardName(), cardData); } } }