Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace Задача_7
- {
- class Program
- {
- static void Main(string[] args)
- {
- /* -------Hotfix 25.01.2019----------
- 1) Теперь Драгуслейв корректно уходит в кд. Увеличен откат до 3 ходов.
- 2) "Да будет свет" Гаури - время действия снижено до 2 ходов. Откат 3 хода.
- 2) Распознавание команды больше не зависит от регистра. Мы бережем ваши нервы.
- 3) Теперь команды можно вводить номером (например 1, 2 и т.д.).
- */
- Console.WriteLine("ШАБРАНИГДУ ПРОБУДИЛСЯ!\nУдастся ли Великой Лине \"Дажедре\" Инверс и её спутнику Гаури Габриеву одержать победу?\nПринимите командование на себя, бросьте вызов Рубиноокому Повелителю Тьмы!");
- Console.WriteLine();
- Console.WriteLine("Каждый ход Лина и Гаури могут совершить по одному действию. Если один из них атакует, второй атаковать не может. У Лины 75 очков здоровья, у Гаури 130. После атаки, Шабранигду наносит 35 урона нападавшему. Если никто не атакует, наносит массовую атаку в 20 урона. Если Лина или Гаури умрет, Шабранигду уничтожит мир! У Шабранигду 1000 хп");
- Console.WriteLine();
- Console.WriteLine("Доступные действия Лины Инверс:\n1)Драгуслейв - Мощное заклинание наносящее 200 урона. Откат 3 хода.\n2)Фаербол - Простая атака огенным шаром. Наносит 70 урона.\n3)Селфхил - Самолечение. Востанавливает 20 здоровья.\n4)Хил Гаури - Востанавливает 30 здоровья Гаури.");
- Console.WriteLine();
- Console.WriteLine("Доступные действия Гаури Габриева:\n1)Да будет свет - Активирует световой меч. Длительность 2 хода. Откат 3 хода.\n2)Атака - Простая атака мечом. Наносит 20 урона. Если активирован световой меч, вместо это наносит 100 урона.\n3)Выпить зелье - Востанавливает 50 здоровья\n4)Блок - Снижает урон Шабранигду до 10 единиц. В этот ход невозможно атаковать.");
- Console.WriteLine();
- Console.WriteLine("От Вас зависит судьба мира! Победите Шабранигду, Спасите человечество!");
- int hp_boss = 1000;
- int hp_lina = 75;
- int hp_gauri = 130;
- int Dragonslayer_cd = 0;
- int Light_sword_cd = 0;
- int Light_sword_duration = 0;
- while (hp_boss > 0 && hp_lina > 0 && hp_gauri > 0)
- {
- string current_action_lina = "";
- string current_action_gauri = "";
- int lina_status = 0;
- int gauri_status = 0;
- Light_sword_duration--;
- Dragonslayer_cd--;
- Light_sword_cd--;
- if (Light_sword_cd < 0) Light_sword_cd = 0;
- if (Dragonslayer_cd < 0) Dragonslayer_cd = 0;
- if (Light_sword_duration < 0) Light_sword_duration = 0;
- if (hp_lina > 75) hp_lina = 75;
- if (hp_gauri > 130) hp_gauri = 130;
- //Вывод статуса
- Console.WriteLine();
- if (Dragonslayer_cd == 0)
- {
- if (Light_sword_cd > 0)
- {
- if (Light_sword_duration > 0)
- Console.WriteLine("Статус:\nУ Лины {0} очков здоровья, Драгуслейв готов\nУ Гаури {1} здоровья. Световой меч активирован\nУ Шабранигду сталось {2} здоровья", hp_lina, hp_gauri, hp_boss);
- else
- Console.WriteLine("Статус:\nУ Лины {0} очков здоровья, Драгуслейв готов\nУ Гаури {1} здоровья. Световой меч не активирован. Активация не готова.\nУ Шабранигду сталось {2} здоровья", hp_lina, hp_gauri, hp_boss);
- }
- else Console.WriteLine("Статус:\nУ Лины {0} очков здоровья, Драгуслейв готов\nУ Гаури {1} здоровья. Световой меч не активирован. Можно активировать.\nУ Шабранигду сталось {2} здоровья", hp_lina, hp_gauri, hp_boss);
- }
- else
- {
- if (Light_sword_cd > 0)
- {
- if (Light_sword_duration > 0)
- Console.WriteLine("Статус:\nУ Лины {0} очков здоровья, Драгуслейв не готов\nУ Гаури {1} здоровья. Световой меч активирован\nУ Шабранигду сталось {2} здоровья", hp_lina, hp_gauri, hp_boss);
- else
- Console.WriteLine("Статус:\nУ Лины {0} очков здоровья, Драгуслейв не готов\nУ Гаури {1} здоровья. Световой меч не активирован. Активация не готова.\nУ Шабранигду сталось {2} здоровья", hp_lina, hp_gauri, hp_boss);
- }
- else Console.WriteLine("Статус:\nУ Лины {0} очков здоровья, Драгуслейв не готов\nУ Гаури {1} здоровья. Световой меч не активирован. Можно активировать. \nУ Шабранигду сталось {2} здоровья", hp_lina, hp_gauri, hp_boss);
- }
- //Выбор действий
- Console.WriteLine();
- while ((lina_status == 0) || (gauri_status == 0))
- {
- Console.Write("Выберите персонажа(Лина/Гаури): ");
- string current_character = Console.ReadLine();
- switch (current_character.ToLower())
- {
- case "1":
- case "лина":
- while (lina_status == 0)
- {
- //Выбор действий Лины до Гаури
- Console.Write("Выберите действие для Лины: ");
- current_action_lina = Console.ReadLine();
- switch (current_action_lina.ToLower())
- {
- case "1":
- case "драгуслейв":
- if (Dragonslayer_cd < 1)
- {
- hp_boss -= 200;
- lina_status = 1;
- Dragonslayer_cd = 4;
- }
- else Console.WriteLine("Драгуслейв на кулдауне. Осталось {0} ходов.", Dragonslayer_cd);
- break;
- case "2":
- case "фаербол":
- hp_boss -= 70;
- lina_status = 2;
- break;
- case "3":
- case "селфхил":
- hp_lina += 20;
- lina_status = 3;
- break;
- case "4":
- case "хил гаури":
- hp_gauri += 30;
- lina_status = 4;
- break;
- case "список":
- Console.WriteLine();
- Console.WriteLine("Доступные действия Лины Инверс:\n1)Драгуслейв - Мощное заклинание наносящее 200 урона. Откат 2 хода.\n2)Фаербол - Простая атака огенным шаром. Наносит 70 урона.\n3)Селфхил - Самолечение. Востанавливает 20 здоровья.\n4)Хил Гаури - Востанавливает 30 здоровья Гаури.");
- Console.WriteLine();
- break;
- default:
- Console.WriteLine("Не правильное действие. Для вывода списка действий введите 'список'. Регистр учитывается");
- break;
- }
- }
- while (gauri_status == 0)
- {
- //Выбор действий Гаури после Лины
- Console.Write("Выберите действие для Гаури: ");
- current_action_gauri = Console.ReadLine();
- switch (current_action_gauri)
- {
- case "1":
- case "да будет свет":
- if (Light_sword_cd == 0)
- {
- Light_sword_cd = 4;
- Light_sword_duration = 3;
- gauri_status = 1;
- } else Console.WriteLine("Световой меч на кулдауне. Осталось {0} ходов.", Light_sword_cd);
- break;
- case "2":
- case "атака":
- if (lina_status == 1 || lina_status == 2) Console.WriteLine("Лина уже атакует. Выберите другое действие.");
- else
- {
- if (Light_sword_duration != 0)
- {
- hp_boss -= 100;
- gauri_status = 2;
- }
- else
- {
- hp_boss -= 20;
- gauri_status = 3;
- }
- break;
- }
- break;
- case "3":
- case "выпить зелье":
- hp_gauri += 50;
- gauri_status = 4;
- break;
- case "4":
- case "блок":
- if (lina_status == 1 || lina_status == 2) Console.WriteLine("Лина уже атакует. Выберите другое действие.");
- else
- {
- gauri_status = 5;
- }
- break;
- case "список":
- Console.WriteLine();
- Console.WriteLine("Доступные действия Гаури Габриева:\n1)Да будет свет - Активирует световой меч. Длительность 3 хода.\n2)Атака - Простая атака мечом. Наносит 20 урона. Если активирован световой меч, вместо это наносит 100 урона.\n3)Выпить зелье - Востанавливает 50 здоровья\n4)Блок - Снижает урон Шабранигду до 10 единиц. В этот ход невозможно атаковать.");
- Console.WriteLine();
- break;
- default:
- Console.WriteLine("Не правильное действие. Для вывода списка действий введите 'список'. Регистр учитывается");
- break;
- }
- }
- break;
- case "2":
- case "гаури":
- while (gauri_status == 0)
- {
- // Выбор действий Гаури до Лины
- Console.Write("Выберите действие для Гаури: ");
- current_action_gauri = Console.ReadLine();
- switch (current_action_gauri)
- {
- case "1":
- case "да будет свет":
- if (Light_sword_cd == 0)
- {
- Light_sword_cd = 4;
- Light_sword_duration = 3;
- gauri_status = 1;
- }
- else Console.WriteLine("Световой меч на кулдауне. Осталось {0} ходов.", Light_sword_cd);
- break;
- case "2":
- case "атака":
- if (Light_sword_duration != 0)
- {
- hp_boss -= 100;
- gauri_status = 2;
- }
- else
- {
- hp_boss -= 20;
- gauri_status = 3;
- }
- break;
- case "3":
- case "выпить зелье":
- hp_gauri += 50;
- gauri_status = 4;
- break;
- case "4":
- case "блок":
- gauri_status = 5;
- break;
- case "список":
- Console.WriteLine();
- Console.WriteLine("Доступные действия Гаури Габриева:\n1)Да будет свет - Активирует световой меч. Длительность 3 хода.\n2)Атака - Простая атака мечом. Наносит 20 урона. Если активирован световой меч, вместо это наносит 100 урона.\n3)Выпить зелье - Востанавливает 50 здоровья\n4)Блок - Снижает урон Шабранигду до 10 единиц. В этот ход невозможно атаковать.");
- Console.WriteLine();
- break;
- default:
- Console.WriteLine("Не правильное действие. Для вывода списка действий введите 'список'. Регистр учитывается");
- break;
- }
- }
- while (lina_status == 0)
- {
- //Выбор действий Лины после Гаури
- Console.Write("Выберите действие для Лины: ");
- current_action_lina = Console.ReadLine();
- switch (current_action_lina)
- {
- case "1":
- case "драгуслейв":
- if (gauri_status == 2 || gauri_status == 3 || gauri_status == 4) Console.WriteLine("Гаури уже атакует. Выберите другое действие.");
- else
- {
- if (Dragonslayer_cd == 0)
- {
- hp_boss -= 200;
- lina_status = 1;
- Dragonslayer_cd = 4;
- }
- else Console.WriteLine("Драгуслейв на кулдауне. Осталось {0} ходов.", Dragonslayer_cd);
- }
- break;
- case "2":
- case "фаербол":
- if (gauri_status == 2 || gauri_status == 3 || gauri_status == 4) Console.WriteLine("Гаури уже атакует. Выберите другое действие.");
- else
- {
- hp_boss += 70;
- lina_status = 2;
- break;
- }
- break;
- case "3":
- case "селфхил":
- hp_lina += 20;
- lina_status = 3;
- break;
- case "4":
- case "хил гаури":
- hp_gauri += 30;
- lina_status = 4;
- break;
- case "список":
- Console.WriteLine();
- Console.WriteLine("Доступные действия Лины Инверс:\n1)Драгуслейв - Мощное заклинание наносящее 200 урона. Откат 2 хода.\n2)Фаербол - Простая атака огенным шаром. Наносит 70 урона.\n3)Селфхил - Самолечение. Востанавливает 20 здоровья.\n4)Хил Гаури - Востанавливает 30 здоровья Гаури.");
- Console.WriteLine();
- break;
- default:
- Console.WriteLine("Не правильное действие. Для вывода списка действий введите 'список'. Регистр учитывается");
- break;
- }
- }
- break;
- default:
- Console.WriteLine("Не правильное имя персонажа. Пожалуйста введите имя 'Лина' или 'Гаури'. Регистр учитывается");
- break;
- }
- }
- //Вывод действий
- Console.WriteLine();
- switch (lina_status)
- {
- case 1:
- Console.WriteLine("Лина использует Драгуслейв! Мощное заклинание наносит 200 урона Шабранигду.");
- break;
- case 2:
- Console.WriteLine("Лина использует Фаербол. Огненный шар наносит 70 урона Шабранигду.");
- break;
- case 3:
- Console.WriteLine("Лина лечится на 20 здоровья.");
- break;
- case 4:
- Console.WriteLine("Лина восстанавливает 30 здоровья Гаури");
- break;
- }
- switch (gauri_status)
- {
- case 1:
- Console.WriteLine("Гаури активирует световой меч!");
- break;
- case 2:
- Console.WriteLine("Гаури атакует световым мечом! Мощная атака наносит 100 урона Шабранигду.");
- break;
- case 3:
- Console.WriteLine("Гаури совершает обычную атаку. Наносит 20 урона Шабранигду.");
- break;
- case 4:
- Console.WriteLine("Гаури выпивает зелье. Востановливает 50 здоровья.");
- break;
- case 5:
- Console.WriteLine("Гаури принимает оборонительную стойку.");
- break;
- }
- //Атака босса
- if (hp_boss > 0)
- {
- //Атака по Лине
- switch (lina_status)
- {
- case 1:
- if (hp_lina > 75) hp_lina = 40;
- else hp_lina -= 35;
- Console.WriteLine("Шабранигду атакует Лину.");
- break;
- case 2:
- if (hp_lina > 75) hp_lina = 40;
- else hp_lina -= 35;
- Console.WriteLine("Шабранигду атакует Лину.");
- break;
- }
- //Атака по Гаури
- switch (gauri_status)
- {
- case 2:
- if (hp_gauri > 130) hp_gauri = 95;
- else hp_gauri -= 35;
- Console.WriteLine("Шабранигду атакует Гаури.");
- break;
- case 3:
- if (hp_gauri > 130) hp_gauri = 95;
- else hp_gauri -= 35;
- Console.WriteLine("Шабранигду атакует Лину.");
- break;
- case 5:
- if (hp_gauri > 130) hp_gauri = 120;
- else hp_gauri -= 10;
- Console.WriteLine("Гаури блокирует атаку Шабранигду.");
- break;
- }
- //Массовая атака
- if ((lina_status == 3 || lina_status == 4) && (gauri_status == 1 || gauri_status == 4))
- {
- if (hp_lina > 75) hp_lina = 55;
- else hp_lina -= 20;
- if (hp_gauri > 130) hp_gauri = 110;
- else hp_gauri -= 20;
- Console.WriteLine("Никто не атаковал. Шабранигду наносит массовую атаку!");
- }
- }
- }
- //Завершение игры
- Console.WriteLine();
- if (!(hp_boss > 0))
- {
- Console.WriteLine("Поздравляю! Шабранигду повержен! Мир спасен!\nВы герой человечества!");
- Console.ReadKey();
- }
- else if (!(hp_lina > 0))
- {
- Console.WriteLine("Лина погибла! Игра окончена.");
- Console.ReadKey();
- }
- else
- {
- Console.WriteLine("Гаури погиб! Игра окончена.");
- Console.ReadKey();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment