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-----"); }
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-----"); }