예제 #1
0
파일: Print.cs 프로젝트: 1138th/TextRPG
        public static void Status(CharacterInfo character)
        {
            character.LongTime  = DateTime.Now;
            character.ShortTime = character.LongTime.ToString();
            int    expdifference = character.Exptolvlup - character.Exp;
            string txt;

            if (expdifference > 0)
            {
                txt = string.Format(
                    "Персонаж: {0}.\nДень {1}.\nВремя: {2}.\nУровень персонажа: {3}.\nОпыта до повышения уровня: {4}.\nВыносливость: {5}.\nСила: {6}\nЗолото: {7}\n\n",
                    character.Name, character.Day, character.ShortTime, character.Lvl, expdifference, character.Stamina, character.Strength, character.Gold);
                Console.Clear();
                Console.WriteLine(txt);
            }
            else
            {
                character.Lvl++;
                character.Strength   += 5;
                character.Exptolvlup += 30;
                character.Exp         = 1;
                txt = string.Format("Поздравляем! Вы достигли нового уровня и получаете небольшую прибавку к силе!\n\n");
                Print.Print2(txt);
            }
        }
예제 #2
0
        private void Cave(CharacterInfo character)
        {
            character.Stamina--;
            string txt = "Вы в пещере.\n\n";

            Print.Status(character);
            Print.Print2(txt);
            i = rand.Next(1, 10);
            character.Itsvictory = 0;
            switch (i)
            {
            case 1:
                BattleCave(character, cmobs.varan);
                break;

            case 2:
                BattleCave(character, cmobs.orc);
                break;

            case 3:
                BattleCave(character, cmobs.gobelin);
                break;

            case 4:
                BattleCave(character, cmobs.lizard);
                break;

            case 5:
                BattleCave(character, cmobs.spider);
                break;

            case 6:
                BattleCave(character, cmobs.troll);
                break;

            case 7:
                BattleCave(character, cmobs.basilisk);
                break;

            case 8:
                BattleCave(character, cmobs.minotaur);
                break;

            case 9:
                BattleCave(character, cmobs.werewlolf);
                if (character.Itsvictory == 1)
                {
                    character.Werewolf_killed++;
                }
                break;
            }
            Camp(character);
        }
예제 #3
0
        static void Main(string[] args)
        {
            CharacterInfo character = new CharacterInfo();

            Console.SetWindowSize(130, 30);
            Console.BackgroundColor = ConsoleColor.DarkGray;
            Console.ForegroundColor = ConsoleColor.Black;
            Console.Clear();
            string txt, txt2;

            do
            {
                txt = "Введите имя своего персонажa: \n\n";
                Print.Print1(txt);
                txt2 = Console.ReadLine();
                txt  = string.Format("Имя Вашего персонажа: {0}.\n" +
                                     "В будущем его нельзя будет изменить, вы уверены в выборе имени? (да/нет)\n\n", txt2);
                Print.Print2(txt);
                txt = Console.ReadLine();
            } while (txt != "да");
            txt = string.Format(
                "Здравствуйте, {0}, Вы - искатель приключений и прибыли в небольшую деревню, рядом с которой разбили лагерь.\n" +
                "Этот лагерь отныне будет Вашим пристанищем, куда Вы будете возвращаться после походов и приключений.\n" +
                "В лагере Вы сможете отдохнуть и восстановить свои здоровье и выносливость.\n" +
                "Восточнее Вас начинается лес, тропинка которой ведёт ко входу в пещеру.\n" +
                "В лесу можно набраться боевого опыта, сражаясь с небольшими монстрами, а также найти что-нибудь ценное.\n" +
                "В пещере Вас будут ждать более сильные и опасные враги, но и награда возрастает в несколько раз.\n" +
                "На юге лежит деревня, через котороую лежит путь отсюда.\n" +
                "Больше в этой деревне делать нечего.\n\n", txt2);
            Print.Print1(txt);
            Console.ReadKey();
            txt = string.Format(
                "У Вашего персонажа есть показатели выносливаости, уровня и золота.\n" +
                "Выносливость - ресурс, тратящийся на любой выход из лагеря (кроме выхода через деревню. Если Вы пойдёте в деревню, Вы направитесь к выходу, тем самым завершитв игру).\n" +
                "Выносливость восстанавливается, когда Вы отдыхаете в лагере.\n" +
                "Сила определяет, сможете ли Вы победить монстра.\n" +
                "Показатель силы растёт вместе с уровнем\n" +
                "Уровень поднимается, когда персонаж набирается опыта в лесу, пещере или на заданиях.\n" +
                "Золото - золото.\n" +
                "Зарабатывается в походах. Так же, если на Вас нападут разбойники и Вы не сможете отбиться, потерятеся часть золота.\n" +
                "Всего Вы имеете 5 единиц выносливости и 100 золота начального капитала.\n\n");
            Print.Print1(txt);
            Console.ReadKey();
            txt = "Итак...\n\n";
            Print.Print1(txt);
            Console.ReadKey();
            character.Name = txt2;
            Locations loc = new Locations();

            loc.Camp(character);
        }
예제 #4
0
        private void BattleCave(CharacterInfo inf, MobsInfo itsmob)
        {
            i = rand.Next(1, 4);
            string txt;

            switch (i)
            {
            case 1:
                txt = string.Format("Вы оазались окружены сталагмитами. " +
                                    "За одним из них оказался {0}. " +
                                    "Вы вступаете в бой.\n", itsmob.Name);
                Print.Print2(txt);
                Console.ReadKey();
                break;

            case 2:
                txt = string.Format("Вы нашли вход в шахту и решили пойти вдоль рельсов. " +
                                    "После череды поворотов влево или вправо на развилках, рельсы, наконец, закончились. " +
                                    "Вас уже поджидал {0}. " +
                                    "Вы вступаете в бой.\n", itsmob.Name);
                Print.Print2(txt);
                Console.ReadKey();
                break;

            case 3:
                txt = string.Format("Вы нашли пещерное озеро. " +
                                    "Стоя и наблюдая красоту подземной водной глади, Вы не заметили, как сзади подкрался {0} " +
                                    "Вы вступаете в бой.\n", itsmob.Name);
                Print.Print2(txt);
                Console.ReadKey();
                break;
            }
            string text;

            if (inf.Strength >= itsmob.Strength)
            {
                text      = string.Format("Вы одержали победу!\nВы возвращаетесь в лагерь, приобретя {0} опыта и {1} золота.\n", itsmob.Exp, itsmob.Gold);
                inf.Exp  += itsmob.Exp;
                inf.Gold += itsmob.Gold;
                inf.Itsvictory++;
                Print.Print2(text);
                Console.ReadKey();
            }
            else
            {
                text = string.Format("Вражеский {0} одержал победу! Вы возвращаетесь в лагерь ни с чем.", itsmob.Name);
                Print.Print2(text);
                Console.ReadKey();
            }
        }
예제 #5
0
        private void BattleWood(CharacterInfo character, MobsInfo itsmob)
        {
            int    i = rand.Next(1, 4);
            string txt;

            switch (i)
            {
            case 1:
                txt = string.Format("Вы шли по лесу и вышли на небольшую чащу, в центре которой был {0}. " +
                                    "Вы вступаете в бой.\n", itsmob.Name);
                Print.Print2(txt);
                Console.ReadKey();
                break;

            case 2:
                txt = string.Format("За очередным деревом, располагающимся у лесной тропы, вдоль которой Вы шли, оказался враждебный {0}. " +
                                    "Вы вступаете в бой.\n", itsmob.Name);
                Print.Print2(txt);
                Console.ReadKey();
                break;

            case 3:
                txt = string.Format("Лесная тропа заводила Вас всё глубже в лес, пока не Вы не оказались в тупике, в котором Вас уже ждал {0}. " +
                                    "Вы вступаете в бой.\n", itsmob.Name);
                Print.Print2(txt);
                Console.ReadKey();
                break;
            }
            string text;

            if (character.Strength >= itsmob.Strength)
            {
                text                 = string.Format("Вы одержали победу!\nВы возвращаетесь в лагерь, приобретя {0} опыта и {1} золота.\n", itsmob.Exp, itsmob.Gold);
                character.Exp       += itsmob.Exp;
                character.Gold      += itsmob.Gold;
                character.Itsvictory = 1;
                Print.Print2(text);
                Console.ReadKey();
            }
            else
            {
                text = string.Format("Вражеский {0} одержал победу! Вы возвращаетесь в лагерь ни с чем.", itsmob.Name);
                Print.Print2(text);
                Console.ReadKey();
            }
            Camp(character);
        }
예제 #6
0
        private void Village(CharacterInfo character)
        {
            txt = "Вы в деревне.\n\n" +
                  "Покинув деревню, вы окончательно завершите игру.\n" +
                  "Доступные действия:\n" +
                  "\"да\" - покинуть игру;\n" +
                  "\"нет\" - вернуться в лагерь.\n" +
                  "Вы уверены, что хотите покинуть деревню?\n\n";
            Print.Status(character);
            Print.Print2(txt);
            string txt2;
            int    q;

            do
            {
                q    = 0;
                txt2 = Console.ReadLine();
                switch (txt2)
                {
                case "да":
                    txt = "Благодарим за игру! ;)\n";
                    Console.Clear();
                    for (int i = 0; i < txt.Length; i++)
                    {
                        Console.Write(txt[i]);
                        Thread.Sleep(500);
                    }
                    break;

                case "нет":
                    Camp(character);
                    break;

                default:
                    q   = 1;
                    txt = "Вы некорректно ввели действие, которое необходимо совершить, или вообще не ввели его, попробуйте ещё раз.\n\n";
                    Print.Print2(txt);
                    break;
                }
            } while (q == 1);
        }
예제 #7
0
        public void Camp(CharacterInfo character)
        {
            if (character.Stamina == 0)
            {
                txt = "У Вас 0 выносливости - вы не можете выполнять действия.\n" +
                      "Введите \"отдых\" для восполнения выносливости.";
                Print.Print2(txt);
                do
                {
                    q   = 0;
                    txt = Console.ReadLine();
                    switch (txt)
                    {
                    case "отдых":
                        character.Day++;
                        character.Stamina = 15;
                        txt = "Выносливость восстанавливается...\n";
                        Print.Print2(txt);
                        txt = "Выносливость восстановлена! Можете начать новый день полными энергии";
                        Thread.Sleep(15000);
                        Print.Print2(txt);
                        Console.ReadKey();
                        break;

                    default:
                        txt = "Вы не можете ввести что-либо, кроме действия \"отдых\", т.к. у Вас нет выносливости.\n";
                        Print.Print2(txt);
                        q = 1;
                        break;
                    }
                } while (q == 1);
                Camp(character);
            }
            txt = "Вы находитесь в лагере.\n\n" +
                  "Доступные действия:\n" +
                  "\"лес\" - отправиться в лес искать и убивать лесных монстров;\n" +
                  "\"пещера\" - искать в пещере неприятности и пещерных монстров, возможно нахождение клада;\n" +
                  "\"деревня\" - завершить игру;\n" +
                  "\"отдых\" - отдохнуть и восполнить силы.\n" +
                  "Ваши действия?\n\n";
            string txt2;

            Print.Status(character);
            Print.Print2(txt);
            do
            {
                q    = 0;
                txt2 = Console.ReadLine();
                switch (txt2)
                {
                case "лес":
                    Wood(character);
                    break;

                case "пещера":
                    if (character.Strength <= 60)
                    {
                        txt = "Вы должны достичь 12 уровня, чтобы открыть доступ к локации.";
                        Print.Print2(txt);
                        Console.ReadKey();
                        Camp(character);
                    }
                    Cave(character);
                    break;

                case "деревня":
                    Village(character);
                    break;

                case "отдых":
                    character.Day++;
                    character.Stamina = 15;
                    txt = "Выносливость восстанавливается...\n";
                    Print.Print2(txt);
                    txt = "Выносливость восстановлена! Можете начать новый день полными энергии";
                    Thread.Sleep(15000);
                    Print.Print2(txt);
                    Console.ReadKey();
                    Camp(character);
                    break;

                default:
                    q   = 1;
                    txt = "Вы некорректно ввели действие, которое необходимо совершить, или вообще не ввели его, попробуйте ещё раз.\n\n";
                    Print.Print2(txt);
                    break;
                }
            } while (q == 1);
        }
예제 #8
0
        private void Wood(CharacterInfo character)
        {
            character.Stamina--;
            string txt = "Вы в лесу.\n\n";

            Print.Status(character);
            Print.Print2(txt);
            i = rand.Next(1, 10);
            character.Itsvictory = 0;
            switch (i)
            {
            case 1:
                BattleWood(character, wmobs.posion_ivy);
                i = rand.Next(3);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Posion_stem++;
                    txt = "Вы получили: стебель ядовитого  плюща.\n";     //Вероятность выпадения: 50%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 2:
                BattleWood(character, wmobs.racoon);
                i = rand.Next(4);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Racoon_skin++;
                    txt = "Вы получили: шкура енота.\n";     //Вероятность выпадения: 33%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 3:
                BattleWood(character, wmobs.fox);
                i = rand.Next(4);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Fox_skin++;
                    txt = "Вы получили: лисья шкура.\n";     //Вероятность выпадения: 33%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 4:
                BattleWood(character, wmobs.snake);
                i = rand.Next(5);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Snake_canine++;
                    txt = "Вы получили: клык змеи.\n";     //Вероятность выпадения: 25%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 5:
                BattleWood(character, wmobs.hawk);
                i = rand.Next(5);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Hawk_pen++;
                    txt = "Вы получили: перо ястреба.\n";     //Вероятность выпадения: 25%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 6:
                BattleWood(character, wmobs.boar);
                i = rand.Next(5);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Boar_skin++;
                    txt = "Вы получили: шкура дикого кабана.\n";     //Вероятность выпадения: 25%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 7:
                BattleWood(character, wmobs.wolf);
                i = rand.Next(6);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Wolf_skin++;
                    txt = "Вы получили: шкура волка.\n";     //Вероятность выпадения: 20%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 8:
                BattleWood(character, wmobs.bear);
                i = rand.Next(6);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Bear_skin++;
                    txt = "Вы получили: шкура медведя.\n";     //Вероятность выпадения: 20%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;

            case 9:
                BattleWood(character, wmobs.gryphon);
                if (character.Itsvictory == 1)
                {
                    character.Gryphon_killed++;
                }
                i = rand.Next(11);
                if (character.Itsvictory == 1 && i == 1)
                {
                    character.Gryphon_pen++;
                    txt = "Поздравляем! Вы получили редкий предмет: перо грифона. Вы можете обменять его на нечто ценное.\n";     //Вероятность выпадения: 10%
                    Print.Print2(txt);
                    Console.ReadKey();
                }
                break;
            }
        }