public static void Output(AttackState attackState) { if (attackState.cmdComplete) { printPrompt(attackState); } int currentCusorPos = Console.CursorTop; string prompt = createPrompt(attackState); Console.SetCursorPosition(prompt.Length, attackState.promptPos); Console.Write(new string(' ', Console.WindowWidth)); int cursorDiff = currentCusorPos - attackState.promptPos; while (cursorDiff > 0) { Console.SetCursorPosition(0, attackState.promptPos + cursorDiff); Console.Write(new string(' ', Console.WindowWidth)); cursorDiff -= 1; } Console.SetCursorPosition(prompt.Length, attackState.promptPos); Console.Write(attackState.displayCmd); int consoleWrapCount = attackState.consoleWrapCount(); int relativeCursorPos = attackState.relativeCursorPos(); if (attackState.cursorPos >= Console.WindowWidth) { attackState.cursorPos = attackState.cursorPos - Console.WindowWidth * consoleWrapCount; } Console.SetCursorPosition(attackState.cursorPos, attackState.promptPos + consoleWrapCount); }