protected void rollLastNameButton_Click(object sender, EventArgs e)
    {
        if (HttpRuntime.Cache.Get("names") == null)
        {
            CacheLoader.loadRandomTables();
        }
        Dictionary <String, NameTable> names = (Dictionary <String, NameTable>)HttpRuntime.Cache.Get("names");

        String name = null;

        if (raceDropDown.SelectedValue == "Human")
        {
            name = names["humanNames"].getLastName();
        }
        else if (raceDropDown.SelectedValue == "Elven")
        {
            name = names["elvenNames"].getLastName();
        }
        else if (raceDropDown.SelectedValue == "Dwarven")
        {
            name = names["dwarvenNames"].getLastName();
        }
        else if (raceDropDown.SelectedValue == "Halfling")
        {
            name = names["halflingNames"].getLastName();
        }
        else if (raceDropDown.SelectedValue == "Gnomish")
        {
            name = names["gnomishNames"].getLastName();
        }
        else if (raceDropDown.SelectedValue == "Gnoll")
        {
            name = names["gnollNames"].getLastName();
        }

        if (name != null)
        {
            lastNameTextBox.Text = name;
        }
    }
    //----------------------------------------------------------------------------//
    //                   SHOP GENERATION PRIVATE METHODS
    //----------------------------------------------------------------------------//


    //Generates items from the Common Magic Item Tables
    private void generateCommonShop(int core = 10, int wonderous = 1)
    {
        if (HttpRuntime.Cache.Get("items") == null)
        {
            CacheLoader.loadRandomTables();
        }
        MagicItemTable magicItemsTable = (MagicItemTable)HttpRuntime.Cache.Get("items");

        for (int i = 0; i < core; i++)
        {
            MagicItem item = magicItemsTable.getItem("A");
            item.Shop = shop;
            shop.Items.Add(item, Color.White);
            itemTable.addRow(item, Color.White);
        }
        for (int i = 0; i < wonderous; i++)
        {
            MagicItem item = magicItemsTable.getItem("F");
            item.Shop = shop;
            shop.Items.Add(item, Color.White);
            itemTable.addRow(item, Color.White);
        }
    }
    //Generates items from the Legendary Magic Item Tables
    private void generateLegendaryShop(int core = 4, int wonderous = 2)
    {
        if (HttpRuntime.Cache.Get("items") == null)
        {
            CacheLoader.loadRandomTables();
        }
        MagicItemTable magicItemsTable = (MagicItemTable)HttpRuntime.Cache.Get("items");

        for (int i = 0; i < core; i++)
        {
            MagicItem item = magicItemsTable.getItem("E");
            item.Shop = shop;
            shop.Items.Add(item, Color.White);
            itemTable.addRow(item, Color.White);
        }
        for (int i = 0; i < wonderous; i++)
        {
            MagicItem item = magicItemsTable.getItem("I");
            item.Shop = shop;
            shop.Items.Add(item, Color.White);
            itemTable.addRow(item, Color.White);
        }
        generateVeryRareShop(3, 2);
    }
    protected void rollFullNameButton_Click(object sender, EventArgs e)
    {
        if (HttpRuntime.Cache.Get("names") == null)
        {
            CacheLoader.loadRandomTables();
        }
        Dictionary <String, NameTable> names = (Dictionary <String, NameTable>)HttpRuntime.Cache.Get("names");

        String[] name = null;
        if (raceDropDown.Text == "Human" && sexDropDown.Text == "Male")
        {
            name = names["humanNames"].getMaleFullName();
        }
        else if (raceDropDown.Text == "Human" && sexDropDown.Text == "Female")
        {
            name = names["humanNames"].getFemaleFullName();
        }
        else if (raceDropDown.Text == "Elven" && sexDropDown.Text == "Male")
        {
            name = names["elvenNames"].getMaleFullName();
        }
        else if (raceDropDown.Text == "Elven" && sexDropDown.Text == "Female")
        {
            name = names["elvenNames"].getFemaleFullName();
        }
        else if (raceDropDown.Text == "Dwarven" && sexDropDown.Text == "Male")
        {
            name = names["dwarvenNames"].getMaleFullName();
        }
        else if (raceDropDown.Text == "Dwarven" && sexDropDown.Text == "Female")
        {
            name = names["dwarvenNames"].getFemaleFullName();
        }
        else if (raceDropDown.Text == "Halfling" && sexDropDown.Text == "Male")
        {
            name = names["halflingNames"].getMaleFullName();
        }
        else if (raceDropDown.Text == "Halfling" && sexDropDown.Text == "Female")
        {
            name = names["halflingNames"].getFemaleFullName();
        }
        else if (raceDropDown.Text == "Gnomish" && sexDropDown.Text == "Male")
        {
            name = names["gnomishNames"].getMaleFullName();
        }
        else if (raceDropDown.Text == "Gnomish" && sexDropDown.Text == "Female")
        {
            name = names["gnomishNames"].getFemaleFullName();
        }
        else if (raceDropDown.Text == "Gnoll" && sexDropDown.Text == "Male")
        {
            name = names["gnollNames"].getMaleFullName();
        }
        else if (raceDropDown.Text == "Gnoll" && sexDropDown.Text == "Female")
        {
            name = names["gnollNames"].getFemaleFullName();
        }

        if (name != null)
        {
            firstNameTextBox.Text = name[0];
            lastNameTextBox.Text  = name[1];
        }
    }
Esempio n. 5
0
    //Randomly gets a magic item from the appropriate Item Table, and assigns spells to any scrolls
    public MagicItem getItem(String letter)
    {
        MagicItem item;

        if (letter == "A")
        {
            item = magicItemTableA.ElementAt(random.Next(magicItemTableA.Length));
        }
        else if (letter == "B")
        {
            item = magicItemTableB.ElementAt(random.Next(magicItemTableB.Length));
        }
        else if (letter == "C")
        {
            item = magicItemTableC.ElementAt(random.Next(magicItemTableC.Length));
        }
        else if (letter == "D")
        {
            item = magicItemTableD.ElementAt(random.Next(magicItemTableD.Length));
        }
        else if (letter == "E")
        {
            item = magicItemTableE.ElementAt(random.Next(magicItemTableE.Length));
        }
        else if (letter == "F")
        {
            item = magicItemTableF.ElementAt(random.Next(magicItemTableF.Length));
        }
        else if (letter == "G")
        {
            item = magicItemTableG.ElementAt(random.Next(magicItemTableG.Length));
        }
        else if (letter == "H")
        {
            item = magicItemTableH.ElementAt(random.Next(magicItemTableH.Length));
        }
        else if (letter == "I")
        {
            item = magicItemTableI.ElementAt(random.Next(magicItemTableI.Length));
        }
        else
        {
            item              = new MagicItem();
            item.Name         = "ERROR";
            item.Rarity       = "ERROR";
            item.Value        = 0;
            item.MaximumValue = 0;
            item.MinimumValue = 0;
        }

        //Make a copy of the item so any changes dont mess with the table
        MagicItem itemCopy = new MagicItem();

        itemCopy.Name         = item.Name;
        itemCopy.Rarity       = item.Rarity;
        itemCopy.Value        = item.Value;
        itemCopy.MaximumValue = item.MaximumValue;
        itemCopy.MinimumValue = item.MinimumValue;

        //If grabbed item is a scroll, determine its level then acquire a random spell of that level and append the spell name to the item
        if (itemCopy.Name.Contains("scroll"))
        {
            int level = 0;

            //Check for #, which will be the spell lvl
            foreach (Char c in itemCopy.Name)
            {
                if (Int32.TryParse(Char.ToString(c), out int spellLvl))
                {
                    level = spellLvl;
                }
            }

            if (HttpRuntime.Cache.Get("spells") == null)
            {
                CacheLoader.loadRandomTables();
            }
            SpellTable spellsTable = (SpellTable)HttpRuntime.Cache.Get("spells");

            //Grab a random spell of the appropriate level and add to name
            itemCopy.Name += $" of {spellsTable.getRandomSpell(level)}";
        }

        return(itemCopy);
    }