string processLine(string FullText) { modifierList = new List <ModifiedText>(); textModifiers modifier = textModifiers.Rainbow; char[] charsToTrim = { '/', '[', ']' }; string modifierName = ""; for (int i = 0; i < FullText.Length; i++) { if (FullText[i] == '[') { int endIndex = FullText.IndexOf(']'); modifierName = FullText.Substring(i, endIndex - i + 1); FullText = FullText.Replace(modifierName, ""); //Identify Modifier Type switch (modifierName.Trim(charsToTrim).ToLower()) { case "rainbow": modifier = textModifiers.Rainbow; break; case "shaky": modifier = textModifiers.Shaky; break; default: print("Improper textbox syntax."); break; } if (modifierName[1] != '/') { modifierList.Add(new ModifiedText(modifier, i)); } else { //Identify Modifier Type for (int j = 0; j < modifierList.Count; j++) { ModifiedText modifierItem = modifierList[j]; if (modifierItem.MODIFICATION == modifier) { if (modifierItem.ENDSET() == false) { modifierItem.END = i; modifierList[j] = modifierItem; } } } } i--; } } return(FullText); }
public ModifiedText(textModifiers modification, int start, int end = -1) { START = start; END = end; MODIFICATION = modification; }