Advertisement
SaNik74

Battle with boss

Mar 2nd, 2024 (edited)
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.22 KB | None | 0 0
  1. class Program
  2. {
  3.     static void Main(string[] args)
  4.     {
  5.         Player player = new Player();
  6.         Boss boss = new Boss();
  7.         Battleground battleground = new Battleground();
  8.         battleground.Battle(player, boss);
  9.     }
  10. }
  11.  
  12. class Player
  13. {
  14.     private bool _isFierBallAttack = false;
  15.     private int _quantityRecovers = 4;
  16.     private int _health = 100;
  17.     private int _mana = 100;
  18.     private int _damage = 10;
  19.  
  20.     public void ChangeHealth(int value)
  21.     {
  22.         _health -= value;
  23.     }
  24.  
  25.     public int GiveValueOfHealth()
  26.     {
  27.         return _health;
  28.     }
  29.  
  30.     public int GiveValueOfMana()
  31.     {
  32.         return _mana;
  33.     }
  34.  
  35.     public int DamageAttack()
  36.     {
  37.         return _damage;
  38.     }
  39.  
  40.     public int DamageFierBallAttack()
  41.     {
  42.         int damageFierballAttack = 50;
  43.         int manaPoints = 30;
  44.  
  45.         _mana -= manaPoints;
  46.         _isFierBallAttack = true;
  47.         return damageFierballAttack;
  48.     }
  49.  
  50.     public void ManaRecovery()
  51.     {
  52.         int manaRecoverPerOneMove = 1;
  53.         if (_mana < 100)
  54.         {
  55.             _mana += manaRecoverPerOneMove;
  56.         }
  57.     }
  58.  
  59.     public int DamageDetonation()
  60.     {
  61.         int damage = 100;
  62.         int manaPoints = 90;
  63.  
  64.         if (_mana < manaPoints)
  65.         {
  66.             Console.WriteLine("У вас недостаточно маны.");
  67.             return 0;
  68.         }
  69.         else if (_isFierBallAttack == true)
  70.         {
  71.             _mana -= manaPoints;
  72.             _isFierBallAttack = false;
  73.             return damage;
  74.         }
  75.         else
  76.         {
  77.             Console.WriteLine("Сначала нужно использовать удар огненым шаром.");
  78.             return 0;
  79.         }
  80.     }
  81.  
  82.     public void RecoverManaAndHealth()
  83.     {
  84.         if (_quantityRecovers > 0)
  85.         {
  86.             _health = 100;
  87.             _mana = 100;
  88.             _quantityRecovers--;
  89.             Console.WriteLine($"У вас осталось {_quantityRecovers} регенираций.");
  90.         }
  91.         else
  92.         {
  93.             Console.WriteLine("Вы больше не можете регенерировать свое здоровье и ману в этом бою.");
  94.         }
  95.     }
  96. }
  97.  
  98. class Boss
  99. {
  100.     private int _health = 600;
  101.     private int _damage = 6;
  102.     private int _berserkMode = 10;
  103.  
  104.     public void Attack(Player player)
  105.     {
  106.         if (_health <= _health / 2)
  107.         {
  108.             player.ChangeHealth(_berserkMode);
  109.         }
  110.         else
  111.         {
  112.             player.ChangeHealth(_damage);
  113.         }
  114.     }
  115.  
  116.     public int GiveValueOfHealth()
  117.     {
  118.         return _health;
  119.     }
  120.  
  121.     public void ChangeHealth(int value)
  122.     {
  123.         _health -= value;
  124.     }
  125. }
  126.  
  127. class Battleground
  128. {
  129.     public void Battle(Player player, Boss boss)
  130.     {
  131.         const string CommandAttack = "attack";
  132.         const string CommandFierBall = "fier ball";
  133.         const string CommandDetonation = "detonation";
  134.         const string CommandRecover = "recover";
  135.  
  136.         int horizontallyEnemyConsoleHealthPosition = 20;
  137.         int verticalsEnemyConsoleHealthPosition = 0;
  138.         int horizontallyPlayerConsolePosition = 0;
  139.         int verticalsPlayerConsoleHealthPosition = 0;
  140.         bool isWorking = true;
  141.  
  142.         while (isWorking)
  143.         {
  144.             int bossHealth = boss.GiveValueOfHealth();
  145.             int playerHealth = player.GiveValueOfHealth();
  146.             int playerMana = player.GiveValueOfMana();
  147.  
  148.             Console.SetCursorPosition(horizontallyEnemyConsoleHealthPosition, verticalsEnemyConsoleHealthPosition);
  149.             Console.ForegroundColor = ConsoleColor.DarkRed;
  150.             Console.WriteLine($"{bossHealth} - здоровье врага");
  151.             Console.ResetColor();
  152.             Console.SetCursorPosition(horizontallyPlayerConsolePosition, verticalsPlayerConsoleHealthPosition);
  153.             Console.WriteLine($"{playerHealth} - Здоровье\n{playerMana} - Мана\n\n\n");
  154.             Console.WriteLine($"Чтобы нанести обычную атаку введите - {CommandAttack}");
  155.             Console.WriteLine($"Чтобы нанести удар огненным мячом введите - {CommandFierBall}");
  156.             Console.WriteLine($"Чтобы нанести удар взрывом - {CommandDetonation}");
  157.             Console.WriteLine($"Чтобы восстановить здоровье и ману введите - {CommandRecover}");
  158.  
  159.             string userInput = Console.ReadLine();
  160.  
  161.             switch (userInput)
  162.             {
  163.                 case CommandAttack:
  164.                     boss.ChangeHealth(player.DamageAttack());
  165.                     break;
  166.  
  167.                 case CommandFierBall:
  168.                     boss.ChangeHealth(player.DamageFierBallAttack());
  169.                     break;
  170.  
  171.                 case CommandDetonation:
  172.                     boss.ChangeHealth(player.DamageDetonation());
  173.                     break;
  174.  
  175.                 case CommandRecover:
  176.                     player.RecoverManaAndHealth();
  177.                     break;
  178.  
  179.                 default:
  180.                     Console.WriteLine("Введена неверная команда.");
  181.                     break;
  182.             }
  183.  
  184.             player.ManaRecovery();
  185.  
  186.             if (player.GiveValueOfHealth() > 0 && boss.GiveValueOfHealth() > 0)
  187.             {
  188.                 boss.Attack(player);
  189.             }
  190.             else if (player.GiveValueOfHealth() <= 0)
  191.             {
  192.                 Console.WriteLine("Вы проиграли битву.");
  193.                 Console.ReadKey();
  194.                 isWorking = false;
  195.             }
  196.             else if (boss.GiveValueOfHealth() <= 0)
  197.             {
  198.                 Console.WriteLine("Вы победили противника.");
  199.                 Console.ReadKey();
  200.                 isWorking = false;
  201.             }
  202.             else if (player.GiveValueOfHealth() <= 0 && boss.GiveValueOfHealth() <= 0)
  203.             {
  204.                 Console.WriteLine("Это была равная битва.");
  205.                 Console.ReadKey();
  206.                 isWorking = false;
  207.             }
  208.  
  209.             Console.ReadKey();
  210.             Console.Clear();
  211.         }
  212.     }
  213. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement