FECipherVit.FECipherVit.TranslateAllCardsInfo C# (CSharp) Method

TranslateAllCardsInfo() public method

public TranslateAllCardsInfo ( List allcards ) : string
allcards List
return string
        public string TranslateAllCardsInfo(List<string> allcards)
        {
            string text = "";
            //"[Deck]", DeckTotal, "[Hand]", HandTotal, "[Grave]", GraveTotal, GraveCard0, ...,
            //"[Support]", SupportCard0, "[Kizuna]", KizunaTotal, KizunaCard0, ..., "[KizunaUsed]", KizunaUsedTotal, KizunaUsedCard0, ...,
            //"[Orb]", OrbTotal, "[FrontField]", FrontFieldTotal, FrontField0, ..., "[BackField]", BackFieldTotal, BackField0, ...,
            //"[Overlay]", OverlayTotal, OverlayCard0, ...
            //For a card number, a "!" in front means "Reversed", a "@" in front means "Horizontal", and also "!@" works.
            //Also, "-1" means there is no card.
            if (Language == Language.Chinese)
            {
                text += "#发送场地信息" + Environment.NewLine;
                text += ">>卡组:" + allcards[3] + " ";
                text += "手牌:" + allcards[6] + " ";
                text += "退避区:" + allcards[8] + Environment.NewLine;
                int pos = 7;
                string serialno;
                while (allcards[pos] != "[Support]")
                {
                    pos++;
                }
                text += ">>支援区:";
                serialno = allcards[pos + 1];
                if (serialno != "-1")
                {
                    string[] CardDataSplit = CardData[serialno];
                    text += "[" + CardDataSplit[4] + "]";
                }
                else
                {
                    text += "无";
                }
                text += Environment.NewLine;
                pos += 2;
                int KizunaTotal = Convert.ToInt32(allcards[pos + 1]);
                int KizunaReversed = 0;
                while (allcards[pos] != "[KizunaUsed]")
                {
                    if (allcards[pos].Substring(0, 1) == "!")
                    {
                        KizunaReversed++;
                    }
                    pos++;
                }
                int KizunaAndKizunaUsedTotal = KizunaTotal + Convert.ToInt32(allcards[pos + 1]);
                while (allcards[pos] != "[Orb]")
                {
                    if (allcards[pos].Substring(0, 1) == "!")
                    {
                        KizunaReversed++;
                    }
                    pos++;
                }
                text += ">>羁绊卡:" + KizunaAndKizunaUsedTotal.ToString() + " 未使用:" + KizunaTotal.ToString() + " 未翻面:" + (KizunaAndKizunaUsedTotal - KizunaReversed).ToString() + Environment.NewLine;
                text += ">>宝玉卡:" + allcards[pos + 1] + Environment.NewLine;
                pos += 2;
                text += ">>前卫区:";
                int FrontFieldTotal = Convert.ToInt32(allcards[pos + 1]);
                pos += 2;
                if (FrontFieldTotal == 0)
                {
                    text += "无";
                }
                for (int i = 0; i < FrontFieldTotal; i++)
                {
                    text += Environment.NewLine + "    ";
                    string temp = "";
                    if (allcards[pos + i].Substring(0, 1) == "@")
                    {
                        temp += "(已行动)";
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else if (allcards[pos + i].Length > 1 && allcards[pos + i].Substring(1, 1) == "@")
                    {
                        temp += "(已行动)";
                        serialno = allcards[pos + i].Substring(2);
                    }
                    else if (allcards[pos + i].Substring(0, 1) == "!")
                    {
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else
                    {
                        serialno = allcards[pos + i];
                    }
                    string[] CardDataSplit = CardData[serialno];
                    text += "[" + CardDataSplit[4] + "]" + temp;
                }
                pos += FrontFieldTotal;
                text += Environment.NewLine + ">>后卫区:";
                int BackFieldTotal = Convert.ToInt32(allcards[pos + 1]);
                pos += 2;
                if (BackFieldTotal == 0)
                {
                    text += "无";
                }
                for (int i = 0; i < BackFieldTotal; i++)
                {
                    text += Environment.NewLine + "    ";
                    string temp = "";
                    if (allcards[pos + i].Substring(0, 1) == "@")
                    {
                        temp += "(已行动)";
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else if (allcards[pos + i].Length > 1 && allcards[pos + i].Substring(1, 1) == "@")
                    {
                        temp += "(已行动)";
                        serialno = allcards[pos + i].Substring(2);
                    }
                    else if (allcards[pos + i].Substring(0, 1) == "!")
                    {
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else
                    {
                        serialno = allcards[pos + i];
                    }
                    string[] CardDataSplit = CardData[serialno];
                    text += "[" + CardDataSplit[4] + "]" + temp;
                }
            }
            else
            {
                text += "#Send field status" + Environment.NewLine;
                text += ">>Deck: " + allcards[3] + "  ";
                text += "Hand: " + allcards[6] + "  ";
                text += "Retreat: " + allcards[8] + Environment.NewLine;
                int pos = 7;
                string serialno;
                while (allcards[pos] != "[Support]")
                {
                    pos++;
                }
                text += ">>Support: ";
                serialno = allcards[pos + 1];
                if (serialno != "-1")
                {
                    string[] CardDataSplit = CardData[serialno];
                    text += "[" + CardDataSplit[4] + "]";
                }
                else
                {
                    text += "None";
                }
                text += Environment.NewLine;
                pos += 2;
                int KizunaTotal = Convert.ToInt32(allcards[pos + 1]);
                int KizunaReversed = 0;
                while (allcards[pos] != "[KizunaUsed]")
                {
                    if (allcards[pos].Substring(0, 1) == "!")
                    {
                        KizunaReversed++;
                    }
                    pos++;
                }
                int KizunaAndKizunaUsedTotal = KizunaTotal + Convert.ToInt32(allcards[pos + 1]);
                while (allcards[pos] != "[Orb]")
                {
                    if (allcards[pos].Substring(0, 1) == "!")
                    {
                        KizunaReversed++;
                    }
                    pos++;
                }
                text += ">>Bond: " + KizunaAndKizunaUsedTotal.ToString() + "  unused: " + KizunaTotal.ToString() + "  unflipped: " + (KizunaAndKizunaUsedTotal - KizunaReversed).ToString() + Environment.NewLine;
                text += ">>Orb: " + allcards[pos + 1] + Environment.NewLine;
                pos += 2;
                text += ">>Frontline: ";
                int FrontFieldTotal = Convert.ToInt32(allcards[pos + 1]);
                pos += 2;
                if (FrontFieldTotal == 0)
                {
                    text += "None";
                }
                for (int i = 0; i < FrontFieldTotal; i++)
                {
                    text += Environment.NewLine + "    ";
                    string temp = "";
                    if (allcards[pos + i].Substring(0, 1) == "@")
                    {
                        temp += "(actioned)";
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else if (allcards[pos + i].Length > 1 && allcards[pos + i].Substring(1, 1) == "@")
                    {
                        temp += "(actioned)";
                        serialno = allcards[pos + i].Substring(2);
                    }
                    else if (allcards[pos + i].Substring(0, 1) == "!")
                    {
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else
                    {
                        serialno = allcards[pos + i];
                    }
                    string[] CardDataSplit = CardData[serialno];
                    text += "[" + CardDataSplit[4] + "]" + temp;
                }
                pos += FrontFieldTotal;
                text += Environment.NewLine + ">>Backline: ";
                int BackFieldTotal = Convert.ToInt32(allcards[pos + 1]);
                pos += 2;
                if (BackFieldTotal == 0)
                {
                    text += "None";
                }
                for (int i = 0; i < BackFieldTotal; i++)
                {
                    text += Environment.NewLine + "    ";
                    string temp = "";
                    if (allcards[pos + i].Substring(0, 1) == "@")
                    {
                        temp += "(actioned)";
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else if (allcards[pos + i].Length > 1 && allcards[pos + i].Substring(1, 1) == "@")
                    {
                        temp += "(actioned)";
                        serialno = allcards[pos + i].Substring(2);
                    }
                    else if (allcards[pos + i].Substring(0, 1) == "!")
                    {
                        serialno = allcards[pos + i].Substring(1);
                    }
                    else
                    {
                        serialno = allcards[pos + i];
                    }
                    string[] CardDataSplit = CardData[serialno];
                    text += "[" + CardDataSplit[4] + "]" + temp;
                }
            }
            return text;
        }
FECipherVit