public static bool ListAll(Dictionary <string, object> args) { try { bool showOnlyInCategory = false; string cat = "Other"; if (args.ContainsKey("cat")) { showOnlyInCategory = true; cat = args["cat"].ToString(); } Dictionary <string, ulong> upgrades = new Dictionary <string, ulong>(); int maxLength = 5; IEnumerable <ShiftoriumUpgrade> upglist = Shiftorium.GetAvailable(); if (showOnlyInCategory) { if (Shiftorium.IsCategoryEmptied(cat)) { ConsoleEx.Bold = true; ConsoleEx.ForegroundColor = ConsoleColor.Red; Console.WriteLine("{SHFM_QUERYERROR}"); Console.WriteLine(); ConsoleEx.Bold = false; ConsoleEx.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("{ERR_EMPTYCATEGORY}"); return(true); } upglist = Shiftorium.GetAvailable().Where(x => x.Category == cat); } if (upglist.Count() == 0) { ConsoleEx.Bold = true; ConsoleEx.ForegroundColor = ConsoleColor.Red; Console.WriteLine("{SHFM_NOUPGRADES}"); Console.WriteLine(); ConsoleEx.Bold = false; ConsoleEx.ForegroundColor = ConsoleColor.Gray; Console.WriteLine("{ERR_NOMOREUPGRADES}"); return(true); } foreach (var upg in upglist) { if (upg.ID.Length > maxLength) { maxLength = upg.ID.Length; } upgrades.Add(upg.ID, upg.Cost); } foreach (var upg in upgrades) { Console.WriteLine(Localization.Parse("{SHFM_UPGRADE}", new Dictionary <string, string> { ["%id"] = upg.Key, ["%cost"] = upg.Value.ToString() })); } return(true); } catch (Exception e) { CrashHandler.Start(e); return(false); } }