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;
}