Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    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();
        }
    }
Exemplo n.º 3
0
    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();
        }
    }