private void PrintMarker(float cpuUsage, int size) { var progressLines = (int)Math.Round(cpuUsage / 100 * size); Console.Write("\t["); var greenLines = 0; var yellowLines = 0; var redLines = 0; var empty = 0; if (cpuUsage < 80) { greenLines = progressLines; } else if (cpuUsage >= 80 && cpuUsage < 95) { greenLines = 80 * size / 100; yellowLines = progressLines - greenLines; } else if (cpuUsage > 95) { greenLines = 80 * size / 100; yellowLines = 15 * size / 100; redLines = progressLines - greenLines - yellowLines; } empty = size - progressLines; PrettyConsole.WriteColor(ConsoleColor.Green, new string('|', greenLines)); PrettyConsole.WriteColor(ConsoleColor.Yellow, new string('|', yellowLines)); PrettyConsole.WriteColor(ConsoleColor.Red, new string('|', redLines)); PrettyConsole.WriteColor(ConsoleColor.DarkGray, new string(' ', empty)); Console.WriteLine(']'); }
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(); } }
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++; } } }