public void Show(GameClient client, IPEndPoint ep) { buffer.SetCursorPosition(10, 3); buffer.ForegroundColor = ConsoleColor.Gray; buffer.InsertBuffer(headline, 26, 4); string ip = ep.Address.ToString(); buffer.SetCursorPosition((80 - ip.Length) / 2, 8); buffer.Write(ip); buffer.DrawSelf(); Console.SetCursorPosition(26, 12); Console.ForegroundColor = SelectedColor; Console.Write(pretoken); Console.ResetColor(); Console.BackgroundColor = SelectedColor; Console.Write("Cancel"); Console.ResetColor(); client.Connect(ep); long starttime = Program.Time; while (true) { double time = Program.Time / 120.0; ConsoleBuffer slider = new ConsoleBuffer(headline.Width, 1); //slider.BackgroundColor = ConsoleColor.DarkBlue; slider.Clear(); string s = "██████"; slider.DrawText(s, (int)(0.55 * Math.Sin(time) * slider.Width + 0.5 * slider.Width) - s.Length / 2, 0, this.SelectedColor, ConsoleColor.Black); slider.DrawText(" ", 0, 0, ConsoleColor.Black, ConsoleColor.White); slider.DrawText(" ", slider.Width - 1, 0, ConsoleColor.Black, ConsoleColor.White); slider.DrawSelf(26, 10); Thread.Sleep(20); if (Console.KeyAvailable) { if (Console.ReadKey(true).Key == ConsoleKey.Enter) { client.Close(); return; } } if (client.Connected) { break; } if (starttime < Program.Time - 20 * 1000) { client.ErrorMessage = "Connection timed out."; break; } } Console.SetCursorPosition(26, 10); Console.Write("Connected! Logging in..."); //buffer.DrawSelf(); buffer.SetCursorPosition(26, 11); // waits for client to finish stuff client.Sync(); if (client.LoggedIn) { try { client.LobbyMenu.Show(); } catch (Exception e) { client.ErrorMessage = e.Message; } } if (!(client.LoggedIn && client.Connected)) { Items[0] = proitems1[0] + " " + client.ErrorMessage; this.ReadMenu(); } client.Close(); }
public void Show() { client = new GameClient(); if (File.Exists("player.char")) { client.Character = PlayerCharacter.ReadFromFile("player.char"); } while (true) { buffer = new ConsoleBuffer(); ConsoleColor logo1 = ConsoleColor.Red, logo2 = ConsoleColor.DarkCyan, black = ConsoleColor.Black; buffer.Clear(); buffer.ForegroundColor = logo1; buffer.Write("\n" + " ██░ ██ █ ██ ███▄ █ ▄████ ▓█████ ██▀███ \n" + " ▓██░ ██▒ ██ ▓██▒ ██ ▀█ █ ██▒ ▀█▒▓█ ▀ ▓██ ▒ ██▒\n" + " ▒██▀▀██░▓██ ▒██░▓██ ▀█ ██▒▒██░▄▄▄░▒███ ▓██ ░▄█ ▒\n" + " ░▓█ ░██ ▓▓█ ░██░▓██▒ ▐▌██▒░▓█ ██▓▒▓█ ▄ ▒██▀▀█▄ \n" + " ░▓█▒░██▓▒▒█████▓ ▒██ ░ ▓██░░▒▓███▀▒░▒████▒░██▓ ▒██▒\n" + " ▒ ░░▒░▒░▒▓▒ ▒ ▒ ░ ▒ ░ ▒ ▒ ░▒ ▒ ░░ ▒░ ░░ ▒▓ ░▒▓░\n" + " ▒ ░▒░ ░░░▒░ ░░░ ░ ░ ▒ ░ ▒░ ░ ░ ░ ░ ░ ░▒ ░ ▒░\n" + " ░ ░░ ░ ░░░ ░ ░ ░░ ░ ░ ░ ░ ░ ░ ░░ ░ \n" + " ░ ░ ░ ░ ░ ░ ░ ░ ░ \n" ); if (true) { buffer.SetCursorPosition(0, buffer.CursorTop - 3); string online = " ██████╗ ███╗ ██╗██╗ ██╗███╗ ██╗███████╗\n" + " ██╔═══██╗████╗ ██║██║ ██║████╗ ██║██╔════╝\n" + " ██║ ██║██╔██╗ ██║██║ ██║██╔██╗ ██║█████╗ \n" + " ██║ ██║██║╚██╗██║██║ ██║██║╚██╗██║██╔══╝ \n" + " ╚██████╔╝██║ ╚████║███████╗██║██║ ╚████║███████╗\n" + " ╚═════╝ ╚═╝ ╚═══╝╚══════╝╚═╝╚═╝ ╚══╝╚══════╝\n" ; int X = buffer.CursorLeft, Y = buffer.CursorTop; for (int i = 0; i < online.Length; i++) { int x = i % (online.Length / 6) + X, y = i / (online.Length / 6) + Y; ConsoleBuffer.CharInfo ci = buffer[x, y]; char overchar = ' '; if (ci.Char.AsciiChar == ConsoleBuffer.ASCII.IndexOf('░')) { overchar = '▒'; } if (ci.Char.AsciiChar == ConsoleBuffer.ASCII.IndexOf('▒')) { overchar = '▓'; } char online_char = online[i]; if (online_char == '\n') { online_char = ' '; } if (online_char == '█') { buffer.DrawText(overchar.ToString(), x, y, logo1, logo2); } else if (online_char == ' ') { buffer.DrawText(" ", x, y, logo2, black); } else { buffer.DrawText(online_char.ToString(), x, y, logo2, overchar != ' ' ? black : black); } } } buffer.SetCursorPosition(35, buffer.CursorTop + 7); int selected = this.ReadMenu(); if (selected == 0) { GameServer server = new GameServer(); server.LoadAssets(); new MapPreviewMenu().Show(server, client); } if (selected == 1) { bool valid = true; string result = ""; IPAddress ip = null; int port = GameServer.DEFAULT_PORT; InputBox.Show("Enter IP address", ref result); if (result.Contains(':')) { if (int.TryParse(result.Split(':')[1], out port)) { result = result.Split(':')[0]; } else { valid = false; } } if (IPAddress.TryParse(result, out ip)) { IPEndPoint ep = new IPEndPoint(ip, port); new ConnectingMenu().Show(client, ep); } else { valid = false; } if (!valid) { MessageBox.Show("Invalid IP address format.", MessageBox.Buttons.OK); } } if (selected == 3) { new SettingsMenu().Show(client); } if (selected == Items.Length - 1) { ConsoleBuffer.Fullscreen = false; return; } } }