Advertisement
NikaBang

Бой с боссом

Oct 1st, 2024 (edited)
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.65 KB | None | 0 0
  1. using System;
  2. using System.Diagnostics;
  3.  
  4. internal class Program
  5. {
  6.     static void Main(string[] args)
  7.     {
  8.         const string CommandAttack = "1";
  9.         const string CommandFireball = "2";
  10.         const string CommandBigBang = "3";
  11.         const string CommandRecovery = "4";
  12.  
  13.         int playerMaxHp = 100;
  14.         int playerHp = playerMaxHp;
  15.         int playerMaxMp = 100;
  16.         int playerMp = playerMaxMp;
  17.         int basicDamage = 10;
  18.         int fireballsDamage = 22;
  19.         int manaCostFireball = 30;
  20.         int bigBangDamage = 28;
  21.         int manaCostBigBang = 50;
  22.         int recoveryHp = 20;
  23.         int recoveryMp = 50;
  24.         int countRecovery = 3;
  25.         string userInput;
  26.  
  27.         int bossHp = 200;
  28.         int minDamage = 5;
  29.         int maxDamage = 21;
  30.         int bossDamage;
  31.         Random random = new Random();
  32.  
  33.         bool isUsedFireball = false;
  34.  
  35.         while (bossHp > 0 && playerHp > 0)
  36.         {
  37.             Console.Clear();
  38.             Console.Write($"Твое Здоровье - {playerHp}, Мана - {playerMp}\nЗдоровье босса - {bossHp}");
  39.  
  40.             if (isUsedFireball == true)
  41.             {
  42.                 Console.Write(" Горит!");
  43.             }
  44.  
  45.             Console.WriteLine($"\n\n{CommandAttack} - Базовая атака (урон-{basicDamage})\n" +
  46.                 $"{CommandFireball} - Огненый шар (расход маны-{manaCostFireball}, урон-{fireballsDamage}, поджигает врага)\n" +
  47.                 $"{CommandBigBang} - Большой взрыв! (расход маны-{manaCostBigBang}, урон-{bigBangDamage} противнику который подожен! Иначе ничего не будет)\n" +
  48.                 $"{CommandRecovery} - Элексир востановления (+{recoveryHp} Нр, +{recoveryMp} Mp. Есть {countRecovery} Элексира)");
  49.             Console.Write("Выбере действие: ");
  50.  
  51.             userInput = Console.ReadLine();
  52.  
  53.             switch (userInput)
  54.             {
  55.                 case CommandAttack:
  56.                     bossHp -= basicDamage;
  57.                     Console.WriteLine($"Ты нанес боссу {basicDamage} урона.");
  58.                     break;
  59.  
  60.                 case CommandFireball:
  61.                     if (manaCostFireball <= playerMp)
  62.                     {
  63.                         playerMp -= manaCostFireball;
  64.                         bossHp -= fireballsDamage;
  65.                         isUsedFireball = true;
  66.                         Console.WriteLine($"Огненый шар нанес {fireballsDamage} урона и поджег босса!");
  67.                     }
  68.                     else
  69.                     {
  70.                         Console.WriteLine("Не достаточно маны! Атака провалилась...");
  71.                     }
  72.                     break;
  73.  
  74.                 case CommandBigBang:
  75.                     if (manaCostBigBang <= playerMp)
  76.                     {
  77.                         playerMp -= manaCostBigBang;
  78.  
  79.                         if (isUsedFireball)
  80.                         {
  81.                             bossHp -= bigBangDamage;
  82.                             isUsedFireball = false;
  83.                             Console.WriteLine($"Мощный взрыв нанес {bigBangDamage} урона!");
  84.                         }
  85.                         else
  86.                         {
  87.                             Console.WriteLine("Ману потратил, а взрыва не получилось... Нужно сперва поджечь противника!");
  88.                         }
  89.                     }
  90.                     else
  91.                     {
  92.                         Console.WriteLine("Не достаточно маны! Атака провалилась...");
  93.                     }
  94.                     break;
  95.  
  96.                 case CommandRecovery:
  97.                     if (countRecovery != 0)
  98.                     {
  99.                         countRecovery--;
  100.                         playerHp += recoveryHp;
  101.                         playerMp += recoveryMp;
  102.                         Console.WriteLine($"Используя элексир востановил {recoveryHp}Hp и {recoveryMp}Mp");
  103.                     }
  104.                     else
  105.                     {
  106.                         Console.WriteLine("Элексиров больше нет!");
  107.                     }
  108.  
  109.                     if (playerHp > playerMaxHp)
  110.                     {
  111.                         playerHp = playerMaxHp;
  112.                     }
  113.  
  114.                     if (playerMp > playerMaxMp)
  115.                     {
  116.                         playerMp = playerMaxMp;
  117.                     }
  118.                     break;
  119.  
  120.                 default:
  121.                     Console.WriteLine("Ты затупил и пропускаешь ход! Будь внимательней!");
  122.                     break;
  123.             }
  124.  
  125.             bossDamage = random.Next(minDamage, maxDamage);
  126.             playerHp -= bossDamage;
  127.             Console.WriteLine($"Босс наносит тебе {bossDamage} урона!");
  128.             Console.ReadKey();
  129.         }
  130.  
  131.         if (bossHp <= 0 && playerHp <= 0)
  132.         {
  133.             Console.WriteLine("Ты и босс нанесли одновременно смертельный удар! Это ничья.");
  134.         }
  135.         else if (bossHp <= 0)
  136.         {
  137.             Console.WriteLine("Босс повержен! Ты победил!");
  138.         }
  139.         else
  140.         {
  141.             Console.WriteLine("Тебя убили! Это поражение!");
  142.         }
  143.  
  144.         Console.ReadKey();
  145.     }
  146. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement