static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); int counter = 0; List <BaseHero> heroes = new List <BaseHero>(); while (counter != n) { string name = Console.ReadLine(); string heroType = Console.ReadLine(); try { BaseHero hero = HeroFactory.Create(name, heroType); heroes.Add(hero); counter++; } catch (ArgumentException ae) { Console.WriteLine(ae.Message); } } int bossHelth = int.Parse(Console.ReadLine()); int damage = 0; foreach (var hero in heroes) { Console.WriteLine(hero.CastAbility()); damage += hero.Power; } if (damage >= bossHelth) { Console.WriteLine("Victory!"); } else { Console.WriteLine("Defeat..."); } }
public static void Main() { var heroFactory = new HeroFactory(); var raidGroup = new List <Hero>(); var numberOfRaidGroup = int.Parse(Console.ReadLine()); for (int i = 0; i < numberOfRaidGroup; i++) { var heroName = Console.ReadLine(); var heroType = Console.ReadLine(); var currentHero = heroFactory.CreateHero(heroType, heroName); if (currentHero == null) { Console.WriteLine("Invalid hero!"); i--; continue; } raidGroup.Add(currentHero); } if (int.TryParse(Console.ReadLine(), out int bossPower)) { foreach (var hero in raidGroup) { Console.WriteLine(hero.CastAbility()); } if (raidGroup.Sum(x => x.Power) >= bossPower) { Console.WriteLine("Victory!"); } else { Console.WriteLine("Defeat..."); } } }