Пример #1
0
        static void Main(string[] args)
        {   //sons
            Char   som = new Char();
            string dramatic, knight, wizard, rosh, sad, victory;

            dramatic = som.FilesPath("Dramatic Event Sound Effect.wav");
            knight   = som.FilesPath("KNİGHT 1.wav");
            wizard   = som.FilesPath("İCE WİZARD 4.wav");
            rosh     = som.FilesPath("Roshan_Slam.wav");
            sad      = som.FilesPath("sad violin-[AudioTrimmer.com].wav");
            victory  = som.FilesPath("Duel_victory (online-audio-converter.com).wav");

            SoundPlayer simpleSound  = new SoundPlayer(dramatic);
            SoundPlayer heroAttack   = new SoundPlayer(knight);
            SoundPlayer mageAttack   = new SoundPlayer(wizard);
            SoundPlayer dragonAttack = new SoundPlayer(rosh);
            SoundPlayer loserSound   = new SoundPlayer(sad);
            SoundPlayer winnerSound  = new SoundPlayer(victory);
            //fim dos sons

            Boss ead  = new Boss();
            Hero hero = new Hero();
            Mage mage = new Mage();

            hero.Classe    = "Herói";
            hero.Forca     = 30;
            hero.Pontuacao = 120;
            hero.Vivo      = true;
            mage.Classe    = "Mago";
            mage.Forca     = 15;
            mage.Pontuacao = 70;
            mage.Vivo      = true;
            ead.Nome       = "Earthy Abysmal Dragon";
            ead.Vivo       = true;
            ead.Pontuacao  = 600;
            ead.Forca      = 60;
            ead.Classe     = "Monstro";

            Console.WriteLine("Informe os nome do Herói: ");
            hero.Nome = Console.ReadLine();
            Console.WriteLine("\nInforme os nome do Mago");
            mage.Nome = Console.ReadLine();

            Console.WriteLine("\nTeste se seu herói está em forma");
            int i = 0, choice = 0;

            while (i != 2)
            {
OptionsHero:
                Console.WriteLine("Digite 1 para andar, 2 para pular e 3 para correr!");
                choice = Int32.Parse(Console.ReadLine());
                switch (choice)
                {
                case 1:
                    i = hero.Andar();
                    break;

                case 2:
                    i = hero.Pular();
                    break;

                case 3:
                    i = hero.Correr();
                    break;

                default:
                    Console.WriteLine("Ação inválida");
                    goto OptionsHero;
                }
            }
            Console.WriteLine("\nO Herói correu e você o perdeu de vista!");

            i      = 0;
            choice = 0;
            Console.WriteLine("\nTeste se seu mago está em forma");
            while (i != 2)
            {
OptionsMage:
                Console.WriteLine("Digite 1 para andar, 2 para pular e 3 para correr!");
                choice = Convert.ToInt32(Console.ReadLine());
                switch (choice)
                {
                case 1:
                    i = mage.Andar();
                    break;

                case 2:
                    i = mage.Pular();
                    break;

                case 3:
                    i = mage.Correr();
                    break;

                default:
                    Console.WriteLine("Ação inválida");
                    goto OptionsMage;
                }
                //i = 2;
            }
            Console.WriteLine("\n--------------O Mago correu e encontrou o herói parado, assustado e encarando algo, o que seria?!-------------");

            simpleSound.Play();
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("O que é isso????? Você gastou tempo demais e não percebeu onde chegou!!!");
            Console.WriteLine("-----------------------------------A wild Earthy Abysmal Dragon, EAD, appears!------------------------------------------");
            Console.WriteLine("\nLute com ele e tente sair vitorioso para salvar seu semestre!!!");
            //Início da combate
Combat:
            while (ead.Vivo && (hero.Vivo || mage.Vivo))
            {
                Console.WriteLine("---------------------------INICIO DE TURNO, PRESSIONE QUALQUER TECLA PARA CONTINUAR--------------------------");

                Console.ReadKey();

                int dano = 0;

                if (hero.Vivo)
                {
                    Console.WriteLine("O herói tem {0} pts de vida!", hero.Pontuacao);
                }
                else
                {
                    Console.WriteLine("O herói está morto!");
                }
                if (mage.Vivo)
                {
                    Console.WriteLine("O mago tem {0} pts de vida!", mage.Pontuacao);
                }
                else
                {
                    Console.WriteLine("O mago está morto!");
                }
                Console.WriteLine("O monstro tem {0} de pts de vida", ead.Pontuacao);

                Console.WriteLine("---------------------------FASE DE BATALHA, PRESSIONE QUALQUER TECLA PARA CONTINUAR--------------------------");

                Console.ReadKey();

                //ação do heroi
                if (hero.Vivo)
                {
HeroFight:
                    Console.WriteLine("\nEscolha a ação do herói {0}", hero.Nome);
                    Console.WriteLine("1 para ataque físico \n2 para Super Força\n3 para Lâmina de dois gumes!", hero.Nome);
                    choice = 0;
                    choice = int.Parse(Console.ReadLine());
                    switch (choice)
                    {
                    case 1:
                        dano          = hero.Attack();
                        ead.Pontuacao = ead.Pontuacao - dano;

                        heroAttack.Play();
                        Console.WriteLine("herói {0} atacou, causando {1} de dano!", hero.Nome, dano);
                        break;

                    case 2:
                        hero.Ult();
                        break;

                    case 3:
                        dano          = hero.LaminaDeDoisGumes();
                        ead.Pontuacao = ead.Pontuacao - dano;
                        break;

                    default:
                        Console.WriteLine("Escolha uma ação válida!");
                        goto HeroFight;
                    }
                }
                else
                {
                    Console.WriteLine("O herói {0} está morto!", hero.Nome);
                }

                //ação do mago
                if (mage.Vivo)
                {
MageTurn:
                    Console.WriteLine("\n\nEscolha a ação do mago {0}", mage.Nome);
                    Console.WriteLine("1 para ataque físico\n2 para Tesouro Escondido(só pode ser usado 1 vez)\n3 para poder de ataque(só pode ser usado 1 vez)\n4 para poder de cura", hero.Nome);
                    choice = 0;
                    choice = int.Parse(Console.ReadLine());
                    switch (choice)
                    {
                    case 1:
                        dano          = mage.Attack();
                        ead.Pontuacao = ead.Pontuacao - dano;

                        mageAttack.Play();
                        Console.WriteLine("O mago {0} atacou, causando {1} de dano!", mage.Nome, dano);
                        break;

                    case 2:
                        mage.HiddenTreasure();
                        break;

                    case 3:
                        dano          = mage.MagePower();
                        ead.Pontuacao = ead.Pontuacao - dano;
                        break;

                    case 4:
                        mage.Ult();
                        break;

                    default:
                        Console.WriteLine("Ação escolhida inválida!");
                        goto MageTurn;
                    }
                }
                else
                {
                    Console.WriteLine("O mago {0} está morto!! não pode fazer ações!", mage.Nome);
                }

                //ação do monstro

                Console.WriteLine("\nO monstro {0} prepara seu ataque!---pressione uma tecla para continuar!", ead.Nome);
                Console.ReadKey();
                if (ead.Vivo)
                {
                    Console.WriteLine("\n\nO monstro {0} está cego de raiva e escolhe aleatóriamente um dos dois para lançar seu ataque!", ead.Nome);
                    Random random = new Random();
                    int    rdm    = 0;
MonsterTurn:

                    rdm = random.Next(0, 3);
                    switch (rdm)
                    {
                    case 0:
                        if (mage.Vivo)
                        {
                            dano           = ead.Attack();
                            mage.Pontuacao = mage.Pontuacao - dano;

                            dragonAttack.Play();
                            Console.WriteLine("O monstro ataca o mago {0}, causando {1} de dano!", mage.Nome, dano);
                        }
                        else
                        {
                            Console.WriteLine("O monstro errou o ataque!");
                        }


                        break;

                    case 1:
                        if (hero.Vivo)
                        {
                            dano           = ead.Attack();
                            hero.Pontuacao = hero.Pontuacao - dano;
                            dragonAttack.Play();
                            Console.WriteLine("O monstro ataca o herói {0}, causando {1} de dano!", hero.Nome, dano);
                        }
                        else
                        {
                            Console.WriteLine("O monstro errou o ataque!");
                        }

                        break;


                    case 2:
                        Console.WriteLine("EAD lançou Confusion, os aliados não conseguem entender nada tiram os próprios pontos de vida!!.");
                        ead.Nani();
                        if (hero.Vivo)
                        {
                            dano           = hero.Attack();
                            hero.Pontuacao = hero.Pontuacao - dano;
                        }
                        if (mage.Vivo)
                        {
                            dano           = mage.Attack();
                            mage.Pontuacao = mage.Pontuacao - dano;
                        }
                        break;

                    default:
                        goto MonsterTurn;
                    }
                }
                hero.IsAlive();
                if (!hero.Vivo)
                {
                    hero.Ult();//se o herói estiver morto mas ainda possuir o poder especial, ele ativará e voltará ao jogo.
                }
                mage.IsAlive();
                ead.IsAlive();
            }
            Console.WriteLine("--------------------------------------Chega o fim da batalha-------------------------------------------");
            Console.ReadKey();
            Console.Clear();

            /*hero.IsAlive();
             * mage.IsAlive();
             * ead.IsAlive();*/


            if (ead.Vivo)
            {
                loserSound.Play();
                Console.WriteLine("O monstro {0}, EAD, fez mais duas vítimas!!!", ead.Nome);
            }
            else
            {
                if (hero.Vivo && mage.Vivo)
                {
                    winnerSound.Play();
                    Console.WriteLine("Um milagre aconteceu! Os dois saíram vivos da carnificina e derrotaram {0}, o destruidor de semestres!", ead.Nome);
                }
                else if (!hero.Vivo)
                {
                    winnerSound.Play();
                    Console.WriteLine("Apenas o mago {0}, bruxo que é, saiu vivo!", mage.Nome);
                }
                else if (!mage.Vivo)
                {
                    winnerSound.Play();
                    Console.WriteLine("Apenas o herói {0} saiu vivo no combate!", hero.Nome);
                }
                else
                {
                    loserSound.Play();
                    Console.WriteLine("O monstro {0}, em seu último suspiro, lançou um golpe contundente e matou o último dos aventureiros!! Todos morreram!", ead.Nome);
                }
            }

            Console.ReadKey();

            Console.WriteLine("Deseja batalhar novamente?\n1 para sim\n2 para não");
            int question = 0;

            question = int.Parse(Console.ReadLine());
            switch (question)
            {
            case 1:
                ead.Vivo       = true;
                ead.Pontuacao  = 400;
                mage.Vivo      = true;
                mage.Pontuacao = 70;
                hero.Vivo      = true;
                hero.Pontuacao = 120;
                goto Combat;

            default:
                break;
            }
        }