Пример #1
0
        private void CreateArmor()
        {
            //member class variables
            Program pro = new Program();

            //display selection
            Console.WriteLine("\r\nCREATE ARMOR");
            pro.PrintLine();

            //ask for helmet or chestpiece
            Console.WriteLine("\r\n1. Helmet\r\n2. Chestpiece");
            Console.WriteLine("\r\nPlease enter the number of the type of armor you would like to create:");

            //validate
            String armorType = Console.ReadLine();

            armorType.Trim();

            while (armorType != "1" && armorType != "2")
            {
                //ERROR: not valid
                Console.WriteLine("\r\nOnly enter a valid number.\r\nPlease enter the number type of the armor you would like to create:");
                armorType = Console.ReadLine();
            }

            //enter armor defense
            Console.WriteLine("\r\nPlease enter the armor's defense:");

            //capture response
            String armorDefense = Console.ReadLine();
            int    armorDefenseInt;

            //validate
            while (string.IsNullOrWhiteSpace(armorDefense) || !int.TryParse(armorDefense, out armorDefenseInt))
            {
                //ERROR: empty
                Console.WriteLine("\r\nOnly enter valid whole numbers.\r\nPlease enter the weapon's attack:");
                //capture new response
                armorDefense = Console.ReadLine();
            }

            if (armorType == "1")
            {
                //armor is helmet
                IEquippable newHelmet = new Helmet(armorDefenseInt);
                //add to list
                mainCharacter.Equippables.Add(newHelmet);
            }
            else
            {
                //armor is chestpiece
                IEquippable newChestpiece = new Chestpiece(armorDefenseInt);
                //add to list
                mainCharacter.Equippables.Add(newChestpiece);
            }

            //print out update
            Console.WriteLine("\r\n-----ARMOR ADDED TO INVENTORY-----");
        }
Пример #2
0
        private void EquipItem()
        {
            //verify that there are equippables
            if (!mainCharacter.Equippables.Any())
            {
                //no equippables
                Console.WriteLine("\r\n *** There are no items in the inventory.\r\n *** Please create a weapon or armor.");
                return;
            }
            //member class variables
            Program pro = new Program();

            //display selection
            Console.WriteLine("\r\nEQUIP AN ITEM");
            pro.PrintLine();

            Console.WriteLine("\r\nAVAILABLE INVENTORY");
            pro.PrintLine();

            //index counter
            int counter = 0;

            //print items
            foreach (IEquippable item in mainCharacter.Equippables)
            {
                if (item is Weapon)
                {
                    Console.WriteLine(counter + ". [WEAPON] attack: " + item.Attack);
                }

                if (item is Helmet)
                {
                    Console.WriteLine(counter + ". [ARMOR - HELMET] defense: " + item.Defense);
                }

                if (item is Chestpiece)
                {
                    Console.WriteLine(counter + ". [ARMOR - CHESTPIECE] defense: " + item.Defense);
                }

                //update counter
                counter++;
            }

            //enter item number to equip
            Console.WriteLine("\r\nEnter the number for the item you would like to equip:");

            //capture user input
            String userSelection = Console.ReadLine();
            int    userSelectionInt;

            //validate number
            while (!int.TryParse(userSelection, out userSelectionInt) || userSelectionInt > counter - 1 || userSelectionInt < 0)
            {
                //error not on list
                Console.WriteLine("\r\nOnly enter numbers from the list.\r\nEnter the number for the item you would like to equip:");
                userSelection = Console.ReadLine();
            }

            //remove new item from inventory
            IEquippable choosenItem = mainCharacter.Equippables[userSelectionInt];

            mainCharacter.Equippables.Remove(choosenItem);

            //check type
            if (choosenItem is Weapon)
            {
                //remove current equipped weapon
                if (mainCharacter.CurrentWeapon != null)
                {
                    //move it back to inventory
                    mainCharacter.Equippables.Add(mainCharacter.CurrentWeapon);
                }
                //add choosen item to equipped weapon
                choosenItem.Equip(mainCharacter);
            }
            else if (choosenItem is Helmet)
            {
                //remove current helmet from dictionary
                if (mainCharacter.Armors != null && mainCharacter.Armors.ContainsKey("helmet"))
                {
                    //assign to variable
                    Armor removedItem;
                    mainCharacter.Armors.TryGetValue("helmet", out removedItem);

                    //remove and add to inventory
                    mainCharacter.Armors.Remove("helmet");

                    //add it back to inventory as helmet
                    Helmet newHelmet = (Helmet)removedItem;
                    mainCharacter.Equippables.Add(newHelmet);
                }
                //add choose item to dictionary
                Armor newArmor = (Armor)choosenItem;
                newArmor.Equip(mainCharacter);
            }
            else if (choosenItem is Chestpiece)
            {
                //remove current chestpiece from dictionary
                if (mainCharacter.Armors != null && mainCharacter.Armors.ContainsKey("chestpiece"))
                {
                    //assign to variable
                    Armor removedItem;
                    mainCharacter.Armors.TryGetValue("chestpiece", out removedItem);

                    //remove and add to inventory
                    mainCharacter.Armors.Remove("chestpiece");

                    //add it back to inventory as chestpiece
                    Chestpiece newChestpiece = (Chestpiece)removedItem;
                    mainCharacter.Equippables.Add(newChestpiece);
                }
                //add choose item to dictionary
                Armor newArmor = (Armor)choosenItem;
                newArmor.Equip(mainCharacter);
            }

            //display change to user
            Console.WriteLine("\r\n-----USER UPDATED-----");
        }