コード例 #1
0
        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);
        }
コード例 #2
0
ファイル: Commands.cs プロジェクト: carverh/ShiftOS-1
        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);
            }
        }
コード例 #3
0
ファイル: Commands.cs プロジェクト: carverh/ShiftOS-1
        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);
            }
        }
コード例 #4
0
ファイル: Commands.cs プロジェクト: carverh/ShiftOS-1
        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);
        }
コード例 #5
0
 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);
 }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
            }
        }