예제 #1
0
        public static void Quest()
        {
            City.currentPlotState = City.QuestState.Completed;
            switch (questNum)
            {
            case 1:
                Console.Clear();
                RPG.Dialogue("Вы дошли до синего источника");
                RPG.Dialogue("Как и ожидалось, всё здесь синее.");
                RPG.Dialogue("Источник представлял из себя небольшую речку, начало которой виднелось на горизонте.");
                RPG.Dialogue("Вы проходите вглубь, ощущая свежесть окружающего воздуха.");
                RPG.Dialogue("Вы чувствуете расслабление и решаете присесть.");
                RPG.Dialogue("\n...");
                RPG.Dialogue("\nИз-за деревьев выходит Страж.");
                RPG.Dialogue("\nЧёрт, подумали вы.");

                monster = new Monster[1]
                {
                    new Monster
                    {
                        HP     = 100 + 20 * LVL,
                        Damage = 20 + 2 * LVL,
                        Name   = "Страж",
                        Type   = Monster.MType.Standart,
                    }
                };
                Fight.Init(monster, true);
                break;

            case 2:
                Console.Clear();
                RPG.Dialogue("Вы следуете по маршруту торговца, уходя глубоко в лес.");
                RPG.Dialogue("С каждым шагом окружающая тишина становится всё подозрительнее.");
                RPG.Dialogue("Туман густеет.");
                RPG.Dialogue("Давление обстановки растёт.");
                RPG.Dialogue("Вы наткнулись на следы колёс.");
                RPG.Dialogue("Последовать по ним кажется хорошей идеей.");
                RPG.Dialogue("\n...");
                RPG.Dialogue("\nЭто будет долгий поход.");

                Dungeons.Init(questNum);

                RPG.Dialogue("\nВы подошли к разрушенной повозке.");
                RPG.Dialogue("\nА рядом с ней...");
                RPG.Dialogue("\nМёртвый торговец.");
                RPG.Dialogue("\nСледов нападения не видно.");
                RPG.Dialogue("Исследовав повозку, вы не нашли ни одного товара.");
                RPG.Dialogue("Только много гари.");
                RPG.Dialogue("Возможно, повозка загорелась, и торговец не смог спастись?");
                RPG.Dialogue("Возможно, торговец вёз взрывчатку.");
                RPG.Dialogue("\nСтранное дело.");
                RPG.Dialogue("\n...");
                RPG.Dialogue("\nВы заметили медальон на торговце.");
                RPG.Dialogue("Вы его взяли, без особой цели. Он не выглядит дорогостоящим.");
                RPG.Dialogue("Кроме красного камня посередине. Но его достать оттуда пркатически невозможно.");
                RPG.Dialogue("\nНа обратной стороне медальона написано '963'");
                RPG.Dialogue("\nЧто бы это не значило.");
                RPG.Dialogue("\nВы начали возвращаться.");

                Dungeons.Init(questNum, 1);

                RPG.Dialogue("\nПеред вами стоит монстр.");
                RPG.Dialogue("Что не удивительно.");

                monster = new Monster[1]
                {
                    new Monster
                    {
                        HP     = 400 + 30 * LVL,
                        Damage = 30 + 3 * LVL,
                        Name   = "Заградитель",
                        Type   = Monster.MType.Fire
                    }
                };
                Fight.Init(monster, true);
                break;

            case 3:
                Console.Clear();
                RPG.Dialogue("Вход в подвал находится снаружи.");
                RPG.Dialogue("Видимо, так удобнее?");
                RPG.Dialogue("Вы спустились в подвал таверны.");
                RPG.Dialogue("Здесь довольно темно.");
                RPG.Dialogue("Единственное освещение это свет из открытой двери.");
                RPG.Dialogue("В конце подвала видно только чёрный туман.");
                RPG.Dialogue("\nВы начинаете движение в его сторону.");

                Dungeons.Init(questNum);

                RPG.Dialogue("\nКак и ожидалось:");
                RPG.Dialogue("Внутри тумана монстр.");

                monster = new Monster[1]
                {
                    new Monster
                    {
                        HP     = 600 + 40 * LVL,
                        Damage = 40 + 8 * LVL,
                        Name   = "Туманный зверь",
                        Type   = Monster.MType.Dark
                    }
                };
                Fight.Init(monster, true);

                RPG.Dialogue("Тело монстра рассеялось в тумане.");
                RPG.Dialogue("Время возвращаться.");

                Dungeons.Init(questNum, 1);

                RPG.Dialogue("\nПохоже, что дверь заклинило.");
                RPG.Dialogue("Можно попробовать найти другой выход.");
                RPG.Dialogue("Можно выломать дверь.");

                Console.WriteLine("Что делать?" +
                                  "\n1 - Выломать" +
                                  "\n2 - Найти другой выход");

                if (Console.ReadLine() == "1")
                {
                    brokeOut = true;

                    RPG.Dialogue("\nВы успешно выломали дверь.");
                    RPG.Dialogue("Будет очень неприятно снова встретить Охру.");
                }

                else
                {
                    RPG.Dialogue("\nНет, ломать дверь действительно не стоит.");
                    RPG.Dialogue("Ведь из подвала есть ещё один выход в город.");

                    Dungeons.Init(questNum, 2);

                    RPG.Dialogue("\nНу вот.");
                    RPG.Dialogue("И не нужно никакой излишней жестокости!");
                }

                break;

            default:
                Console.WriteLine("Хз чёт");
                break;
            }
        }
예제 #2
0
파일: RPG.cs 프로젝트: deltarritte/Text-RPG
        static public void GetRandomEvent()
        {
            Fancies();

            Monster test = new Monster();

            Console.WriteLine("\nИгрок:" +
                              $"\nHP: {HP}/{MaxHP} [{HPLine}]");

            if (LVL != 15)
            {
                Console.WriteLine($"УР {LVL}: {XP}/{MaxXP} [{XPLine}]");
            }
            else
            {
                Dialogue($"LVL {LVL}: {XP}/{MaxXP} [{XPLine}] " +
                         $"\nОчки мастерства: {MasteryPoints}", true, ConsoleColor.Yellow);
            }

            Console.WriteLine($"Деньги: {Player.Money}");

            Console.WriteLine("\nЛес - 1, Задание - 2, Город - 3");
            if (towerLoc)
            {
                Console.WriteLine("Заброшенная башня - 9");
            }
            Console.WriteLine("Сохранить игру - s, Загрузить игру - l, Достижения - a, Инвентарь - i");

            switch (Console.ReadLine())
            {
            case "1":

                Console.Clear();
                int Event = rnd.Next(0, 10);

                if (Event < 5)
                {
                    Console.WriteLine("Тут ничего");
                }
                else if (Event == 5)
                {
                    Money         = rnd.Next(0, 10) + 2 * LVL;
                    Player.Money += Money;
                    Dialogue("Ого, сундук" +
                             "\nВы получили " + Money + " монет", true, ConsoleColor.Yellow);
                }
                else
                {
                    Fight.Init();
                }
                break;

            case "2":

                Console.Clear();

                if (City.currentPlotState == City.QuestState.Accepted)
                {
                    Console.WriteLine("Доступно сюжетное задание.");

                    switch (questNum)
                    {
                    case 1:
                        Console.WriteLine("Рекомендуемый уровень: 4");
                        break;

                    case 2:
                        Console.WriteLine("Рекомендуемый уровень: 7");
                        break;

                    case 3:
                        Console.WriteLine("Рекомендуемый уровень: 8");
                        break;
                    }

                    Console.WriteLine("Вы хотите начать это задание? Да - 1, Нет - 2");

                    if (Console.ReadLine() == "1")
                    {
                        PlotQuests.Quest();
                    }
                }

                else
                {
                    Console.WriteLine("Нет доступных заданий.");
                }
                break;

            case "3":
                City.GoToCity();
                break;

            case "4":
                Dungeons.Init(0);
                Console.Clear();
                break;

            case "9":
                if (towerLoc)
                {
                    Tower.Entry();
                    Console.Clear();
                }
                else
                {
                    goto default;
                }
                break;

            case "a":
                AchievementMenu.ShowList();
                Console.Clear();
                break;

            case "i":
                InventoryMenu.ShowMenu();
                break;

            case "l":
                LoadProgress(false);
                Console.Clear();
                break;

            case "s":
                SaveProgress(true);
                Console.Clear();
                break;

            case "fight poison":
                test.Type = Monster.MType.Poisonous;
                goto case "fight";

            case "fight explosive":
                test.Type = Monster.MType.Explosive;
                goto case "fight";

            case "fight thorned":
                test.Type = Monster.MType.Thorned;
                goto case "fight";

            case "fight fire":
                test.Type = Monster.MType.Fire;
                goto case "fight";

            case "fight ice":
                test.Type = Monster.MType.Ice;
                goto case "fight";

            case "fight dark":
                test.Type = Monster.MType.Dark;
                goto case "fight";

            case "fight light":
                test.Type = Monster.MType.Luminous;
                goto case "fight";

            case "fight":
                test.HP     = 262260;
                test.Damage = 0;
                test.Name   = "тестовый монстр-босс";
                Fight.Init(new Monster[1] {
                    test
                }, true);
                break;

            case "fight 2":
                Fight.Init(2);
                break;

            case "bring balance":
                for (int i = 0; i < Passive_Inventory.Length; i++)
                {
                    if (Passive_Inventory[i].ID == 0)
                    {
                        Passive_Inventory[i] = new Yang_W();
                        break;
                    }
                }
                for (int i = 0; i < Passive_Inventory.Length; i++)
                {
                    if (Passive_Inventory[i].ID == 0)
                    {
                        Passive_Inventory[1] = new Ying_A();
                        break;
                    }
                }
                break;

            case "scrooge":
                Console.Clear();
                Player.Money += 1000000;
                break;

            case "gototavern":
                if (questNum == 0)
                {
                    questNum = 1;
                }
                City.GoToTavern();
                break;

            case "lvlup":
                LvlUp(true);
                break;

            case "gearupg":
                City.GearUpgrade(true);
                break;

            case "allthexp":     //Дать максимальный уровень.
                //Кол-во опыта считается так: a*(1 + 2^0 + 2^1 + 2^2 + 2^3 + 2^4 + 2^5 ... + 2^n-3), где a - начальное кол-во опыта, n - необходимый уровень
                XP = 204800;
                LvlUp();
                break;

            case "questscomplete":     //"Выполнить" квесты
                Console.Clear();
                questNum = 15;
                break;

            case "cheatsheet":    //Список отладочных команд
                Console.Clear();
                Console.WriteLine("scrooge - +1.000.000 монет\n" +
                                  "gototavern - пойти в таверну\n" +
                                  "lvlup - повысить уровень\n" +
                                  "gearupg - улучшить экипировку\n" +
                                  "allthexp - получить двадцатый уровень\n" +
                                  "questscomplete - выполнить все квесты (без награды)");
                break;

            default:
                Console.Clear();
                Console.WriteLine("Нет команды.");
                break;
            }

            GetRandomEvent();
        }