private void CharacterDeserializer() { XmlSerializer serializer = new XmlSerializer(typeof(Characters)); try { using (FileStream fileStream = new FileStream(@"InputFiles\characters.xml", FileMode.Open)) { characters = (Characters)serializer.Deserialize(fileStream); } } catch (Exception) { SpecialMessage.ErrorMessage("InputFiles\\characters.xml not found! \n Program will exit!"); Environment.Exit(1); } }
static void Main() { SetWindowSize(); arena = new Arena(); while (true) { StartUpLogo(); errorGiven = false; byte option = MainSelectionMenu(); if (!errorGiven) { switch (option) { case 1: arena.PlanetSelector(); break; case 2: arena.VillainSelector(); break; case 3: arena.HeroSelector(); break; case 4: arena.AvangersTeam(); break; case 5: arena.FightMenu(); break; case 6: goto exit; default: SpecialMessage.ErrorMessage("No option of value: " + option + " found!"); break; } } } exit :; }
private void ShowAvengersTeam() { Console.WriteLine(); if (!avengersList.Any()) { SpecialMessage.ErrorMessage("There are no Heroes in the Avengers Team!"); } else { byte i = 1; foreach (Character character in avengersList) { ColorWriter.SpaceWrite("Yellow", i.ToString() + ")"); ColorWriter.SpaceWriteLine("Cyan", character.Name); i++; } } Console.ReadLine(); }
private static byte MainSelectionMenu() { ColorWriter.WriteLine("Yellow", " Main menu options: \n"); ColorWriter.SpaceWrite("Yellow", "Black", "1"); ColorWriter.SpaceWrite("Gray", "Select a"); ColorWriter.SpaceWriteLine("Cyan", "Planet"); if (arena.PlanetChecker() != null) { ColorWriter.SpaceWriteLine("Green", " \u00BB " + arena.PlanetChecker() + " selected!"); } else { Console.WriteLine(); } ColorWriter.SpaceWrite("Yellow", "Black", "2"); ColorWriter.SpaceWrite("Gray", "Select a"); ColorWriter.SpaceWriteLine("Cyan", "Villain"); if (arena.VillainChecker() != null) { ColorWriter.SpaceWriteLine("Green", " \u00BB " + arena.VillainChecker() + " selected!"); } else { Console.WriteLine(); } ColorWriter.SpaceWrite("Yellow", "Black", "3"); ColorWriter.SpaceWrite("Gray", "Select a"); ColorWriter.SpaceWriteLine("Cyan", "Hero"); if (arena.HeroChecker() != null) { ColorWriter.SpaceWriteLine("Green", " \u00BB " + arena.HeroChecker() + " selected!"); } else { Console.WriteLine(); } ColorWriter.SpaceWrite("Yellow", "Black", "4"); ColorWriter.SpaceWrite("Gray", "Build the"); ColorWriter.SpaceWriteLine("Cyan", "Avengers Team"); if (arena.AvengersChecker()) { ColorWriter.SpaceWriteLine("Green", " \u00BB Avengers Team assembled!"); } else { Console.WriteLine(); } ColorWriter.SpaceWrite("Yellow", "Black", "5"); ColorWriter.SpaceWrite("Gray", "Start the"); ColorWriter.SpaceWriteLine("Cyan", "Fight\n"); ColorWriter.SpaceWrite("Yellow", "Black", "6"); ColorWriter.SpaceWriteLine("Gray", "Exit"); ColorWriter.Write("Yellow", "\n Select an option (number) : "); byte option = 0; try { option = byte.Parse(Console.ReadLine()); } catch (Exception) { SpecialMessage.ErrorMessage("Wrong type of value given!\n Expected Byte!"); errorGiven = true; } return(option); }
private void CharacterVsCharacter(Character avatar1, Character avatar2, bool heroAttacksFirst) { Random random = new Random(); short damage; if (!loadingMessageShown) { loadingMessageShown = true; SpecialMessage.LoadingMessage("Selecting who has the first turn (at random)"); if (heroAttacksFirst) { ColorWriter.SpaceWriteLine("Gray", "The Hero attacks first!\n"); } else { ColorWriter.SpaceWriteLine("Gray", "The Villain attacks first!\n"); } System.Threading.Thread.Sleep(1000); } //avatar1 attacks avatar2 if (avatar2.Health > 0 && avatar1.Health > 0) { damage = (short)(avatar1.Attack * (random.Next(60, 101) / 100f)); ColorWriter.SpaceWrite("Cyan", avatar1.Name); ColorWriter.SpaceWrite("Gray", "attacks"); ColorWriter.SpaceWrite("Yellow", avatar2.Name); ColorWriter.SpaceWrite("Gray", "and deals"); ColorWriter.SpaceWrite("Magenta", damage.ToString()); ColorWriter.SpaceWriteLine("Gray", "points of damage"); avatar2.Health = (short)(avatar2.Health - damage); ColorWriter.Write("Yellow", "\n " + avatar2.Name); ColorWriter.SpaceWrite("Gray", "Hp ="); if (avatar2.Health > 0) { ColorWriter.SpaceWriteLine("Green", avatar2.Health + "\n"); } else { ColorWriter.SpaceWriteLine("Red", avatar2.Health + "\n"); } } if (avatar2.Health <= 0) { SpecialMessage.DefeatMessage(avatar2.Name + " was defeated!"); } else { System.Threading.Thread.Sleep(2000); } //avatar2 attacks avatar1 if (avatar2.Health > 0 && avatar1.Health > 0) { damage = (short)(avatar2.Attack * (random.Next(60, 101) / 100f)); ColorWriter.SpaceWrite("Yellow", avatar2.Name); ColorWriter.SpaceWrite("Gray", "attacks"); ColorWriter.SpaceWrite("Cyan", avatar1.Name); ColorWriter.SpaceWrite("Gray", "and deals"); ColorWriter.SpaceWrite("Magenta", damage.ToString()); ColorWriter.SpaceWriteLine("Gray", "points of damage"); avatar1.Health = (short)(avatar1.Health - damage); ColorWriter.Write("Cyan", "\n " + avatar1.Name); ColorWriter.SpaceWrite("Gray", "Hp ="); if (avatar1.Health > 0) { ColorWriter.SpaceWriteLine("Green", avatar1.Health + "\n"); } else { ColorWriter.SpaceWriteLine("Red", avatar1.Health + "\n"); } } if (avatar1.Health <= 0) { SpecialMessage.DefeatMessage(avatar1.Name + " was defeated!"); } else { System.Threading.Thread.Sleep(2000); } }
public void FightMenu() { loadingMessageShown = false; if (idSelectedPlanet != 0 && idSelectedVillain != 0) { IdToObject("Planet"); while (true) { Console.Clear(); ColorWriter.SpaceWriteLine("Yellow", "Black", "Fight Menu\n"); ColorWriter.SpaceWrite("Yellow", "Black", "1"); ColorWriter.SpaceWriteLine("Gray", "Villain vs Hero\n"); ColorWriter.SpaceWrite("Yellow", "Black", "2"); ColorWriter.SpaceWriteLine("Gray", "Villain vs Avengers\n"); ColorWriter.SpaceWrite("Yellow", "Select an option: "); byte option = 0; bool errorGiven = false; try { option = byte.Parse(Console.ReadLine()); } catch (Exception) { SpecialMessage.ErrorMessage("Wrong type of value given!\n Expected Byte"); errorGiven = true; } switch (option) { case 1: if (idSelectedHero != 0) { FightController(1); } else { SpecialMessage.ErrorMessage("No hero selected!"); } goto exit; case 2: if (avengersList.Any()) { FightController(2); } else { SpecialMessage.ErrorMessage("Avengers team empty!"); } goto exit; default: if (!errorGiven) { SpecialMessage.ErrorMessage("No option of value: " + option + " found!"); } break; } } } else { SpecialMessage.ErrorMessage("Please select a Planet and a Villain!"); } exit :; CharacterDeserializer(); AvengersRejuvenator(); Console.Clear(); }
private void OptionSelector(string dataName, bool multiple) { while (true) { ColorWriter.SpaceWriteLine("Yellow", "Black", dataName + " Selector\n"); bool errorGiven = false; if (dataName == "Planet") { foreach (Planet planet in planets.Planet) { ColorWriter.SpaceWrite("Yellow", "Black", planet.Id.ToString()); ColorWriter.SpaceWrite("Cyan", planet.Name + '\n'); ColorWriter.SpaceWriteLine("DarkGray", " \u2022 " + planet.Description); } } else { foreach (Character character in characters.Character) { if (character.IsVillain && dataName == "Villain") { ColorWriter.SpaceWrite("Yellow", "Black", character.Id.ToString()); ColorWriter.SpaceWrite("Cyan", character.Name + '\n'); ColorWriter.SpaceWriteLine("DarkGray", " \u2022 " + character.Description); } if (!character.IsVillain && dataName == "Hero") { ColorWriter.SpaceWrite("Yellow", "Black", character.Id.ToString()); ColorWriter.SpaceWrite("Cyan", character.Name + '\n'); ColorWriter.SpaceWriteLine("DarkGray", " \u2022 " + character.Description); } } } ColorWriter.Write("Yellow", "\n Select a " + dataName.ToLower() + " : "); byte idSelectedEntity = 0; try { idSelectedEntity = byte.Parse(Console.ReadLine()); } catch (Exception) { SpecialMessage.ErrorMessage("Wrong type of value given!\n Expected Byte"); errorGiven = true; } bool entityFound = false; if (dataName == "Planet") { foreach (Planet planet in planets.Planet) { if (planet.Id == idSelectedEntity) { entityFound = true; idSelectedPlanet = idSelectedEntity; } } } else { if (dataName == "Villain") { foreach (Character character in characters.Character) { if (character.Id == idSelectedEntity && character.IsVillain) { entityFound = true; idSelectedVillain = idSelectedEntity; } } } else { if (dataName == "Hero") { foreach (Character character in characters.Character) { if (character.Id == idSelectedEntity && !character.IsVillain) { entityFound = true; } } } } } if (entityFound) { while (true) { bool errorGiven2 = false; byte option = 0; if (dataName == "Planet") { Console.Clear(); PlanetDetails(); } else { if (dataName == "Villain") { CharacterDetails(idSelectedEntity); } else { if (dataName == "Hero") { CharacterDetails(idSelectedEntity); } } } ColorWriter.WriteLine("Yellow", "\n Options: \n"); ColorWriter.SpaceWrite("Yellow", "Black", "1"); if (dataName == "Hero" && multiple) { ColorWriter.SpaceWriteLine("Gray", "Add to the Avengers team\n"); } else { ColorWriter.SpaceWriteLine("Gray", "Confirm selected " + dataName.ToLower() + '\n'); } ColorWriter.SpaceWrite("Yellow", "Black", "2"); ColorWriter.SpaceWriteLine("Gray", "Go back to the selection menu"); if (dataName == "Hero" && multiple) { Console.WriteLine(); ColorWriter.SpaceWrite("Yellow", "Black", "3"); ColorWriter.SpaceWriteLine("Gray", "Show the Avengers team\n"); ColorWriter.SpaceWrite("Yellow", "Black", "4"); ColorWriter.SpaceWriteLine("Gray", "Clear the Avengers team\n"); ColorWriter.SpaceWrite("Yellow", "Black", "5"); ColorWriter.SpaceWriteLine("Gray", "Confirm Avengers Team"); } ColorWriter.Write("Yellow", "\n Select an option: "); try { option = byte.Parse(Console.ReadLine()); } catch (Exception) { SpecialMessage.ErrorMessage("Wrong type of value given!\n Expected Byte!"); errorGiven2 = true; } switch (option) { case 1: if (dataName == "Hero" && multiple) { AddHeroToAvengers(idSelectedEntity); } else { if (dataName == "Hero" && !multiple) { idSelectedHero = idSelectedEntity; } goto mainExit; } break; case 2: Console.Clear(); goto localExit; case 3: if (dataName == "Hero" && multiple) { ShowAvengersTeam(); } else { goto default; } break; case 4: if (dataName == "Hero" && multiple) { if (avengersList.Any()) { avengersList.Clear(); SpecialMessage.SuccessMessage("The Avengers team was cleared!"); } else { SpecialMessage.ErrorMessage("The Avengers team is already empty!"); } } else { goto default; } break; case 5: if (dataName == "Hero" && multiple) { goto mainExit; } else { goto default; } default: if (!errorGiven2) { SpecialMessage.ErrorMessage("No option of value = " + option + " was found"); } break; } } localExit :; } else { if (!errorGiven) { SpecialMessage.ErrorMessage("No " + dataName.ToLower() + " of id = " + idSelectedEntity + " was found"); } } } mainExit: Console.Clear(); }