Advertisement
Yaniha

Битва с боссом

May 22nd, 2024 (edited)
521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.88 KB | None | 0 0
  1. using System;
  2.  
  3. namespace CSLight
  4. {
  5.     internal class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             const string CommandPlayerHit = "1";
  10.             const string CommandPlayerFireball = "2";
  11.             const string CommandPlayerExplosion = "3";
  12.             const string CommandPlayerHealPotion = "4";
  13.  
  14.             Random random = new Random();
  15.             int playerHealth;
  16.             int playerHealthMax = 600;
  17.             int playerMana;
  18.             int playerManaMax = 100;
  19.             int playerManaRegen = 10;
  20.             int playerHitDamage = 50;
  21.             int playerFireballDamage = 10;
  22.             int playerExplosionDamage = 220;
  23.             int playerExplosionTrueDamage;
  24.             int playerHealPotion = 350;
  25.             int playerManaPorion = 100;
  26.             int playerHealPotionCount = 4;
  27.             int playerFireballsCount = 0;
  28.             int playerFireballPrice = 40;
  29.             int playerFireballCanUse = 1;
  30.             int bossHealth = 1000;
  31.             int bossDamageMax = 151;
  32.             int bossDamageMin = 75;
  33.             int bossDamage;
  34.             bool isBattleActive = true;
  35.             string userInput;
  36.  
  37.             playerHealth = playerHealthMax;
  38.             playerMana = playerManaMax;
  39.  
  40.             while (isBattleActive)
  41.             {
  42.                 Console.Clear();
  43.                 Console.WriteLine($"Ваши жизни: {playerHealth}\n" +
  44.                     $"Ваша мана: {playerMana}\n" +
  45.                     $"Зелий исцеления: {playerHealPotionCount}\n" +
  46.                     $"Фаерболов на локации: {playerFireballsCount}");
  47.                 Console.SetCursorPosition(30, 0);
  48.                 Console.WriteLine($"Жизни босса: {bossHealth}");
  49.                 Console.SetCursorPosition(0, 5);
  50.                 Console.WriteLine($"Выберите способность:\n" +
  51.                     $"{CommandPlayerHit}.Удар (нанести {playerHitDamage} урона)\n" +
  52.                     $"{CommandPlayerFireball}.Фаерболл (нанести {playerFireballDamage} урона, + {playerFireballCanUse} фаербол на локации)(Цена: {playerFireballPrice} маны)\n" +
  53.                     $"{CommandPlayerExplosion}.Взрыв фаерболлов (за каждый фаерболл на локации нанаести {playerExplosionDamage} урона ({playerExplosionDamage * playerFireballsCount}))\n" +
  54.                     $"{CommandPlayerHealPotion}.Выпить зелье (восстановить {playerHealPotion} здоровья и {playerManaPorion} маны)");
  55.                 userInput = Console.ReadLine();
  56.  
  57.                 bossDamage = random.Next(bossDamageMin, bossDamageMax);
  58.                 playerHealth -= bossDamage;
  59.                 playerExplosionTrueDamage = playerExplosionDamage * playerFireballsCount;
  60.                 Console.Clear();
  61.  
  62.                 switch (userInput)
  63.                 {
  64.                     case CommandPlayerHit:
  65.                         bossHealth -= playerHitDamage;
  66.                         Console.WriteLine($"Вы нанесли боссу: {playerHitDamage} урона.");
  67.                         break;
  68.  
  69.                     case CommandPlayerFireball:
  70.                         if (playerMana < playerFireballPrice)
  71.                         {
  72.                             Console.WriteLine("У вас не хватает маны");
  73.                         }
  74.                         else
  75.                         {
  76.                             bossHealth -= playerFireballDamage;
  77.                             playerFireballsCount++;
  78.                             playerMana -= playerFireballPrice;
  79.                             Console.WriteLine($"Вы нанесли боссу: {playerFireballDamage} урона.");
  80.                         }
  81.                         break;
  82.  
  83.                     case CommandPlayerExplosion:
  84.                         if (playerFireballsCount > 0)
  85.                         {
  86.                             bossHealth -= playerExplosionTrueDamage;
  87.                             Console.WriteLine($"Вы нанесли боссу: {playerExplosionTrueDamage} урона");
  88.                             playerFireballsCount = 0;
  89.                         }
  90.                         else
  91.                         {
  92.                             Console.WriteLine("У вас нет фаерболлов на локации(");
  93.                         }
  94.                         break;
  95.  
  96.                     case CommandPlayerHealPotion:
  97.                         if (playerHealPotionCount <= 0)
  98.                         {
  99.                             Console.WriteLine("У вас нет зелья");
  100.                         }
  101.                         else
  102.                         {
  103.                             if (playerHealth + playerHealPotion >= playerHealthMax)
  104.                             {
  105.                                 playerHealth = playerHealthMax;
  106.                             }
  107.                             else
  108.                             {
  109.                                 playerHealth += playerHealPotion;
  110.                             }
  111.  
  112.                             if (playerMana + playerManaPorion >= playerManaMax)
  113.                             {
  114.                                 playerMana = playerManaMax;
  115.                             }
  116.                             else
  117.                             {
  118.                                 playerMana += playerManaPorion;
  119.                             }
  120.                             playerHealPotionCount--;
  121.                             Console.WriteLine("Вы принимаете зелье исциления");
  122.                         }
  123.                         break;
  124.  
  125.                     default:
  126.                         Console.WriteLine("Вы промахнулись!");
  127.                         break;
  128.                 }
  129.  
  130.                 Console.WriteLine($"Вам нанесено: {bossDamage} урона");
  131.                 Console.ReadLine();
  132.  
  133.                 if (playerMana + playerManaRegen >= playerManaMax)
  134.                 {
  135.                     playerMana = playerManaMax;
  136.                 }
  137.                 else
  138.                 {
  139.                     playerMana += playerManaRegen;
  140.                 }
  141.  
  142.                 if (playerHealth <= 0 || bossHealth <= 0)
  143.                 {
  144.                     isBattleActive = false;
  145.                 }
  146.             }
  147.  
  148.             Console.Clear();
  149.  
  150.             if (playerHealth <= 0 && bossHealth <= 0)
  151.             {
  152.                 Console.WriteLine("Вы оба погибли");
  153.             }
  154.             else if (playerHealth <= 0)
  155.             {
  156.                 Console.WriteLine("Вы погибли");
  157.             }
  158.             else
  159.             {
  160.                 Console.WriteLine("Вы победили");
  161.             }
  162.  
  163.             Console.ReadKey();
  164.         }
  165.     }
  166. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement