Example #1
0
        public void LaunchEditor()
        {
            picked = false;
            while (!picked)
            {
                Console.Write("\nWelcome to the item editor.  NEW or LOAD file?  EXIT to exit.");
                choice = Console.ReadLine();
                if (Utility.NotBlank(choice))
                {
                    if (Utility.WordMatch(choice, "new", picked))
                    {
                        Console.Write("\nWhat file name?");
                        choice = Console.ReadLine();
                        if (Utility.NotBlank(choice))
                        {
                            filename  = choice;
                            filename += ".items";
                            if (File.Exists(filename))
                            {
                                Console.Write("\nFile " + filename + " already exists.  Overwrite?");
                                choice = Console.ReadLine();
                                if (Utility.WordMatch(choice, "yes", picked))
                                {
                                    items.Clear();
                                    items.Add(new Garlos.Item("True Lies DVD", "basic"));
                                    citem = items.Last();

                                    currentindex        = items.IndexOf(citem);
                                    citem.templateindex = currentindex;
                                    csaver.SaveItems(items, filename);
                                    Console.WriteLine("New file " + filename + " created.  Currently editing " + citem.name + " at index " + citem.templateindex);
                                    picked = true;
                                }
                                else
                                {
                                    Console.WriteLine("New file not created");
                                }
                            }
                            else
                            {
                                items.Clear();
                                items.Add(new Garlos.Item("True Lies DVD", "basic"));
                                citem = items.Last();

                                currentindex        = items.IndexOf(citem);
                                citem.templateindex = currentindex;
                                csaver.SaveItems(items, filename);
                                Console.WriteLine("New file " + filename + " created.  Currently editing " + citem.name + " at index " + citem.templateindex);
                                picked = true;
                            }
                        }
                        else
                        {
                            Console.WriteLine("No file selected");
                        }
                    }
                    if (Utility.WordMatch(choice, "load", picked))
                    {
                        Console.Write("\nWhat file name?");
                        choice = Console.ReadLine();
                        if (Utility.NotBlank(choice))
                        {
                            filename  = choice;
                            filename += ".items";
                            if (File.Exists(filename))
                            {
                                try
                                {
                                    items        = csaver.LoadItems(items, filename);
                                    citem        = items.First();
                                    currentindex = items.IndexOf(citem);
                                    Console.WriteLine("Creature file " + filename + " loaded.  Currently editing " + citem.name + " at index " + citem.templateindex);
                                    picked = true;
                                }
                                catch
                                {
                                    Console.WriteLine(filename + " is not a valid item file!");
                                }
                            }
                            else
                            {
                                Console.WriteLine("File " + filename + " does not exist");
                            }
                        }
                    }
                    if (Utility.WordMatch(choice, "exit", picked))
                    {
                        picked = true;
                    }
                }
            }
        }
Example #2
0
        public void MainMenu()
        {
            finished = false;
            while (!finished)
            {
                DisplayDeets();
                choice = Console.ReadLine();
                picked = false;
                if (Utility.NotBlank(choice))
                {
                    if (Utility.WordMatch(choice, "done", picked))
                    {
                        File.Delete(filename);
                        csaver.SaveCreatures(creatures, filename);
                        Console.WriteLine(filename + " saved.");
                        picked   = true;
                        finished = true;
                    }
                    if (Utility.WordMatch(choice, "next", picked) || Utility.WordMatch(choice, "forward", picked) || Utility.WordMatch(choice, ".", picked) || Utility.WordMatch(choice, ">", picked))
                    {
                        valuew = creatures.IndexOf(ccreature) + 1;
                        if (creatures.ElementAtOrDefault(valuew) != null)
                        {
                            ccreature    = creatures.ElementAt(valuew);
                            currentindex = valuew;

                            Console.WriteLine("Switching to next creature, index " + valuew);
                        }
                        else
                        {
                            Console.WriteLine("No more creatures.");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "name", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            ccreature.name = keyw;
                            Console.WriteLine("Creatures name changed to " + keyw);
                        }
                        else
                        {
                            Console.WriteLine("No name specified");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "faction", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            ccreature.faction = keyw;
                            Console.WriteLine("Creatures faction changed to " + keyw);
                        }
                        else
                        {
                            Console.WriteLine("No name specified");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "description", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            ccreature.description = keyw;
                            Console.WriteLine("Creatures description changed to " + keyw);
                        }
                        else
                        {
                            Console.WriteLine("No description specified");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "hostile", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Utility.WordMatch(keyw, "true", picked))
                            {
                                ccreature.hostile = true;
                                Console.WriteLine("Creature set to hostile");
                            }
                            else if (Utility.WordMatch(keyw, "false", picked))
                            {
                                ccreature.hostile = false;
                                Console.WriteLine("Creature set to passive");
                            }
                            else
                            {
                                Console.WriteLine("Invalid selection (use true/false)");
                            }
                        }
                        else
                        {
                            Console.WriteLine("Invalid selection");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "equip", picked))
                    {
                        if (citem != null)
                        {
                            ccreature.citems.Add(citem);
                        }
                        else
                        {
                            Console.WriteLine("No item");
                        }
                    }
                    if (Utility.WordMatch(choice, "remove", picked))
                    {
                        string
                            keyw = Utility.GetKeyWord(choice);
                        keyw.ToLower();
                        if (ccreature.citems.Find(x => x.name.ToLower().Contains(keyw)) != null)
                        {
                            ccreature.citems.Remove(ccreature.citems.Find(x => x.name.ToLower().Contains(keyw)));
                            Console.WriteLine("Item Removed");
                        }
                        else
                        {
                            Console.WriteLine("Creature not carrying an item by that name");
                        }
                    }
                    if (Utility.WordMatch(choice, "[", picked) || Utility.WordMatch(choice, "{", picked))
                    {
                        if (citem != null)
                        {
                            valuei = items.IndexOf(citem) - 1;
                            if (items.ElementAtOrDefault(valuei) != null)
                            {
                                citem     = items.ElementAt(valuei);
                                itemindex = valuei;

                                Console.WriteLine("Switching to previous item, index " + valuei);
                            }
                            else
                            {
                                Console.WriteLine("No more items.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No item file");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "]", picked) || Utility.WordMatch(choice, "}", picked))
                    {
                        if (citem != null)
                        {
                            valuei = items.IndexOf(citem) + 1;
                            if (items.ElementAtOrDefault(valuei) != null)
                            {
                                citem     = items.ElementAt(valuei);
                                itemindex = valuei;

                                Console.WriteLine("Switching to next item, index " + valuei);
                            }
                            else
                            {
                                Console.WriteLine("No more items.");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No item file");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "ifile", picked) || Utility.WordMatch(choice, "itemfile", picked))
                    {
                        if (Utility.NotBlank(Utility.GetKeyWord(choice)))
                        {
                            itemfile  = Utility.GetKeyWord(choice);
                            itemfile += ".items";
                        }
                        else
                        {
                            Console.Write("\nWhat item file will you load?");
                            itemfile  = Console.ReadLine();
                            itemfile += ".items";
                        }

                        if (File.Exists(itemfile))
                        {
                            try
                            {
                                items     = csaver.LoadItems(items, itemfile);
                                citem     = items.First();
                                itemindex = items.IndexOf(citem);
                                Console.WriteLine("Item file " + itemfile + " loaded.  Currently viewing " + citem.name + " at index " + citem.templateindex);
                                picked = true;
                            }
                            catch
                            {
                                Console.WriteLine(itemfile + " is not a valid item file!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("File " + itemfile + " does not exist");
                        }
                    }
                    if (Utility.WordMatch(choice, "attributes", picked))
                    {
                        string newat;
                        int    newvalue;
                        while (!Utility.WordMatch(choice, "2", false))
                        {
                            ccreature.DisplayAttributes();
                            Console.WriteLine("Enter new attribute (attribute #), '1' to clear or '2' for done");
                            choice = Console.ReadLine();
                            if (Utility.WordMatch(choice, "1", picked))
                            {
                                ccreature.cattributes.Clear();
                            }
                            else
                            {
                                if (Utility.NotBlank(choice))
                                {
                                    newat = Utility.GetFirstWord(choice);
                                    keyw  = Utility.GetKeyWord(choice);
                                    if (Utility.NotBlank(keyw) && Int32.TryParse(keyw, out newvalue))
                                    {
                                        Console.WriteLine("Adding attribute " + newat + " with value " + newvalue);
                                        ccreature.cattributes.Add(new CreatureAttribute(newat, newvalue));
                                    }
                                    else
                                    {
                                        Console.WriteLine("No value assigned or value not numeric");
                                    }
                                }
                                else
                                {
                                    Console.WriteLine("Please make a selection");
                                }
                            }
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "help", picked))
                    {
                        Console.WriteLine("level = change creature level");
                        Console.WriteLine("name = change creature name");
                        Console.WriteLine("description = change creature description");
                        Console.WriteLine("hp = change creature hp");
                        Console.WriteLine("gold = change creature gold");
                        Console.WriteLine("exp = change creature exp");
                        Console.WriteLine("damage = change creature damage");
                        Console.WriteLine("defense = change creature defense");
                        Console.WriteLine("attributes = change creature attributes");
                    }
                    if (Utility.WordMatch(choice, "level", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                ccreature.level = valuew;
                                Console.WriteLine("Creatures level set to " + valuew);
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "hp", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                ccreature.hp    = valuew;
                                ccreature.maxhp = valuew;
                                Console.WriteLine("Creatures hp set to " + valuew);
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "damage", picked) || Utility.WordMatch(choice, "attack", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                ccreature.attack = valuew;
                                Console.WriteLine("Creatures attack set to " + valuew);
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }

                    if (Utility.WordMatch(choice, "defense", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                ccreature.defense = valuew;
                                Console.WriteLine("Creatures defense set to " + valuew);
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "gold", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                ccreature.gold = valuew;
                                Console.WriteLine("Creatures gold set to " + valuew);
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "exp", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                ccreature.exp = valuew;
                                Console.WriteLine("Creatures experience reward set to " + valuew);
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "index", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            if (Int32.TryParse(keyw, out valuew))
                            {
                                if (creatures.ElementAtOrDefault(valuew) != null)
                                {
                                    ccreature    = creatures.ElementAt(valuew);
                                    currentindex = valuew;

                                    Console.WriteLine("Switching to creature at index " + valuew);
                                }
                                else
                                {
                                    Console.WriteLine("No creature at that index");
                                }
                            }
                            else
                            {
                                Console.WriteLine("Not a valid number!");
                            }
                        }
                        else
                        {
                            Console.WriteLine("No value entered!");
                        }
                        picked = true;
                    }

                    if (Utility.WordMatch(choice, "new", picked))
                    {
                        creatures.Add(new Creature());
                        ccreature = creatures.Last();

                        currentindex            = creatures.IndexOf(ccreature);
                        ccreature.templateindex = currentindex;
                        Console.WriteLine("New creature created at index " + currentindex);
                        picked = true;
                    }

                    if (Utility.WordMatch(choice, "last", picked) || Utility.WordMatch(choice, "previous", picked) || Utility.WordMatch(choice, "back", picked) || Utility.WordMatch(choice, ",", picked) || Utility.WordMatch(choice, "<", picked))
                    {
                        valuew = creatures.IndexOf(ccreature) - 1;
                        if (creatures.ElementAtOrDefault(valuew) != null)
                        {
                            ccreature    = creatures.ElementAt(valuew);
                            currentindex = valuew;

                            Console.WriteLine("Switching to previous creature, index " + valuew);
                        }
                        else
                        {
                            Console.WriteLine("No more creatures.");
                        }
                        picked = true;
                    }
                    if (Utility.WordMatch(choice, "save", picked))
                    {
                        keyw = Utility.GetKeyWord(choice);
                        if (Utility.NotBlank(keyw))
                        {
                            tryfile  = keyw;
                            tryfile += ".creatures";
                            if (File.Exists(tryfile))
                            {
                                Console.Write("\nFile " + tryfile + " already exists.  Overwrite?");
                                choice = Console.ReadLine();
                                if (Utility.WordMatch(choice, "yes", picked))
                                {
                                    File.Delete(tryfile);
                                    csaver.SaveCreatures(creatures, tryfile);
                                    Console.WriteLine("New file " + tryfile + " overwritten.");
                                }
                                else
                                {
                                    Console.WriteLine("File not saved.");
                                }
                            }
                            else
                            {
                                csaver.SaveCreatures(creatures, tryfile);
                                Console.WriteLine("New file " + tryfile + " created.");
                                filename = tryfile;
                            }
                        }
                        else
                        {
                            File.Delete(filename);
                            csaver.SaveCreatures(creatures, filename);
                            Console.WriteLine(filename + " overwritten.");
                        }
                        picked = true;
                    }
                }

                Console.Write("\n");
            }
        }