Exemple #1
0
        static CardType CardTypeAssign(string playerCardTypeChoice, Archetype choice, string[] playerCardTypeChoiceArray, bool playerCardTypeChoiceRandom, out string playerCardTypeChoiceReturn)
        {
            Random   random = new Random();
            CardType card   = CardTypeChoice(playerCardTypeChoice, choice);

            if (playerCardTypeChoiceRandom == true)
            {
                int playerCardTypeChoiceLength = random.Next(0, playerCardTypeChoiceArray.Length);
                playerCardTypeChoice = (playerCardTypeChoiceArray[playerCardTypeChoiceLength]);
                card = CardTypeChoice(playerCardTypeChoice, choice);
            }
            playerCardTypeChoiceReturn = playerCardTypeChoice;
            return(card);
        }
Exemple #2
0
        static Archetype ArchetypeAssign(string playerChoice, string[] archetypeArray, bool playerChoiceRandom, out string playerChoiceReturn)
        {
            Random    random = new Random();
            Archetype choice = ArchetypeChoice(playerChoice);

            if (playerChoiceRandom == true)
            {
                int playerChoiceLength = random.Next(0, archetypeArray.Length);
                playerChoice = (archetypeArray[playerChoiceLength]);
                choice       = ArchetypeChoice(playerChoice);
            }
            playerChoiceReturn = playerChoice;
            return(choice);
        }
Exemple #3
0
        static string CardGeneration(CardType card, Archetype choice, Trigger trigger, string playerChoice, string playerCardTypeChoice, int genAmount)
        {
            Random random        = new Random();
            int    prefixLength  = random.Next(choice.prefix.Length);
            int    affixLength   = random.Next(card.affix.Length);
            int    effectsLength = random.Next(choice.effects.Length);

            Console.WriteLine();
            Console.WriteLine($"{playerChoice} {choice.prefix[prefixLength]} {card.affix[affixLength]} ({playerCardTypeChoice})");
            Console.WriteLine($"Cost: {card.points}");
            if (card.hp != 0)
            {
                Console.WriteLine($"Health: {card.hp}");
            }
            if (card.dm != 0)
            {
                Console.WriteLine($"Damage: {card.dm}");
            }
            if (card.eff != 0)
            {
                Console.WriteLine($"Effect Power: {Trigger.TriggerEffString} {choice.effects[effectsLength]} {card.eff}");
            }
            return($"{playerChoice} {choice.prefix[prefixLength]} {card.affix[affixLength]} ({playerCardTypeChoice})");
        }
Exemple #4
0
        static void Main(string[] args)
        {
            Random random = new Random();

            string[] archetypeArray            = new string[] { "Goblin", "Human", "Elf" };
            string[] playerCardTypeChoiceArray = new string[] { "RNA", "RA", "RE" };
            Trigger  trigger = new Trigger();

            do
            {
                int genAmount      = 1;
                int genAmountStore = 1;

                Console.WriteLine();
                Console.WriteLine("Please choose an archetype; Goblin, Human, Elf or Random.");
                string playerChoice = Console.ReadLine();

                bool stringValid = false;
                do
                {
                    stringValid = StringValid(playerChoice);
                    while (!stringValid)
                    {
                        Console.WriteLine("Please Choose Again: Goblin, Human, Elf or Random.");
                        playerChoice = Console.ReadLine();
                        stringValid  = StringValid(playerChoice);
                    }
                } while (!stringValid);
                bool playerChoiceRandom = playerChoice == "Random";

                Archetype choice = ArchetypeAssign(playerChoice, archetypeArray, playerChoiceRandom, out playerChoice);

                Console.WriteLine();
                Console.WriteLine("Please choose the card you wish to generate: RNA (Random No Abilities), RA (Random Abilities), RE (Random Effect) or RR (Random Card Type)");
                string playerCardTypeChoice = Console.ReadLine();

                bool cardTypeValid = false;
                do
                {
                    cardTypeValid = CardTypeValid(playerCardTypeChoice);
                    while (!cardTypeValid)
                    {
                        Console.WriteLine("Please Choose Again: RNA (Random No Abilities), RA (Random Abilities), RE (Random Effect) or RR (Random Card Type)");
                        playerCardTypeChoice = Console.ReadLine();
                        cardTypeValid        = CardTypeValid(playerCardTypeChoice);
                    }
                } while (!cardTypeValid);
                bool playerCardTypeChoiceRandom = playerCardTypeChoice == "RR";


                CardType card = CardTypeAssign(playerCardTypeChoice, choice, playerCardTypeChoiceArray, playerCardTypeChoiceRandom, out playerCardTypeChoice);

                Console.WriteLine("How many iterations would you like to generate of this card at once? (If just one, press 1)");
                string genAmountInput = Console.ReadLine();
                bool   genAmountTrue  = int.TryParse(genAmountInput, out genAmount);
                if (genAmount == 0)
                {
                    genAmount++;
                }
                genAmountStore = genAmount;
                Console.WriteLine($"Generating {genAmount} cards with current perameters.");

                Console.WriteLine($"Press Y to generate Card(s)");
                while (char.ToLower(Console.ReadKey().KeyChar) == 'y')
                {
                    for (genAmount = genAmountStore; genAmount > 0; genAmount--)
                    {
                        choice = ArchetypeAssign(playerChoice, archetypeArray, playerChoiceRandom, out playerChoice);
                        card   = CardTypeAssign(playerCardTypeChoice, choice, playerCardTypeChoiceArray, playerCardTypeChoiceRandom, out playerCardTypeChoice);
                        CardGeneration(card, choice, trigger, playerChoice, playerCardTypeChoice, genAmount);
                    }
                    Console.WriteLine("Press Y to generate with same settings");
                }
                Console.WriteLine("Press Y to start generator again");
            } while (char.ToLower(Console.ReadKey().KeyChar) == 'y');
        }
Exemple #5
0
        static CardType CardTypeChoice(string playerCardTypeChoice, Archetype choice)
        {
            Random random = new Random();

            CardType card = new CardType();

            switch (playerCardTypeChoice)
            {
            case "RNA":
                card.hp     = random.Next(choice.hpLow, choice.hpHigh);
                card.dm     = random.Next(choice.dmLow, choice.dmHigh);
                card.points = ((card.hp + card.dm) / 2);
                card.affix  = new string[] { "Runt", "Brute", "Soldier", "Peasant", "Hunter", "Agent", "Farmer", "Miner", "Tribal", "Mob", "Borg" };
                return(card);

            case "RA":
                card.hp     = random.Next(choice.hpLow, choice.hpHigh);
                card.dm     = random.Next(choice.dmLow, choice.dmHigh);
                card.eff    = random.Next(choice.effLow, choice.effHigh) / 3 * 2;
                card.points = ((card.hp + card.dm + card.eff) / 2);
                Trigger.TriggerEffString = "";
                card.effTrigger          = random.Next(0, 3);
                if (card.effTrigger == 1)
                {
                    Trigger.TriggerEffInt    = random.Next(Enum.GetNames(typeof(Trigger.TriggerEff)).Length);
                    Trigger.TriggerEffString = Trigger.TriggerDesc[Trigger.TriggerEffInt];
                    card.eff = (card.eff / 2);
                }
                while (card.eff == 0)
                {
                    card.eff++;
                }
                card.affix = new string[] { "Officer", "Crusader", "Marshal", "Captain", "Wizard", "Spellslinger", "Count", "Demon", "Fiend", "Imp", "Mage", "Witch", "Dryad" };
                return(card);

            case "RE":
                card.eff    = random.Next(choice.effLow, choice.effHigh) / 3 * 2;
                card.points = (card.eff / 2);
                Trigger.TriggerEffString = "";
                card.effTrigger          = random.Next(0, 2);
                if (card.effTrigger == 1)
                {
                    Trigger.TriggerEffInt    = random.Next(Enum.GetNames(typeof(Trigger.TriggerEff)).Length);
                    Trigger.TriggerEffString = Trigger.TriggerDesc[Trigger.TriggerEffInt];
                    card.eff = (card.eff / 3);
                    while (card.eff == 0 && card.points == 0)
                    {
                        card.eff++;
                        card.points++;
                    }
                    while (card.eff == 0)
                    {
                        card.eff++;
                    }
                }
                while (card.eff == 0)
                {
                    card.eff++;
                }
                card.affix = new string[] { "Bolt", "Chant", "Spell", "Trick", "Enchantment", "Essence", "Arc", "Rush", "Strike", "Gambit" };
                return(card);

            default:
                return(null);
            }
        }