public void BehemothWins(Hunter hunter)
 {
     if (hunter.health < 0)
     {
         Console.WriteLine("Devastatation!");
     }
     Console.WriteLine($"YOU HAVE LOST! Behemoth slained {hunter.GetType().Name}");
 }
        public void Attack(Hunter hunter, IBehemoth behemoth)
        {
            while (hunter.health > 0 && behemoth.health > 0)
            {
                Console.WriteLine("Pick 1-4 options: \n 1 - Meele Weapon Attack\n 2 - Range Weapon\n 3 - Desperate Meele Attack \n 4 - Desperate Range Attack ");
                string pick = Console.ReadLine();


                if (pick == "")
                {
                    Console.WriteLine("Enter options from 1 - 4: ");
                }
                else
                {
                    switch (pick)
                    {
                    case "1":
                        hunter.MeleeWeaponAttack(meleeWeapon, behemoth.BehemothType);
                        behemoth.health -= 20;
                        HuntStatus(hunter, behemoth);
                        break;

                    case "2":
                        behemoth.BehemothBreath();
                        hunter.RangeWeaponMiss(rangeWeapon, behemoth.BehemothType);
                        hunter.health -= 10;
                        HuntStatus(hunter, behemoth);
                        break;

                    case "3":
                        behemoth.BehemothStomp();
                        hunter.MeleeWeaponMiss(meleeWeapon, behemoth.BehemothType);
                        hunter.health -= 15;
                        HuntStatus(hunter, behemoth);
                        break;

                    case "4":
                        hunter.RangeWeaponAttack(rangeWeapon, behemoth.BehemothType);
                        behemoth.health -= 30;
                        behemoth.BehemothStomp();
                        hunter.health -= 15;
                        HuntStatus(hunter, behemoth);
                        break;


                    default:
                        Console.WriteLine("Enter options from 1 - 4: ");
                        break;
                    }
                }
            }
        }
 public void HuntResult(Hunter hunter, IBehemoth behemoth)
 {
     if (hunter.health <= 0 && behemoth.health <= 0)
     {
         Console.WriteLine($"Hunter and Behemoth died of injuries!");
     }
     else if (hunter.health <= 0)
     {
         BehemothWins(hunter);
     }
     else
     {
         HunterWins(behemoth);
     }
 }
        static void Main(string[] args)
        {
            IMeleeWeapon MeleeWeapon = Generator.MeleeWeapon();

            IRangeWeapon RangeWeapon = Generator.RangeWeapon();

            // Constructor DI
            Hunter hunter = Generator.MakeHunter(MeleeWeapon, RangeWeapon);
            GearUp gearUp = Generator.ReadyGearUp();

            gearUp.HuntGearUp();

            IBehemoth behemoth = Generator.MakeBehemoth(gearUp.behemothType);

            IHunt Hunt = Generator.Hunt(gearUp.meleeWeapon, gearUp.rangeWeapon);

            Hunt.Attack(hunter, behemoth);

            Hunt.HuntResult(hunter, behemoth);

            Console.ReadKey();
        }
 public void HuntStatus(Hunter hunter, IBehemoth behemoth)
 {
     Console.WriteLine($"|Hunter HP: {hunter.health} using meele weapon: {meleeWeapon}\n& range weapon: {rangeWeapon} \n|Behemoth HP: {behemoth.health}");
 }