public static BuildInfo GetBuildInfoFromXML(XmlNode buildInfoNode, out bool needRefresh, BuildCards.DefaultCardLimitNumTypes defaultCardLimitNumTypes) { needRefresh = false; BuildInfo buildInfo = new BuildInfo(); for (int i = 0; i < buildInfoNode.ChildNodes.Count; i++) { XmlNode cardInfo = buildInfoNode.ChildNodes.Item(i); switch (cardInfo.Attributes["name"].Value) { case "baseInfo": buildInfo.BuildID = BuildInfo.GenerateBuildID(); buildInfo.BuildName = cardInfo.Attributes["BuildName"].Value; buildInfo.DrawCardNum = int.Parse(cardInfo.Attributes["DrawCardNum"].Value); buildInfo.DrawCardNum = int.Parse(cardInfo.Attributes["DrawCardNum"].Value); buildInfo.Life = int.Parse(cardInfo.Attributes["Life"].Value); buildInfo.Energy = int.Parse(cardInfo.Attributes["Energy"].Value); buildInfo.BeginMetal = int.Parse(cardInfo.Attributes["BeginMetal"].Value); break; case "cardIDs": buildInfo.M_BuildCards = new BuildCards(defaultCardLimitNumTypes); string[] cardID_strs = cardInfo.Attributes["ids"].Value.Split(';'); foreach (string s in cardID_strs) { if (string.IsNullOrEmpty(s)) { continue; } string[] cardSelectInfo_strs = s.Trim('(').Trim(')').Split(','); int cardID = int.Parse(cardSelectInfo_strs[0]); if (!AllCards.CardDict.ContainsKey(cardID)) { needRefresh = true; continue; } int cardSelectCount = int.Parse(cardSelectInfo_strs[1]); int cardSelectUpperLimit = int.Parse(cardSelectInfo_strs[2]); BuildCards.CardSelectInfo csi = new BuildCards.CardSelectInfo(cardID, cardSelectCount, cardSelectUpperLimit); buildInfo.M_BuildCards.CardSelectInfos[cardID] = csi; } break; } } return(buildInfo); }
private void UnSelectAllActiveCards(List <int> activeCardIDs) { if (Enemy_BuildCards != null) { foreach (int cardID in activeCardIDs) { BuildCards.CardSelectInfo csi = Enemy_BuildCards.CardSelectInfos[cardID]; csi.CardSelectCount = 0; csi.CardSelectUpperLimit = 0; CardSelectPanel.RefreshCard(cardID, 0); } Row_CardSelection.Refresh(); } }
private void SelectOneForEachActiveCards(List <int> activeCardIDs) { if (Enemy_BuildCards != null) { foreach (int cardID in activeCardIDs) { BuildCards.CardSelectInfo csi = Enemy_BuildCards.CardSelectInfos[cardID]; csi.CardSelectCount++; int count = csi.CardSelectCount; CardSelectPanel.RefreshCard(cardID, count); } Row_CardSelection.Refresh(); } }