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; } }
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(); }