public static bool BuyUpgrade(Dictionary <string, object> userArgs) { try { string upgrade = ""; upgrade = (string)userArgs["upgrade"]; var upg = Shiftorium.GetAvailable().FirstOrDefault(x => x.ID == upgrade); if (upg != null) { if (!Shiftorium.Buy(upg.ID, upg.Cost) == true) { Console.WriteLine("{ERR_NOTENOUGHCODEPOINTS}"); } } else { Console.WriteLine("{ERR_NOUPGRADE}"); } } catch { Console.WriteLine("{ERR_GENERAL}"); } return(true); }
public static bool ListAll() { try { Dictionary <string, int> upgrades = new Dictionary <string, int>(); int maxLength = 5; foreach (var upg in Shiftorium.GetAvailable()) { if (upg.ID.Length > maxLength) { maxLength = upg.ID.Length; } upgrades.Add(upg.ID, upg.Cost); } Console.WriteLine("ID".PadRight((maxLength + 5) - 2) + "Cost (Codepoints)"); foreach (var upg in upgrades) { Console.WriteLine(upg.Key.PadRight((maxLength + 5) - upg.Key.Length) + " " + upg.Value.ToString()); } return(true); } catch (Exception e) { CrashHandler.Start(e); return(false); } }
public static bool BuyUpgrade(Dictionary <string, object> userArgs) { try { string upgrade = ""; if (userArgs.ContainsKey("upgrade")) { upgrade = (string)userArgs["upgrade"]; } else { throw new Exception("You must specify a valid 'upgrade' value."); } foreach (var upg in Shiftorium.GetAvailable()) { if (upg.ID == upgrade) { Shiftorium.Buy(upgrade, upg.Cost); return(true); } } throw new Exception($"Couldn't find upgrade with ID: {upgrade}"); } catch { return(false); } }
public static bool Status() { Console.WriteLine($@"ShiftOS version {Assembly.GetExecutingAssembly().GetName().Version.ToString()} Codepoints: {SaveSystem.CurrentSave.Codepoints} Upgrades: {SaveSystem.CurrentSave.CountUpgrades()} installed, {Shiftorium.GetAvailable().Length} available"); return(true); }
public static bool ListCategories() { foreach (var cat in Shiftorium.GetCategories()) { Console.WriteLine(Localization.Parse("{SHFM_CATEGORY}", new Dictionary <string, string> { ["%name"] = cat, ["%available"] = Shiftorium.GetAvailable().Where(x => x.Category == cat).Count().ToString() })); } return(true); }
public static bool Status() { string version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); string cp = SaveSystem.CurrentSave.Codepoints.ToString(); string installed = SaveSystem.CurrentSave.CountUpgrades().ToString(); string available = Shiftorium.GetAvailable().Length.ToString(); Console.WriteLine(Localization.Parse("{COM_STATUS}", new Dictionary <string, string> { ["%cp"] = cp, ["%version"] = version, ["%installed"] = installed, ["%available"] = available })); Console.WriteLine("{GEN_OBJECTIVES}"); try { if (Story.CurrentObjectives.Count > 0) { foreach (var obj in Story.CurrentObjectives) { Console.WriteLine(obj.Name); Console.WriteLine("-------------------------------"); Console.WriteLine(); Console.WriteLine(obj.Description); } } else { Console.WriteLine("{RES_NOOBJECTIVES}"); } } catch { Console.WriteLine("{RES_NOOBJECTIVES}"); } return(true); }
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); } }