예제 #1
0
        //This class will handle the battle phase
        public void Battle()
        {
            string[] charVoice = new string[2]; //Voice of character when it attacks

            Choose choose = new Choose();       //Firstly call the Choose class, which handled the choosing characters progress

            choose.Choosing();
            Console.Clear();

            Berserk berserk = new Berserk();    //instance for the monster in Battlefield Class

            berserk.BerserkSet();
            Mage mage = new Mage();

            mage.MageSet();
            Warrior warrior = new Warrior();

            warrior.WarriorSet();

            String[] character = new String[] { "Berserk", "Mage", "Warrior" };     //Save the characther into an array

            Console.WriteLine("READY !!");
            Console.WriteLine("{0} VS {1}", character[(choose.player1) - 1], character[(choose.player2) - 1]);
            Console.WriteLine("Press any key to continue . . .");
            Console.ReadLine();
            Console.Clear();

            //int[] player1 = new int[3];     //this array will held the amount of HP and MP player 1
            //int[] player2 = new int[3];     //this array will held the amount of HP and MP player 2

            int[][] player = new int[2][];  //this jagged array will held the characteristic of each character
            player[0] = new int[5];         //array for player 1
            player[1] = new int[5];         //array for player 2

            switch (choose.player1)
            //This switched the player1 decision, so the monster attribut can be adjusted
            {
            case 1:
                player[0][0] = berserk.hp;
                player[0][1] = berserk.Attack();
                player[0][2] = berserk.Heal();
                player[0][3] = berserk.mp;
                player[0][4] = berserk.SpeacialAttack();
                charVoice[0] = "Berserk SLAM !!";
                break;

            case 2:
                player[0][0] = mage.hp;
                player[0][1] = mage.Attack();
                player[0][2] = mage.Heal();
                player[0][3] = mage.mp;
                player[0][4] = mage.DarkEnergy();
                charVoice[0] = "Burning Flame !!";
                break;

            case 3:
                player[0][0] = warrior.hp;
                player[0][1] = warrior.Attack();
                player[0][2] = warrior.Heal();
                player[0][3] = warrior.mp;
                player[0][4] = warrior.DragonDance();
                charVoice[0] = "Warrior's Slash !!";
                break;
            }
            switch (choose.player2)
            //This switched the player2 decision, so the monster attribut can be adjusted
            {
            case 1:
                player[1][0] = berserk.hp;
                player[1][1] = berserk.Attack();
                player[1][2] = berserk.Heal();
                player[1][3] = berserk.mp;
                player[1][4] = berserk.SpeacialAttack();
                charVoice[1] = "Berserk SLAM !! ";
                break;

            case 2:
                player[1][0] = mage.hp;
                player[1][1] = mage.Attack();
                player[1][2] = mage.Heal();
                player[1][3] = mage.mp;
                player[1][4] = mage.DarkEnergy();
                charVoice[1] = "Burning Flame !! ";
                break;

            case 3:
                player[1][0] = warrior.hp;
                player[1][1] = warrior.Attack();
                player[1][2] = warrior.Heal();
                player[1][3] = warrior.mp;
                player[1][4] = warrior.DragonDance();
                charVoice[1] = "Warrior's Slash !! ";
                break;
            }

            Console.WriteLine("==================================");
            Console.WriteLine("            FIGHT !!              ");
            Console.WriteLine("==================================\n\n");

            //This is the real fight !
            while (player[0][0] > 0 && player[1][0] > 0)
            {
                int action; //The user choice

                for (int i = 0; i < 2; i++)
                {
                    switch (choose.player1)
                    {
                    //because the damage will different in each Attacking phase of each player
                    //This switch was build to handle that
                    case 1:
                        player[0][1] = berserk.Attack();
                        break;

                    case 2:
                        player[0][1] = mage.Attack();
                        break;

                    case 3:
                        player[0][1] = warrior.Attack();
                        break;
                    }
                    switch (choose.player2)
                    {
                    case 1:
                        player[1][1] = berserk.Attack();
                        break;

                    case 2:
                        player[1][1] = mage.Attack();
                        break;

                    case 3:
                        player[1][1] = warrior.Attack();
                        break;
                    }

                    //This phase where the game begin
start:
                    Console.WriteLine("==================================");
                    Console.WriteLine("Player{0} turn ", i + 1);
                    Console.WriteLine("HP : {0} \t\t MP : {1}", player[i][0], player[i][3]);
                    Console.WriteLine("1. Attack");
                    Console.WriteLine("2. Heal");
                    Console.WriteLine("3. Special Attack");
                    Console.Write("=> ");
                    action = int.Parse(Console.ReadLine());

                    if (action == 1)
                    {
                        //When the player choose to attack
                        if (player[i][1] != 0)
                        {
                            Console.WriteLine("{0} make {1} damages on player {2} !! \n", charVoice[i], player[0 + i][1], 2 - i);
                            player[(1 - i)][0] = player[(1 - i)][0] - player[i][1];
                            Console.WriteLine("player 1 HP => {0}", player[0][0]);
                            Console.WriteLine("player 2 HP => {0}", player[1][0]);
                            Console.WriteLine("==================================\n");
                        }
                        else
                        {
                            Console.WriteLine("Miss ! 0 Damage");
                            Console.WriteLine("player 1 HP => {0}", player[0][0]);
                            Console.WriteLine("player 2 HP => {0}", player[1][0]);
                            Console.WriteLine("==================================\n");
                        }
                    }
                    else if (action == 2)
                    {
                        //When Player choose Heal
                        if (player[i][3] >= 50)
                        {
                            player[i][0] += player[i][2];
                            player[i][3] -= 50;
                            Console.WriteLine("Recover {0} HP", player[i][2]);
                            Console.WriteLine("player 1 HP => {0}", player[0][0]);
                            Console.WriteLine("player 2 HP => {0}", player[1][0]);
                            Console.WriteLine("==================================\n");
                        }
                        else
                        {
                            Console.WriteLine("Insufficient Mana !!");
                            Console.WriteLine("player 1 HP => {0}", player[0][0]);
                            Console.WriteLine("player 2 HP => {0}", player[1][0]);
                            Console.WriteLine("==================================\n");
                            goto start;
                        }
                    }
                    if (player[0][0] <= 0 || player[1][0] <= 0)
                    {
                        break;
                    }
                }

                /*int action;
                 *
                 * Console.WriteLine("Player1 turn ");
                 * Console.WriteLine("1. Attack");
                 * Console.WriteLine("2. Do Nothing");
                 * Console.Write("=> ");
                 * action = int.Parse(Console.ReadLine());
                 *
                 * if (action == 1)
                 * {
                 *  Console.WriteLine("Player 1 attack !! make {0} damages on player 2 !!", player1[1]);
                 *  player2[0] = player2[0] - player1[1];
                 *  Console.WriteLine("player 1 HP => {0}", player1[0]);
                 *  Console.WriteLine("player 2 HP => {0}", player2[0]);
                 *  Console.WriteLine("==================================");
                 * } else
                 * {
                 *  Console.WriteLine("Do Nothing . . . ");
                 *  Console.WriteLine("player 1 HP => {0}", player1[0]);
                 *  Console.WriteLine("player 2 HP => {0}", player2[0]);
                 *  Console.WriteLine("==================================");
                 * }
                 *
                 * Console.WriteLine("Player2 turn ");
                 * Console.WriteLine("1. Attack");
                 * Console.WriteLine("2. Do Nothing");
                 * Console.Write("=> ");
                 * action = int.Parse(Console.ReadLine());
                 *
                 * if (action == 1)
                 * {
                 *  Console.WriteLine("Player 2 attack !! make {0} damages on player 1 !!", player2[1]);
                 *  player1[0] = player1[0] - player2[1];
                 *  Console.WriteLine("player 1 HP => {0}", player1[0]);
                 *  Console.WriteLine("player 2 HP => {0}", player2[0]);
                 *  Console.WriteLine("==================================\n\n");
                 * }
                 * else
                 * {
                 *  Console.WriteLine("Do Nothing . . . ");
                 *  Console.WriteLine("player 1 HP => {0}", player1[0]);
                 *  Console.WriteLine("player 2 HP => {0}", player2[0]);
                 *  Console.WriteLine("==================================\n\n");
                 * } */
            }

            //The Winner declaration
            if (player[0][0] > player[1][0])
            {
                Console.WriteLine("Player 1 ({0}) Win.. !", character[choose.player1 - 1]);
            }
            else
            {
                Console.WriteLine("Player 2 ({0}) Win.. !", character[choose.player2 - 1]);
            }
        }
예제 #2
0
        public void Choosing()
        //this function retrieve data of choosen character
        {
            int choosen;    //variable that save the selected character

            //int player1 = 0;    //this will save the selected character of Player 1
            //int player2 = 0;    //this will save the selected character of Player 2
            int[] players = new int[2];  //this will hold all player in the turn for choosing character

            //instance of each class Berserk, Warrior, and Mage
            Berserk berserk = new Berserk();
            Mage    mage    = new Mage();
            Warrior warrior = new Warrior();


            //Constructor of each class
            mage.MageSet();
            berserk.BerserkSet();
            warrior.WarriorSet();


            for (int i = 0; i < 2; i++)
            {
start:
                Console.WriteLine("==============================================================");
                Console.WriteLine("                   Choose the Character                       ");                             // Showing the title menu
                Console.WriteLine("==============================================================");
                Console.WriteLine("  Class \t Attack \t HP \t MP \t Special Ability");                                           // head of title
                Console.WriteLine("1.{0} \t {1} \t\t {2} \t {3} \t none", berserk.name, berserk.attack, berserk.hp, berserk.mp); //showing the name, status, and attack of each class
                Console.WriteLine("2.{0} \t\t {1} \t\t {2} \t {3} \t Dark Energy", mage.name, mage.attack, mage.hp, mage.mp);
                Console.WriteLine("3.{0} \t {1} \t\t {2} \t {3} \t Dragon Dance\n\n", warrior.name, warrior.attack, warrior.hp, warrior.mp);
                Console.Write("Who is yout choice ?");
                choosen = int.Parse(Console.ReadLine());    //Read the user choice

                switch (choosen)
                {
                //This switch showing up the character coming in text
                case 1:
                    berserk.BerserkComing();
                    break;

                case 2:
                    mage.MageComing();
                    break;

                case 3:
                    warrior.WarriorComing();
                    break;

                case 13:
                    Console.WriteLine("ROACH");
                    break;

                default:
                    Console.WriteLine("Invalid Character Input again ! \n");        //when the input invalid, user will be throwing back to the menu
                    goto start;
                    break;
                }
                if (i < 1)
                {
                    Console.WriteLine("Press Enter to choose Player2's character");
                    Console.ReadLine();
                    Console.Clear();
                    player1 = choosen;
                }
                else
                {
                    player2 = choosen;
                }
            }
            Console.WriteLine("Press any key to continue . . .");
            Console.ReadKey();
        }