private static void EnterMainMenu() { _exitFlag = false; while (!_exitFlag) { Console.WriteLine("-=Главное меню=-"); foreach (var item in _mainMenu) { Console.WriteLine(item.Key + " - " + item.Value.MenuText); } var key = Console.ReadKey(); Console.Clear(); try { if (_mainMenu.ContainsKey(key.Key)) { _mainMenu[key.Key].MenuAction.Invoke(); } } catch (Exception exp) { PrettyConsole.WriteLineColor(ConsoleColor.Red, exp.Message); } } }
public static ErrorCodes HandleClientException(IClientException <ErrorData> exception) { Console.Clear(); var res = HandleClientExceptionErrorData(exception); PrettyConsole.WriteLineColor(ConsoleColor.Red, "Ошибка: {0}", res.Item2); return(res.Item1); }
public void FightAgainstCorruption() { try { _game.FightAgainstInflation(); } catch (Exception exp) { PrettyConsole.WriteLineColor(ConsoleColor.Red, "Error: {0}", exp); } DisplayGameData(GetGameData()); }
public void BuyFundDriver(ConsoleKeyInfo keyInfo) { try { _game.BuyFundDriver((int)keyInfo.Key - 64); } catch (Exception exp) { PrettyConsole.WriteLineColor(ConsoleColor.Red, "Error: {0}", exp); } DisplayGameData(GetGameData()); }
public override void DisplayGameData(GameData gameData) { lock (_stdLock) { Console.SetCursorPosition(0, 0); PrettyConsole.WriteLineColor(ConsoleColor.DarkRed, "User: {0}, Session: {1}", User, SessionGuid); PrettyConsole.WriteLineColor(ConsoleColor.DarkGreen, "F2 - Admin settings"); PrettyConsole.WriteLineColor(ConsoleColor.DarkGreen, "F3 - Logout"); Console.SetCursorPosition(0, 3); base.DisplayGameData(gameData); } }
public override void DisplayGameData(GameDataModel gameData) { lock (_stdLock) { Console.SetCursorPosition(0, 0); PrettyConsole.WriteLineColor(ConsoleColor.DarkRed, "Логин: {0}, Сервер API: {1}", User, ServerContext.BaseUri); PrettyConsole.WriteLineColor(ConsoleColor.DarkGreen, "F2 - Администрирование"); PrettyConsole.WriteLineColor(ConsoleColor.DarkGreen, "F3 - Разлогиниться"); Console.SetCursorPosition(0, 3); base.DisplayGameData(gameData); } }
private void PrintStatistics(Tuple <Uri, ServerStatisticsInfoModel>[] statistics) { Console.Clear(); foreach (var serverStatisticsInfoModel in statistics) { Console.WriteLine(serverStatisticsInfoModel.Item1); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Игр:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-9}", serverStatisticsInfoModel.Item2.ActiveGamesCount); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Сессий:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-9} ", serverStatisticsInfoModel.Item2.ActiveSessionsCount); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-10}", "Uptime:"); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{0:dd\\.hh\\:mm\\:ss}", serverStatisticsInfoModel.Item2.ServerUptime); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Пользовтелей:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-9}", serverStatisticsInfoModel.Item2.RegistredUsersCount); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Вычисл / цикл:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-9} ms", serverStatisticsInfoModel.Item2.PerformanceInfo != null ? serverStatisticsInfoModel.Item2.PerformanceInfo.CalculationsPerCycle.TotalMilliseconds : 0); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Сохран / цикл:"); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{0,-9} ", serverStatisticsInfoModel.Item2.PerformanceInfo != null ? serverStatisticsInfoModel.Item2.PerformanceInfo.PersistencePerCycle.TotalMilliseconds : 0); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "OS:"); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, serverStatisticsInfoModel.Item2.SystemInfo.Os); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Runtime: "); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, serverStatisticsInfoModel.Item2.SystemInfo.Runtime); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "CPUs:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-9}", serverStatisticsInfoModel.Item2.SystemInfo.CpusCount); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "RAM:"); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{0,-9} Mb", serverStatisticsInfoModel.Item2.SystemInfo.MemoryTotal); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "CPU:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-5:N1} %", serverStatisticsInfoModel.Item2.ResourcesUsageInfo.CpuUsed); PrintMarker(serverStatisticsInfoModel.Item2.ResourcesUsageInfo.CpuUsed, 50); var memoryPercent = (serverStatisticsInfoModel.Item2.SystemInfo.MemoryTotal - serverStatisticsInfoModel.Item2.ResourcesUsageInfo.MemoryAvailable) / serverStatisticsInfoModel.Item2.SystemInfo.MemoryTotal * 100; PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "RAM Доступно: "); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-9} Mb", serverStatisticsInfoModel.Item2.ResourcesUsageInfo.MemoryAvailable); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "Процесс: "); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{0,-9:N1} Mb", serverStatisticsInfoModel.Item2.ResourcesUsageInfo.MemoryUsedByProcess); PrettyConsole.WriteColor(ConsoleColor.DarkCyan, "\t{0,-15}", "RAM:"); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{0,-5:N1} % ", memoryPercent); PrintMarker(memoryPercent, 50); Console.WriteLine(); } }
private void DoActionAndDisplayGameData(Action gameAction) { try { gameAction(); DisplayGameData(GetGameData()); } catch (AggregateException exp) { ErrorCode = HandleClientException(exp.InnerException as IClientException <ErrorData>); } catch (Exception exp) { PrettyConsole.WriteLineColor(ConsoleColor.Red, "Ошибка: {0}", exp); } }
public async void PerformManualStep() { try { _manualStepResult = await Task.Run( () => _game.PerformManualStep(_manualStepResult == null ? null : new VerificationManualStepResult { VerificationNumber = _verificationResult ?? 0 })); if (_manualStepResult is NoVerficationRequiredResult) { _manualStepResult = null; } if (_manualStepResult is VerificationRequiredResult) { Thread.Sleep(100); Console.Clear(); var manualVerificationResult = _manualStepResult as VerificationRequiredResult; Console.WriteLine("Verification required: {0} + {1} = " , manualVerificationResult.FirstNumber, manualVerificationResult.SecondNumber); int parseResult; var readString = Console.ReadLine(); int.TryParse(readString, out parseResult); _verificationResult = parseResult == 0 ? default(int?) : parseResult; } } catch (Exception exp) { PrettyConsole.WriteLineColor(ConsoleColor.Red, "Error: {0}", exp); } DisplayGameData(GetGameData()); }
public virtual void DisplayGameData(GameDataModel gameData) { lock (_stdLock) { Console.WriteLine("Баланс: {0:C}; Всего заработано: {1:C}", gameData.Cash.OnHand, gameData.Cash.TotalEarned); /*Console.WriteLine("Manual Steps: {0}, Automatic Steps: {1}", * gameData.ManualStepsCount, gameData.AutomatedStepsCount);*/ PrettyConsole.WriteLineColor(ConsoleColor.Red, "{1,15}: {0,12}", gameData.Cash.Counters[0].Value, gameData.Cash.Counters[0].Name); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{1,15}: {0,12:C} ", ((GenericCounterModel)gameData.Cash.Counters[1]).SubValue, gameData.Cash.Counters[1].Name); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{1,15}: {0,12:C} ({2}%)" , ((GenericCounterModel)gameData.Cash.Counters[1]).Bonus, "Бонус" , ((GenericCounterModel)gameData.Cash.Counters[1]).BonusPercentage); PrettyConsole.WriteColor(ConsoleColor.Cyan, "{1,15}: {0,12}%" , ((GenericCounterModel)gameData.Cash.Counters[1]).Inflation, "Батхёрт"); PrettyConsole.WriteLineColor(ConsoleColor.Cyan, "{1,15}: {0,12:C}" , ((GenericCounterModel)gameData.Cash.Counters[1]).Value, "Total"); PrettyConsole.WriteLineColor(ConsoleColor.Green, "{1,15}: {0,12:C}", ((GenericCounterModel)gameData.Cash.Counters[2]).SubValue, gameData.Cash.Counters[2].Name); PrettyConsole.WriteLineColor(ConsoleColor.Green, "{1,15}: {0,12:C} ({2}%)" , ((GenericCounterModel)gameData.Cash.Counters[2]).Bonus, "Бонус" , ((GenericCounterModel)gameData.Cash.Counters[2]).BonusPercentage); PrettyConsole.WriteColor(ConsoleColor.Green, "{1,15}: {0,12}%" , ((GenericCounterModel)gameData.Cash.Counters[2]).Inflation, "Усталость"); PrettyConsole.WriteLineColor(ConsoleColor.Green, "{1,15}: {0,12:C}" , ((GenericCounterModel)gameData.Cash.Counters[2]).Value, "Всего"); PrettyConsole.WriteLineColor(ConsoleColor.Magenta, "{1,15}: +{0,12:C} {2}/{3}", gameData.Cash.Counters[3].Value, gameData.Cash.Counters[3].Name , TimeSpan.FromSeconds(((DelayedCounterModel)gameData.Cash.Counters[3]).SecondsRemaining) , 0); Console.WriteLine(); var charIndex = 65; PrettyConsole.WriteLineColor( IsCounterWithInflation((GenericCounterModel)gameData.Cash.Counters[2]) ? ConsoleColor.Yellow : ConsoleColor.DarkYellow, "{0,2}: Отдохнуть", "*"); if (IsCounterAvailableForActivate((DelayedCounterModel)gameData.Cash.Counters[3], gameData.Cash.Counters[0].Value)) { PrettyConsole.WriteLineColor( IsCounterIsMining((DelayedCounterModel)gameData.Cash.Counters[3]) ? ConsoleColor.DarkMagenta : ConsoleColor.Magenta, "{0,2}: Делать кварталку", "+"); } else { PrettyConsole.WriteLineColor(ConsoleColor.DarkMagenta, "{0,2}: Делать кварталку: надо {1} {2} чтоб разлочить", "+", ((DelayedCounterModel)gameData.Cash.Counters[3]).UnlockValue, gameData.Cash.Counters[0].Name); } foreach (var fundsDriver in gameData.Items) { if (!IsFundsDriverAvailableForBuy(gameData.Cash.Counters[0], fundsDriver)) { PrettyConsole.WriteColor(ConsoleColor.Gray, "{0,2}: Надо для покупки: {1,6} x{2,-4} ", ((char)charIndex).ToString(), fundsDriver.UnlockBalance, fundsDriver.Bought); } else { PrettyConsole.WriteColor(ConsoleColor.White, "{3,2}: {0,26} {1,14} x{2,-4} ", fundsDriver.Name, FormatMoney(fundsDriver.Price), fundsDriver.Bought, ((char)charIndex).ToString()); } PrettyConsole.WriteColor(ConsoleColor.Red, "+{0, -4} ", GetIncrementorValueById(fundsDriver, 0)); PrettyConsole.WriteColor(ConsoleColor.Cyan, "+{0, -7} ", GetIncrementorValueById(fundsDriver, 1)); PrettyConsole.WriteColor(ConsoleColor.Green, "+{0,-7} ", GetIncrementorValueById(fundsDriver, 2)); Console.WriteLine(); charIndex++; } } }
private static void MainLoop(IEnumerable <string> args) { if (args.Any()) { _userName = args.First(); } var loginResult = UserLogin(_userName); _sessionGuid = loginResult.Item1; _userName = loginResult.Item2; var gameClient = GetGameClient(_sessionGuid); var adminManagerClient = GetAdminClient(_sessionGuid); var gr = new GameRunner(_userName, _sessionGuid, gameClient); var ac = new AdminConsole(adminManagerClient, _sessionGuid); var gameData = gr.GetGameData(); gr.DisplayGameData(gameData); ConsoleKeyInfo keyInfo; while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Escape) { try { if (keyInfo.Key == ConsoleKey.Enter) { gr.PerformManualStep(); } else if ((int)keyInfo.Key >= 65 && (int)keyInfo.Key <= 90) { gr.BuyFundDriver(keyInfo); } else if (keyInfo.Key == ConsoleKey.Multiply) { gr.FightAgainstCorruption(); } else if (keyInfo.Key == ConsoleKey.Add) { gr.PerformFiveYearPlan(); } else if (keyInfo.Key == ConsoleKey.F5) { gr.DisplayGameData(gr.GetGameData()); } else if (keyInfo.Key == ConsoleKey.F2) { ac.StartMenu(); gr.Invalidate(); } else if (keyInfo.Key == ConsoleKey.F3) { UserLogout(_sessionGuid); gr.DisplayGameData(gr.GetGameData()); } } catch (FaultException <InvalidSessionFault> faultException) { var res = UserLogin(null); _sessionGuid = res.Item1; _userName = res.Item2; gr.SessionGuid = _sessionGuid; ac.SessionGuid = _sessionGuid; gr.User = _userName; gr.SetGameClient(GetGameClient(_sessionGuid)); ac.SetAdminClient(GetAdminClient(_sessionGuid)); gr.DisplayGameData(gr.GetGameData()); PrettyConsole.WriteLineColor(ConsoleColor.Red, "Error: {0}", faultException); } } }