private string FormCharLine(char input, int line, bool isRainbow)
{
StringBuilder output = new StringBuilder();
string code = GetCharMap(input).Split(new[] {'.'})[line];
int flip = 1;
bool holdColour = false;
//edge case of no colour in a line, bump the colour up one anyway
if ((code.Length < 2) && (input != (char)32) && (input != (char)160))
WrapTextInColour(string.Empty, false);
foreach (char repeat in code) {
int repeatNum = (int)char.GetNumericValue(repeat);
flip *= -1;
if ((flip > 0) && (input != (char)32) && (input != (char)160)) {
if (isRainbow)
{
output.Append(WrapTextInColour(new String((char)160, repeatNum), holdColour));
holdColour = true;
}
else
{
output.Append((char)22);
output.Append((char)160, repeatNum);
output.Append((char)22);
}
}
else {
output.Append((char) 160, repeatNum);
}
}
return output.ToString();
}