Advertisement
AlexStraga87

Boss fight

Feb 14th, 2020
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 10.52 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace ConsoleApp1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Random rand = new Random();
  14.             int hpPlayer = 100;
  15.             int chanceStun = 30;
  16.             int armorPlayer = 10;
  17.             int healthPotionCount = 5;
  18.             int regenerationStepCount = 0;
  19.             bool isInvisible = false;
  20.             int spellReadingCount = 0;
  21.             int currentDamage = 0;
  22.  
  23.             int hpBoss = 500;
  24.             int armorBoss = 30;
  25.             int damageBoss = 25;
  26.             bool isBossStuned = false;
  27.             int userInput = 0;
  28.  
  29.             Console.WriteLine("Перед вами финальный босс. ");    
  30.  
  31.             while (true)
  32.             {
  33.                 Console.WriteLine("");
  34.                 Console.WriteLine($"Ваши жизни {hpPlayer}, броня {armorPlayer}");
  35.                 Console.WriteLine($"Жизни босса {hpBoss}, броня {armorBoss}");
  36.  
  37.                 if (spellReadingCount == 0)
  38.                 {
  39.                     Console.WriteLine("1. Удар молнии (-20 хп, шанс стана 30%)");
  40.                     Console.WriteLine("2. Кислотные брызги (-10 хп, -5 брони");
  41.                     Console.WriteLine("3. Огненный шар (-50 хп, броня поглощает часть ущерба)");
  42.                     Console.WriteLine("4. Dragon slayer (-200 хп, броня поглощает часть ущерба, действует и на мага)");
  43.                     Console.WriteLine("5. Невидимость (Следующее заклинание отнимает х1.5 ущерб, неуязвимость во время действия. Можно пить склянки, время активации 2 хода)");
  44.                     Console.WriteLine("6. Каменная кожа (+5 брони на весь бой, эффекты складываются, максимум 75%)");
  45.                     Console.WriteLine("7. Регенерация (+5хп каждый ход в течении 10 ходов. Эффект не складывается");
  46.                     Console.WriteLine($"8. Выпить Зелье лечения (+60 хп, {healthPotionCount} в наличии)");
  47.                     Console.WriteLine("9. Пропустить ход");
  48.                     Console.WriteLine("");
  49.                
  50.                     Console.Write("Что применяете:");
  51.                     userInput = Convert.ToInt32(Console.ReadLine());
  52.                 }
  53.                 else
  54.                 {
  55.                     Console.WriteLine("Вы продолжаете читать заклинание");
  56.                 }
  57.  
  58.  
  59.                 switch (userInput)
  60.                 {
  61.                     case 1:
  62.                         currentDamage = Convert.ToInt32(20 + 20 * Convert.ToInt32(isInvisible) * 1.5f);
  63.                         hpBoss -= currentDamage;
  64.                         if (rand.Next(0, 100) <= chanceStun) isBossStuned = true;
  65.                         isInvisible = false;
  66.                         Console.WriteLine($"Вы бьете молнией на {currentDamage} ущерба");
  67.                         break;
  68.  
  69.                     case 2:
  70.                         currentDamage = Convert.ToInt32(10 + 10 * Convert.ToInt32(isInvisible) * 0.5f);
  71.                         hpBoss -= currentDamage;
  72.                         if (armorBoss > 0) armorBoss -= 5;
  73.                         isInvisible = false;
  74.                         Console.WriteLine($"Вы плюнули кислотой на {currentDamage} ущерба");
  75.                         break;
  76.  
  77.                     case 3:
  78.                         currentDamage = Convert.ToInt32((50 + 50 * Convert.ToInt32(isInvisible) * 0.5f) / 100f * (100 - armorBoss));
  79.                         hpBoss -= currentDamage;
  80.                         isInvisible = false;
  81.                         Console.WriteLine($"Огненный шар взрывается рядом с боссом и наносит {currentDamage} ущерба");
  82.                         break;
  83.  
  84.                     case 4:
  85.                         currentDamage = Convert.ToInt32((200 + 200 * Convert.ToInt32(isInvisible) * 0.5f) / 100f * (100 - armorBoss));
  86.                         hpBoss -= currentDamage;
  87.                         Console.Write($"Мощная вспышка озаряет поле боя наносит {currentDamage} ущерба боссу и ");
  88.                         currentDamage = Convert.ToInt32(200 / 100 * (100 - armorPlayer));
  89.                         hpPlayer -= currentDamage;
  90.                         Console.WriteLine($"{currentDamage} ущерба вам");
  91.                         isInvisible = false;
  92.                         break;
  93.                     case 5:
  94.                         if (spellReadingCount > 0)
  95.                         {
  96.                             spellReadingCount--;
  97.                             if (spellReadingCount == 0)
  98.                             {
  99.                                 isInvisible = true;
  100.                                 Console.WriteLine("Теперь вы невидимы!");
  101.                             }
  102.                         }
  103.                         else
  104.                         {
  105.                             spellReadingCount = 1;
  106.                             Console.WriteLine("Вы начинаете исчезать");
  107.                         }
  108.                         break;
  109.                     case 6:
  110.                         if (armorPlayer < 75) armorPlayer += 5;
  111.                         isInvisible = false;
  112.                         Console.WriteLine("Вы усиливаете свою броню");
  113.                         break;
  114.  
  115.                     case 7:
  116.                         regenerationStepCount = 10;
  117.                         isInvisible = false;
  118.                         Console.WriteLine("Вы накладываете на себя регенерацию");
  119.                         break;
  120.  
  121.                     case 8:
  122.                         if (healthPotionCount > 0)
  123.                         {
  124.                             healthPotionCount--;
  125.                             hpPlayer += 60;
  126.                             if (hpPlayer > 100) hpPlayer = 100;
  127.                             Console.WriteLine("Вы применяете бутылку лечения");
  128.                         } else
  129.                         {
  130.                             Console.WriteLine("Вы целый ход роетесть в сумке, но кажется бутылок больше нет.");
  131.                         }
  132.                         break;
  133.  
  134.                     case 9:
  135.                         Console.WriteLine("Вы пропускаете ход");                        
  136.                         break;
  137.  
  138.                     default:
  139.                         Console.WriteLine("Вы попытались применить заклинание, которое еще не освоили и зря потратили ход.");
  140.                         break;
  141.                 }
  142.  
  143.                 if (regenerationStepCount > 0 && hpPlayer > 0)
  144.                 {
  145.                     regenerationStepCount--;
  146.                     hpPlayer += 5;
  147.                     if (hpPlayer > 100) hpPlayer = 100;
  148.                     Console.WriteLine("+5хп за регенерацию");
  149.                     if (regenerationStepCount == 0) Console.WriteLine("Эффект регенерации закончен");
  150.                 }
  151.  
  152.                 if (hpBoss > 0 && hpPlayer > 0)
  153.                 {
  154.                     if (isBossStuned)
  155.                     {
  156.                         Console.WriteLine("Босс в шоке и пропускает ход");
  157.                         isBossStuned = false;
  158.                     }
  159.                     else
  160.                     {
  161.                         if (hpBoss < 200)
  162.                         {
  163.                             hpBoss += 50;
  164.                             Console.WriteLine("Босс колдует на себя лечение");
  165.                         }
  166.                         else
  167.                         {
  168.                             if (isInvisible)
  169.                             {
  170.                                 Console.WriteLine("Босс вас не видит и рыскает по арене в поисках вас");
  171.                             }
  172.                             else
  173.                             {
  174.                                 currentDamage = Convert.ToInt32(damageBoss / 100f * (100 - armorPlayer));
  175.                                 hpPlayer -= currentDamage;
  176.                                 Console.WriteLine($"Босс бьет вас Тупой Секирой Ужаса и наносит {currentDamage} ущерба");
  177.                             }
  178.                         }
  179.                     }
  180.                 }
  181.                 if (hpBoss <= 0 || hpPlayer <= 0)
  182.                 {
  183.  
  184.                     break;
  185.                 }
  186.             }
  187.  
  188.             if (hpBoss <= 0 && hpPlayer <= 0)
  189.             {
  190.                 Console.WriteLine("Босс повержен и ваша родина в безопасности. Однако вы не пережили битвы. Вас будут помнить как героя");
  191.             }
  192.             else if(hpPlayer <= 0)
  193.             {
  194.                 Console.WriteLine("Вы пали в битве в главным боссом. Вас будут помнить как героя который старался, но не смог, хотя и не долго, ведь ваша родина скоро будет уничтожена");
  195.             }
  196.             else if (hpBoss <= 0)
  197.             {
  198.                 Console.WriteLine("Босс повержен и ваша родина в безопасности. Вы лежите на арене без сил.");
  199.                 Console.WriteLine("Спустя время когда силы возвращаются к вам, вы собираете волшебные артефакты из коллекции босса и уходите.");
  200.                 Console.WriteLine("Но перед этим  издалека кидаете еще пару Dragon slayer'ов по замку... На всякий случай...");
  201.             }
  202.  
  203.             Console.WriteLine("Конец игры");
  204.             Console.ReadKey();
  205.         }
  206.     }
  207. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement