Exemplo n.º 1
0
 public Engine()
 {
     this.heroes      = new List <BaseHero>();
     this.heroFactory = new HeroFactory();
     this.reader      = new Reader();
     this.writer      = new Writer();
 }
Exemplo n.º 2
0
        public Engine(IReader reader, IWriter writer)
        {
            this.reader = reader;
            this.writer = writer;

            this.heroes      = new List <IBaseHero>();
            this.heroFactory = new HeroFactory();
        }
Exemplo n.º 3
0
        public void Run()
        {
            IHeroFactory heroFactory = new HeroFactory();
            IHero        hero        = null;
            List <IHero> heroes      = new List <IHero>();
            int          raidPower   = 0;

            int n = int.Parse(Console.ReadLine());

            for (int i = 0; i < n; i++)
            {
                string name = Console.ReadLine();
                string type = Console.ReadLine();

                try
                {
                    hero = heroFactory.MakeHero(type, name);
                    heroes.Add(hero);
                }
                catch (ArgumentException e)
                {
                    Console.WriteLine(e.Message);
                    i--;
                }
            }

            int bossPower = int.Parse(Console.ReadLine());

            foreach (var her in heroes)
            {
                Console.WriteLine(her.CastAbility());
                raidPower += her.Power;
            }

            if (raidPower >= bossPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
Exemplo n.º 4
0
        public void Run()
        {
            int         n       = int.Parse(Console.ReadLine());
            HeroFactory factory = new HeroFactory();
            BaseHero    hero    = null;
            int         count   = 0;

            while (count < n)
            {
                var heroname = Console.ReadLine();
                var herotype = Console.ReadLine();
                try
                {
                    hero = factory.CreateHero(heroname, herotype);
                    heroes.Add(hero);
                    count++;
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.Message);
                }
            }
            int bosshealth = int.Parse(Console.ReadLine());
            int totalpower = 0;

            foreach (var item in heroes)
            {
                Console.WriteLine(item.CastAbility());
                totalpower += item.Power;
            }
            if (totalpower >= bosshealth)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
Exemplo n.º 5
0
        public void Run()
        {
            int heroesCont = int.Parse(Console.ReadLine());

            while (heroesCont != heroes.Count)
            {
                string heroName = Console.ReadLine();
                string heroType = Console.ReadLine();

                BaseHero hero = null;
                try
                {
                    hero = HeroFactory.CreateHero(heroName, heroType);
                    heroes.Add(hero);
                }
                catch (IvalidWariorException ex)
                {
                    Console.WriteLine(ex.Message);
                }
            }
            int bossPower = int.Parse(Console.ReadLine());

            foreach (var hero in heroes)
            {
                Console.WriteLine(hero.CastAbility());
            }
            int powerSum = heroes.Sum(x => x.Power);

            if (powerSum >= bossPower)
            {
                Console.WriteLine("Victory!");
            }
            else
            {
                Console.WriteLine("Defeat...");
            }
        }
Exemplo n.º 6
0
 public Engine()
 {
     this.heroFactory = new HeroFactory();
     this.heroes      = new List <IHero>();
 }
Exemplo n.º 7
0
 public Engine()
 {
     heroFactory = new HeroFactory();
 }
Exemplo n.º 8
0
 public Engine()
 {
     hero        = null;
     heroFactory = new HeroFactory();
     raid        = new List <IHero>();
 }
 public Engine()
 {
     heroes      = new List <BaseHero>();
     heroFactory = new HeroFactory();
 }
Exemplo n.º 10
0
 public Engine()
 {
     this.raidGroup   = new List <BaseHero>();
     this.heroFactory = new HeroFactory();
 }
Exemplo n.º 11
0
        public void Run()
        {
            HeroFactory factory = null;

            int             heroCount = 0;
            List <BaseHero> Heroes    = new List <BaseHero>();

            int N = int.Parse(reader.ReadLine());

            while (heroCount < N)
            {
                string heroName = reader.ReadLine();
                string heroType = reader.ReadLine();

                try
                {
                    switch (heroType)
                    {
                    case "Druid":
                        factory = new DruidFactory(heroName);
                        break;

                    case "Paladin":
                        factory = new PaladinFactory(heroName);
                        break;

                    case "Rogue":
                        factory = new RogueFactory(heroName);
                        break;

                    case "Warrior":
                        factory = new WarriorFactory(heroName);
                        break;

                    default:
                        throw new InvalidHeroException();
                    }
                    Heroes.Add(factory.GetBaseHero());
                    heroCount++;
                }
                catch (InvalidHeroException ihe)
                {
                    writer.WriteLine(ihe.Message);
                }
            }

            int bossPower  = int.Parse(reader.ReadLine());
            int totalPower = 0;

            foreach (var hero in Heroes)
            {
                writer.WriteLine(hero.CastAbility());
                totalPower += hero.Power;
            }

            if (totalPower >= bossPower)
            {
                writer.WriteLine("Victory!");
            }
            else
            {
                writer.WriteLine("Defeat...");
            }
        }