Advertisement
MaoChessy

Task 14

Oct 24th, 2020 (edited)
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2.  
  3. namespace C_sharp_Light
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Random rand = new Random();
  10.  
  11.             int playerHp = rand.Next(185,215);
  12.             int playerManaMax = rand.Next(80,180);
  13.             int playerMana = playerManaMax;
  14.             int playerForce = rand.Next(1, 11);
  15.  
  16.             int bossHp = rand.Next(185, 215);
  17.             int bossManaMax = rand.Next(80, 180);
  18.             int bossMana = bossManaMax;
  19.             int bossForce = rand.Next(1,11);
  20.  
  21.             int damage;
  22.             int recoveryHp;
  23.  
  24.             while (playerHp > 0 && bossHp > 0)
  25.             {
  26.                 Console.Clear();
  27.  
  28.                 // Описание заклинаний игрока
  29.                 Console.SetCursorPosition(0, 15);
  30.                 Console.ForegroundColor = ConsoleColor.Red;
  31.                 Console.WriteLine("Заклинания:\n" +
  32.                     "1 - Огненный шар - 10 манны; урон базовый 18\n" +
  33.                     "2 - Восстановление - 35 манны; восстановление 40\n" +
  34.                     "3 - Огненный шторм (сила >= 7) - 40 манны; базовый урон 30 (всем)\n" +
  35.                     "4 - пропуск хода - восстановление манны 40 +- 5\n" +
  36.                     "5 - Заклинание силы - 10 манны; +1 силы \n" +
  37.                     "6 - Шипы из льда (сила > 4) - 30 манны; Базовый урон 45");
  38.  
  39.                 // Вывод информации о боссе и о игроке
  40.                 Console.ForegroundColor = ConsoleColor.Blue;
  41.                 {
  42.                     Console.SetCursorPosition(0, 0);
  43.                     Console.Write($"Здоровье игрока = {playerHp}");
  44.                     Console.SetCursorPosition(28, 0);
  45.                     Console.Write($"Здоровье Ктулху = {bossHp}");
  46.                 }
  47.                 {
  48.                     Console.SetCursorPosition(0, 1);
  49.                     Console.Write($"Манна игрока = {playerMana}");
  50.                     Console.SetCursorPosition(28, 1);
  51.                     Console.Write($"Манна Ктулху = {bossMana}");
  52.                 }
  53.                 {
  54.                     Console.SetCursorPosition(0, 2);
  55.                     Console.Write($"Сила игрока = {playerForce}");
  56.                     Console.SetCursorPosition(28, 2);
  57.                     Console.Write($"Сила Ктулху = {bossForce}");
  58.                 }
  59.  
  60.                 // Ход игрока
  61.                 Console.ForegroundColor = ConsoleColor.White;
  62.                 Console.Write("\n\nВаш ход. Какое заклинание вы выберите? - ");
  63.                 Console.ForegroundColor = ConsoleColor.Green;
  64.                 switch (Convert.ToInt32(Console.ReadLine()))
  65.                 {
  66.                     case 1:
  67.                         if ((playerMana - 10) >= 0)
  68.                         {
  69.                             playerMana -= 10;
  70.                             damage = 18 + rand.Next(playerForce / 2 + playerForce);
  71.                             bossHp -= damage;
  72.                             Console.WriteLine($"Ваш огненный шар нанос урон в {damage} единиц");
  73.                         }
  74.                         else
  75.                             Console.WriteLine("У вас недостаточно манны. Пропускайте ход");
  76.                         break;
  77.                     case 2:
  78.                         if ((playerMana - 35) >= 0)
  79.                         {
  80.                             recoveryHp = 40;
  81.                             playerHp += recoveryHp;
  82.                             playerMana -= 35;
  83.                             Console.WriteLine($"Вы восстанавливайте себе {recoveryHp} здоровья");
  84.                         }
  85.                         else
  86.                             Console.WriteLine("У вас недостаточно манны. Пропускайте ход");
  87.                         break;
  88.                     case 3:
  89.                         if (playerForce >= 7)
  90.                         {
  91.                             if ((playerMana - 40) >= 0)
  92.                             {
  93.                                 playerMana -= 40;
  94.                                 damage = 30 + rand.Next(playerForce * 3);
  95.                                 bossHp -= damage;
  96.                                 playerHp -= damage;
  97.                                 Console.WriteLine($"Ваш огненный шторм нанос урон в {damage} единиц всем");
  98.                             }
  99.                             else
  100.                                 Console.WriteLine("У вас недостаточно манны. Пропускайте ход");
  101.                         }
  102.                         else
  103.                             Console.WriteLine("У вас недостаточно силы, вы пропускайте ход");
  104.                         break;
  105.                     case 4:
  106.                         int recoveryMana = rand.Next(35,46);
  107.                         Console.WriteLine($"Вы отдыхайте и восстанавливайте себе {recoveryMana} манны");
  108.                         playerMana += recoveryMana;
  109.                         if (playerMana > playerManaMax)
  110.                             playerMana = playerManaMax;
  111.                         break;
  112.                     case 5:
  113.                         if ((playerMana - 10) >= 0)
  114.                         {
  115.                             playerForce++;
  116.                             playerMana -= 10;
  117.                             Console.WriteLine($"Вы поднимайте свою силу на 1");
  118.                         }
  119.                         else
  120.                             Console.WriteLine("У вас недостаточно манны, вы пропускайте ход");
  121.                         break;
  122.                     case 6:
  123.                         if (playerForce > 4)
  124.                         {
  125.                             if ((playerMana - 30) >= 0)
  126.                             {
  127.                                 playerMana -= 30;
  128.                                 damage = 45 + rand.Next(playerForce / 2 + playerForce);
  129.                                 bossHp -= damage;
  130.                                 Console.WriteLine($"Ваши шипы наносят {damage} ктухлу");
  131.                             }
  132.                             else
  133.                                 Console.WriteLine("У вас недостаточно манны, вы пропускайте ход");
  134.                         }
  135.                         else
  136.                             Console.WriteLine("У вас недостаточно силы, вы пропускайте ход");
  137.                         break;
  138.                 }
  139.  
  140.                 // Ход ктулху
  141.                 Console.WriteLine();
  142.                 Console.ForegroundColor = ConsoleColor.White;
  143.                 Console.Write("Ктулху выбирает - ");
  144.                 if (bossMana >= 20)
  145.                 {
  146.                    
  147.                     switch (rand.Next(0, 4))
  148.                     {
  149.                         case 0:
  150.                             damage = 15 + rand.Next(-bossForce / 2, bossForce);
  151.                             Console.WriteLine("Удар щупальцем - 15 базовый урон");
  152.                             playerHp -= damage;
  153.                             Console.WriteLine($"Ктулху нанес урон в {damage} единиц.");
  154.                             break;
  155.                         case 1:
  156.                             Console.WriteLine("Проклятие утраты силы (постоянное)");
  157.                             Console.WriteLine($"Ктухлу понизил вашу силу на 1");
  158.                             playerForce--;
  159.                             break;
  160.                         case 2:
  161.                             Console.WriteLine("Восстанавливает себя - базовое восстановление 20");
  162.                             recoveryHp = rand.Next(20, 20 + bossForce * 3);
  163.                             bossHp += recoveryHp;
  164.                             Console.WriteLine($"Ктулху восстановил себе здоровье на {recoveryHp} ");
  165.                             break;
  166.                         case 3:
  167.                             damage = 45 + rand.Next(-bossForce / 2, bossForce)*3;
  168.                             Console.WriteLine("Серия ударов щупальцев - 45 базовый урон");
  169.                             playerHp -= damage;
  170.                             Console.WriteLine($"Ктулху нанес урон в {damage} единиц.");
  171.                             break;
  172.                     }
  173.                     bossMana -= 20;
  174.                 }
  175.                 else
  176.                 {
  177.                     int recoveryMana = rand.Next(15, 81);
  178.                     Console.WriteLine($"Ктулху отдыхает и восстанавливает свою манну в {recoveryMana} единиц");
  179.                     bossMana += recoveryMana;
  180.                     if (bossMana > bossManaMax)
  181.                         bossMana = bossManaMax;
  182.                 }
  183.                 Console.ReadKey();
  184.             }
  185.  
  186.             //Вывод результата битвы
  187.             Console.Clear();
  188.             if (playerHp <= 0 && bossHp <= 0)
  189.                 Console.WriteLine("Ничья");
  190.             else if (playerHp <= 0)
  191.                 Console.WriteLine("Вы проиграли");
  192.             else
  193.                 Console.WriteLine("Ктулху проиграл");
  194.  
  195.             Console.ReadKey();
  196.         }
  197.     }
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement