예제 #1
0
        static void Main()
        {
            var axeWarrior   = new Warrior(new Axe());
            var swordWarrior = new Warrior(new Sword());
            var axeMage      = new Mage(new Axe());
            var swordMage    = new Mage(new Sword());

            Console.WriteLine(axeWarrior);
            Console.WriteLine(swordMage);
        }
예제 #2
0
        static void Main()
        {
            IWeapon    axe  = new Axe();
            ICharacter mage = new Mage(axe);

            IWeapon    sword   = new Sword();
            ICharacter warrior = new Warrior(sword);

            Console.WriteLine(mage);
            Console.WriteLine(warrior);
        }
예제 #3
0
        static void Main()
        {
            Weapon axe          = new Axe();
            Weapon sword        = new Sword();
            var    axeWarrior   = new Warrior(axe);
            var    swordWarrior = new Warrior(sword);
            var    axeMage      = new Mage(axe);
            var    swordMage    = new Mage(sword);

            Console.WriteLine(axeWarrior);
            Console.WriteLine(swordMage);
            Console.WriteLine(swordWarrior);
            Console.WriteLine(axeMage);
        }
예제 #4
0
        static void Main()
        {
            Warrior axeWarrior   = new Warrior("Pesho", 20, new Axe(2));
            Warrior swordWarrior = new Warrior("Gosho", 20, new Sword(3));
            Mage    axeMage      = new Mage("Tsetso", 20, new Axe(2));
            Mage    swordMage    = new Mage("Joro", 20, new Sword(2));

            Console.WriteLine(axeWarrior);
            Console.WriteLine(swordMage);

            axeWarrior.Attack(swordMage);

            Console.WriteLine(axeWarrior);
            Console.WriteLine(swordMage);
        }
예제 #5
0
        static void Main()
        {
            var axeWeapon   = new Axe();
            var swordWeapon = new Sword();

            Warrior axeWarrior = new Warrior(axeWeapon);

            Console.WriteLine(axeWarrior);
            Warrior swordWarrior = new Warrior(swordWeapon);

            Console.WriteLine(swordWarrior);

            Mage axeMage = new Mage(axeWeapon);

            Console.WriteLine(axeMage);
            Mage swordMage = new Mage(swordWeapon);

            Console.WriteLine(swordMage);
        }
예제 #6
0
파일: SaveLoad.cs 프로젝트: tmaster148/RPG
        public void LoadGame()
        {
            OpenFileDialog dlg = new OpenFileDialog();        // prompt for file

            dlg.Filter           = "txt files (*.txt)|*.txt"; // just text
            dlg.FilterIndex      = 1;                         // only one option
            dlg.RestoreDirectory = false;                     // let player keep opening same directory
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                using (TextReader reader = File.OpenText(dlg.FileName))
                {
                    try
                    {
                        Program.DELAY = int.Parse(reader.ReadLine());
                        #region create your team
                        Hero        you    = null;
                        List <Hero> team   = new List <Hero>();
                        int         number = int.Parse(reader.ReadLine());
                        for (int x = 0; x < number; x++)
                        {
                            Hero   hero;
                            string isYou = reader.ReadLine();
                            if (isYou.Equals("False"))
                            {
                                string type = reader.ReadLine();
                                if (type.Equals("RPG.Healer"))
                                {
                                    hero = new Healer(world);
                                }
                                else if (type.Equals("RPG.Guard"))
                                {
                                    hero = new Guard(world);
                                }
                                else if (type.Equals("RPG.Theif"))
                                {
                                    hero = new Theif(world);
                                }
                                else if (type.Equals("RPG.Wizard"))
                                {
                                    hero = new Wizard(world);
                                }
                                else if (type.Equals("RPG.Rogue"))
                                {
                                    hero = new Rogue(world);
                                }
                                else
                                {
                                    hero = new Scout(world);
                                }
                                string name = reader.ReadLine();
                                int    end  = name.IndexOf(" the");
                                name = name.Remove(end);
                                hero.setName(name);
                                hero.level         = int.Parse(reader.ReadLine());
                                hero.realhealth    = int.Parse(reader.ReadLine());
                                hero.realmaxhealth = int.Parse(reader.ReadLine());
                                hero.experience    = int.Parse(reader.ReadLine());
                            }
                            else
                            {
                                string type = reader.ReadLine();
                                if (type.Equals("RPG.Warrior"))
                                {
                                    hero = new Warrior(world);
                                }
                                else if (type.Equals("RPG.Mage"))
                                {
                                    hero = new Mage(world);
                                }
                                else
                                {
                                    hero = new Archer(world);
                                }
                                you = hero;
                                hero.setName(reader.ReadLine());
                                hero.level         = int.Parse(reader.ReadLine());
                                hero.realhealth    = int.Parse(reader.ReadLine());
                                hero.realmaxhealth = int.Parse(reader.ReadLine());
                                hero.experience    = int.Parse(reader.ReadLine());
                                hero.energy        = int.Parse(reader.ReadLine());
                                hero.maxenergy     = int.Parse(reader.ReadLine());
                            }
                            hero.attack  = int.Parse(reader.ReadLine());
                            hero.defense = int.Parse(reader.ReadLine());
                            hero.speed   = double.Parse(reader.ReadLine());
                            hero.critial = double.Parse(reader.ReadLine());
                            int    attack = int.Parse(reader.ReadLine());
                            double crit   = double.Parse(reader.ReadLine());
                            bool   poison = reader.ReadLine().Equals("True");
                            int    damage = int.Parse(reader.ReadLine());
                            int    deduct = int.Parse(reader.ReadLine());
                            hero.equipWep(new Weapon(attack, crit, poison, damage, deduct));
                            int  hp    = int.Parse(reader.ReadLine());
                            int  def   = int.Parse(reader.ReadLine());
                            bool heal  = reader.ReadLine().Equals("True");
                            int  regen = int.Parse(reader.ReadLine());
                            hero.equipArm(new Armor(hp, def, heal, regen));
                            team.Add(hero);
                        }
                        game.setTeam(team, you);
                        game.learnA = reader.ReadLine().Equals("True");
                        game.learnH = reader.ReadLine().Equals("True");
                        #endregion
                        #region create the potions
                        Stack <Basic>     basic    = new Stack <Basic>();
                        Stack <Advanced>  advanced = new Stack <Advanced>();
                        Stack <Super>     super    = new Stack <Super>();
                        Stack <Revive>    revive   = new Stack <Revive>();
                        Stack <MaxRevive> max      = new Stack <MaxRevive>();
                        Stack <Mega>      mega     = new Stack <Mega>();
                        int amount = int.Parse(reader.ReadLine());
                        for (int x = 0; x < amount; x++)
                        {
                            basic.enqueue(new Basic());
                        }
                        amount = int.Parse(reader.ReadLine());
                        for (int x = 0; x < amount; x++)
                        {
                            advanced.enqueue(new Advanced());
                        }
                        amount = int.Parse(reader.ReadLine());
                        for (int x = 0; x < amount; x++)
                        {
                            super.enqueue(new Super());
                        }
                        amount = int.Parse(reader.ReadLine());
                        for (int x = 0; x < amount; x++)
                        {
                            mega.enqueue(new Mega());
                        }
                        amount = int.Parse(reader.ReadLine());
                        for (int x = 0; x < amount; x++)
                        {
                            revive.enqueue(new Revive());
                        }
                        amount = int.Parse(reader.ReadLine());
                        for (int x = 0; x < amount; x++)
                        {
                            max.enqueue(new MaxRevive());
                        }
                        game.setPotions(basic, advanced, super, mega, revive, max);
                        #endregion
                        //set up World
                        game.world = new World(game, reader.ReadLine());
                        #region Set up Dungeon
                        int locations = int.Parse(reader.ReadLine());
                        #region Past Locations
                        List <DungeonSetup> pastLocations = new List <DungeonSetup>();
                        List <Enemy>        LeftEnemies;
                        List <Enemy>        RightEnemies;
                        List <Enemy>        ForwardEnemies;
                        List <Enemy>        Choice;
                        for (int x = 0; x < locations; x++)
                        {
                            LeftEnemies    = new List <Enemy>();
                            RightEnemies   = new List <Enemy>();
                            ForwardEnemies = new List <Enemy>();
                            Choice         = new List <Enemy>();
                            string read = reader.ReadLine();
                            if (!read.Equals("none"))
                            {
                                int enemies = int.Parse(read);
                                for (int y = 0; y < enemies; y++)
                                {
                                    string enemy = reader.ReadLine();
                                    if (enemy.Equals("RPG.Minor"))
                                    {
                                        LeftEnemies.Add(new Minor());
                                    }
                                    else if (enemy.Equals("RPG.Normal"))
                                    {
                                        LeftEnemies.Add(new Normal());
                                    }
                                    else if (enemy.Equals("RPG.Shadow"))
                                    {
                                        LeftEnemies.Add(new Shadow());
                                    }
                                    else if (enemy.Equals("RPG.Greater"))
                                    {
                                        LeftEnemies.Add(new Greater());
                                    }
                                    else if (enemy.Equals("RPG.Sniper"))
                                    {
                                        LeftEnemies.Add(new Sniper());
                                    }
                                    else if (enemy.Equals("RPG.Ninja"))
                                    {
                                        LeftEnemies.Add(new Ninja());
                                    }
                                    else if (enemy.Equals("RPG.Crowman"))
                                    {
                                        LeftEnemies.Add(new Crowman());
                                    }
                                }
                            }
                            else
                            {
                                LeftEnemies = null;
                            }
                            read = reader.ReadLine();
                            if (!read.Equals("none"))
                            {
                                int enemies = int.Parse(read);
                                for (int y = 0; y < enemies; y++)
                                {
                                    string enemy = reader.ReadLine();
                                    if (enemy.Equals("RPG.Minor"))
                                    {
                                        ForwardEnemies.Add(new Minor());
                                    }
                                    else if (enemy.Equals("RPG.Normal"))
                                    {
                                        ForwardEnemies.Add(new Normal());
                                    }
                                    else if (enemy.Equals("RPG.Shadow"))
                                    {
                                        ForwardEnemies.Add(new Shadow());
                                    }
                                    else if (enemy.Equals("RPG.Greater"))
                                    {
                                        ForwardEnemies.Add(new Greater());
                                    }
                                    else if (enemy.Equals("RPG.Sniper"))
                                    {
                                        ForwardEnemies.Add(new Sniper());
                                    }
                                    else if (enemy.Equals("RPG.Ninja"))
                                    {
                                        ForwardEnemies.Add(new Ninja());
                                    }
                                    else if (enemy.Equals("RPG.Crowman"))
                                    {
                                        ForwardEnemies.Add(new Crowman());
                                    }
                                }
                            }
                            else
                            {
                                ForwardEnemies = null;
                            }
                            read = reader.ReadLine();
                            if (!read.Equals("none"))
                            {
                                int enemies = int.Parse(read);
                                for (int y = 0; y < enemies; y++)
                                {
                                    string enemy = reader.ReadLine();
                                    if (enemy.Equals("RPG.Minor"))
                                    {
                                        RightEnemies.Add(new Minor());
                                    }
                                    else if (enemy.Equals("RPG.Normal"))
                                    {
                                        RightEnemies.Add(new Normal());
                                    }
                                    else if (enemy.Equals("RPG.Shadow"))
                                    {
                                        RightEnemies.Add(new Shadow());
                                    }
                                    else if (enemy.Equals("RPG.Greater"))
                                    {
                                        RightEnemies.Add(new Greater());
                                    }
                                    else if (enemy.Equals("RPG.Sniper"))
                                    {
                                        RightEnemies.Add(new Sniper());
                                    }
                                    else if (enemy.Equals("RPG.Ninja"))
                                    {
                                        RightEnemies.Add(new Ninja());
                                    }
                                    else if (enemy.Equals("RPG.Crowman"))
                                    {
                                        RightEnemies.Add(new Crowman());
                                    }
                                }
                            }
                            else
                            {
                                RightEnemies = null;
                            }
                            read = reader.ReadLine();
                            if (!read.Equals("none"))
                            {
                                int enemies = int.Parse(read);
                                for (int y = 0; y < enemies; y++)
                                {
                                    string enemy = reader.ReadLine();
                                    if (enemy.Equals("RPG.Minor"))
                                    {
                                        Choice.Add(new Minor());
                                    }
                                    else if (enemy.Equals("RPG.Normal"))
                                    {
                                        Choice.Add(new Normal());
                                    }
                                    else if (enemy.Equals("RPG.Shadow"))
                                    {
                                        Choice.Add(new Shadow());
                                    }
                                    else if (enemy.Equals("RPG.Greater"))
                                    {
                                        Choice.Add(new Greater());
                                    }
                                    else if (enemy.Equals("RPG.Sniper"))
                                    {
                                        Choice.Add(new Sniper());
                                    }
                                    else if (enemy.Equals("RPG.Ninja"))
                                    {
                                        Choice.Add(new Ninja());
                                    }
                                    else if (enemy.Equals("RPG.Crowman"))
                                    {
                                        Choice.Add(new Crowman());
                                    }
                                }
                            }
                            else
                            {
                                Choice = null;
                            }
                            Color  left    = Control.DefaultBackColor;
                            Color  right   = Control.DefaultBackColor;
                            Color  forward = Control.DefaultBackColor;
                            Color  back    = Control.DefaultBackColor;
                            string color   = reader.ReadLine();
                            if (color.Equals("Color [Green]"))
                            {
                                left = Color.Green;
                            }
                            if (color.Equals("Color [Gold]"))
                            {
                                left = Color.Gold;
                            }
                            if (color.Equals("Color [Orange]"))
                            {
                                left = Color.Orange;
                            }
                            color = reader.ReadLine();
                            if (color.Equals("Color [Green]"))
                            {
                                forward = Color.Green;
                            }
                            if (color.Equals("Color [Gold]"))
                            {
                                forward = Color.Gold;
                            }
                            if (color.Equals("Color [Orange]"))
                            {
                                forward = Color.Orange;
                            }
                            if (color.Equals("Color [Red]"))
                            {
                                forward = Color.Red;
                            }
                            color = reader.ReadLine();
                            if (color.Equals("Color [Green]"))
                            {
                                right = Color.Green;
                            }
                            if (color.Equals("Color [Gold]"))
                            {
                                right = Color.Gold;
                            }
                            if (color.Equals("Color [Orange]"))
                            {
                                right = Color.Orange;
                            }
                            color = reader.ReadLine();
                            if (color.Equals("Color [Green]"))
                            {
                                back = Color.Green;
                            }
                            if (color.Equals("Color [Gold]"))
                            {
                                back = Color.Gold;
                            }
                            if (color.Equals("Color [Orange]"))
                            {
                                back = Color.Orange;
                            }
                            pastLocations.Add(new DungeonSetup(LeftEnemies, ForwardEnemies, RightEnemies, Choice, left, forward, right, back));
                        }
                        dungeon.lastLocations = pastLocations;
                        #endregion
                        #region current choices
                        string backtracking = reader.ReadLine();
                        bool   backtrack    = backtracking.Equals("True");
                        dungeon.backtracking = backtrack;
                        ForwardEnemies       = new List <Enemy>();
                        LeftEnemies          = new List <Enemy>();
                        RightEnemies         = new List <Enemy>();
                        string enemynum = reader.ReadLine();
                        if (!enemynum.Equals("no enemies"))
                        {
                            int enemies = int.Parse(enemynum);
                            for (int y = 0; y < enemies; y++)
                            {
                                string enemy = reader.ReadLine();
                                if (enemy.Equals("RPG.Minor"))
                                {
                                    ForwardEnemies.Add(new Minor());
                                }
                                else if (enemy.Equals("RPG.Normal"))
                                {
                                    ForwardEnemies.Add(new Normal());
                                }
                                else if (enemy.Equals("RPG.Shadow"))
                                {
                                    ForwardEnemies.Add(new Shadow());
                                }
                                else if (enemy.Equals("RPG.Greater"))
                                {
                                    ForwardEnemies.Add(new Greater());
                                }
                                else if (enemy.Equals("RPG.Sniper"))
                                {
                                    ForwardEnemies.Add(new Sniper());
                                }
                                else if (enemy.Equals("RPG.Ninja"))
                                {
                                    ForwardEnemies.Add(new Ninja());
                                }
                                else if (enemy.Equals("RPG.Crowman"))
                                {
                                    ForwardEnemies.Add(new Crowman());
                                }
                            }
                        }
                        else
                        {
                            ForwardEnemies = null;
                        }
                        string danger = reader.ReadLine();
                        if (danger.Equals("Color [Green]"))
                        {
                            dungeon.Forward.BackColor = Color.Green;
                        }
                        else if (danger.Equals("Color [Gold]"))
                        {
                            dungeon.Forward.BackColor = Color.Gold;
                        }
                        else if (danger.Equals("Color [Orange]"))
                        {
                            dungeon.Forward.BackColor = Color.Orange;
                        }
                        else if (danger.Equals("Color [Red]"))
                        {
                            dungeon.Forward.BackColor = Color.Red;
                        }
                        else
                        {
                            dungeon.Forward.BackColor = Control.DefaultBackColor;
                        }
                        enemynum = reader.ReadLine();
                        if (!enemynum.Equals("no enemies"))
                        {
                            int enemies = int.Parse(enemynum);
                            for (int y = 0; y < enemies; y++)
                            {
                                string enemy = reader.ReadLine();
                                if (enemy.Equals("RPG.Minor"))
                                {
                                    LeftEnemies.Add(new Minor());
                                }
                                else if (enemy.Equals("RPG.Normal"))
                                {
                                    LeftEnemies.Add(new Normal());
                                }
                                else if (enemy.Equals("RPG.Shadow"))
                                {
                                    LeftEnemies.Add(new Shadow());
                                }
                                else if (enemy.Equals("RPG.Greater"))
                                {
                                    LeftEnemies.Add(new Greater());
                                }
                                else if (enemy.Equals("RPG.Sniper"))
                                {
                                    LeftEnemies.Add(new Sniper());
                                }
                                else if (enemy.Equals("RPG.Ninja"))
                                {
                                    LeftEnemies.Add(new Ninja());
                                }
                                else if (enemy.Equals("RPG.Crowman"))
                                {
                                    LeftEnemies.Add(new Crowman());
                                }
                            }
                        }
                        else
                        {
                            LeftEnemies = null;
                        }
                        danger = reader.ReadLine();
                        if (danger.Equals("Color [Green]"))
                        {
                            dungeon.Left.BackColor = Color.Green;
                        }
                        else if (danger.Equals("Color [Gold]"))
                        {
                            dungeon.Left.BackColor = Color.Gold;
                        }
                        else if (danger.Equals("Color [Orange]"))
                        {
                            dungeon.Left.BackColor = Color.Orange;
                        }
                        else
                        {
                            dungeon.Left.BackColor = Control.DefaultBackColor;
                        }
                        enemynum = reader.ReadLine();
                        if (!enemynum.Equals("no enemies"))
                        {
                            int enemies = int.Parse(enemynum);
                            for (int y = 0; y < enemies; y++)
                            {
                                string enemy = reader.ReadLine();
                                if (enemy.Equals("RPG.Minor"))
                                {
                                    RightEnemies.Add(new Minor());
                                }
                                else if (enemy.Equals("RPG.Normal"))
                                {
                                    RightEnemies.Add(new Normal());
                                }
                                else if (enemy.Equals("RPG.Shadow"))
                                {
                                    RightEnemies.Add(new Shadow());
                                }
                                else if (enemy.Equals("RPG.Greater"))
                                {
                                    RightEnemies.Add(new Greater());
                                }
                                else if (enemy.Equals("RPG.Sniper"))
                                {
                                    RightEnemies.Add(new Sniper());
                                }
                                else if (enemy.Equals("RPG.Ninja"))
                                {
                                    RightEnemies.Add(new Ninja());
                                }
                                else if (enemy.Equals("RPG.Crowman"))
                                {
                                    RightEnemies.Add(new Crowman());
                                }
                            }
                        }
                        else
                        {
                            RightEnemies = null;
                        }
                        danger = reader.ReadLine();
                        if (danger.Equals("Color [Green]"))
                        {
                            dungeon.Right.BackColor = Color.Green;
                        }
                        else if (danger.Equals("Color [Gold]"))
                        {
                            dungeon.Right.BackColor = Color.Gold;
                        }
                        else if (danger.Equals("Color [Orange]"))
                        {
                            dungeon.Right.BackColor = Color.Orange;
                        }
                        else
                        {
                            dungeon.Right.BackColor = Control.DefaultBackColor;
                        }
                        dungeon.leftEnemies    = LeftEnemies;
                        dungeon.forwardEnemies = ForwardEnemies;
                        dungeon.rightEnemies   = RightEnemies;
                        danger = reader.ReadLine();
                        if (danger.Equals("Color [Green]"))
                        {
                            dungeon.Back.BackColor = Color.Green;
                        }
                        else if (danger.Equals("Color [Gold]"))
                        {
                            dungeon.Back.BackColor = Color.Gold;
                        }
                        else if (danger.Equals("Color [Orange]"))
                        {
                            dungeon.Back.BackColor = Color.Orange;
                        }
                        else
                        {
                            dungeon.Back.BackColor = Control.DefaultBackColor;
                        }
                        #endregion
                        dungeon.setPosition(int.Parse(reader.ReadLine()));
                        dungeon.amount        = int.Parse(reader.ReadLine());
                        dungeon.requiredRooms = int.Parse(reader.ReadLine());
                        dungeon.setCurrentArea(int.Parse(reader.ReadLine()));
                        dungeon.newMax(int.Parse(reader.ReadLine()));
                        #endregion
                        new Popup("Game Loaded!").Show();
                    }
                    catch (Exception)
                    {
                        new Popup("Something went wrong, the file is missing info or is incorrect\r\neither start a new game or try a different file").Show();
                    }
                    reader.Close();
                }
            }
        }
예제 #7
0
파일: Program.cs 프로젝트: Robin-gielen/RPG
        static void Main(string[] args)
        {
            Map map = new Map();

            Console.CancelKeyPress += (sender, eArgs) => {
                _quitEvent.Set();
                eArgs.Cancel = true;
            };

            string TempName;
            int    TempAge;
            string TempClass;
            string TempObj;
            //string TempObjHPs;

            bool exit = false;

            while (!exit)
            {
                Console.Write("Here's the game board state");
                Console.Write("Characters and objects in play :\n");
                map.listAll();
                Console.Write("\nWhat do you want to do ? \nEnter help for help\n1)CreateChar\n2)CreateObj\n3)MoveChar\n4)CharAtk\n5)Help\n6)Exit\n");
                string command = Console.ReadLine();
                switch (command)
                {
                case "5":     //Help
                    Console.Clear();
                    Console.WriteLine("CreateChar to create a char \nCreateObj to create an object \nMoveChar ro move a char \nAtkChar to attack with a char\n");
                    break;

                case "1":     //CreateChar
                    Console.WriteLine("Enter your char name :");
                    TempName = Console.ReadLine();
                    Console.WriteLine("Enter your char Age :");
                    TempAge = int.Parse(Console.ReadLine());
                    Console.WriteLine("Enter your char Class :");
                    TempClass = Console.ReadLine();
                    if (string.Equals(TempClass, "Archer"))
                    {
                        Characters tempArcher = new Archer(TempName, TempAge, TempClass);
                        map.addChar(tempArcher);
                    }
                    else
                    {
                        Characters tempMage = new Mage(TempName, TempAge, TempClass);
                        map.addChar(tempMage);
                    }
                    Console.Clear();
                    break;

                case "2":     //CreateObj
                    Console.WriteLine("What kind of object do you want to create ?\n1)Rock\n2)Other");
                    TempObj = Console.ReadLine();
                    bool rockCreated = false;
                    while (!rockCreated)
                    {
                        switch (TempObj)
                        {
                        case "1":
                            Console.WriteLine("Name your rock :");
                            string    tempRockName = Console.ReadLine();
                            Obstacles tempRock     = new Rock(tempRockName);
                            map.addObstacle(tempRock);
                            rockCreated = true;
                            break;

                        case "2":
                            break;

                        default:
                            break;
                        }
                    }
                    Console.Clear();
                    break;

                case "3":     //MoveChar
                    Console.Write("What Character would you like to move ?\n");
                    string[] chars = map.listCharacters();
                    for (int i = 0; i < chars.Length; i++)
                    {
                        Console.Write(i + ")" + chars[i] + "\n");
                    }
                    string userInput = Console.ReadLine();
                    foreach (string charToMove in chars)
                    {
                        if (string.Equals(userInput, charToMove))
                        {
                            Console.Write("Where would you like to move it ?\n");

                            Console.Write("Enter X coordinate :\n");
                            bool xNotGiven = true;
                            while (xNotGiven)
                            {
                                int    moveX = 0;
                                string tempX = Console.ReadLine();
                                if (Int32.TryParse(tempX, out moveX))
                                {
                                    xNotGiven = false;
                                }
                            }

                            Console.Write("Enter Y coordinate :\n");
                            bool yNotGiven = true;
                            while (yNotGiven)
                            {
                                int    moveY = 0;
                                string tempY = Console.ReadLine();
                                if (Int32.TryParse(tempY, out moveY))
                                {
                                    yNotGiven = false;
                                }
                            }
                        }
                    }

                    break;

                case "4":     //CharAtk
                    Console.Clear();
                    break;

                case "6":     //Exit
                    Console.Clear();
                    exit = true;
                    break;
                }
            }



            //Initialization of chars
            //Characters archer = new Mage("Edge", 150, "Archer", 9, 2);

            //Initialization of obstacles
            //Obstacles rock1 = new Rock("rock1", 2);

            //Initialization of the map
            //Map map = new Map();
            //map.addChar(archer);
            //map.addObstacle(rock1);
            //map.listAll();



            _quitEvent.WaitOne();
            //System.Threading.Thread.Sleep(10000);
        }
예제 #8
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;
            }
        }