Advertisement
AdemDev

Бой с боссом

Aug 31st, 2023 (edited)
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp
  4. {
  5. internal class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. const string RegularAttackCommand = "1";
  10. const string ScaleDamageCommand = "2";
  11. const string SpawnHelperCommand = "3";
  12. const string KillHelperCommand = "4";
  13. const string HealCommand = "5";
  14.  
  15. int bossHealth = 400;
  16. int minBossDamage = 10;
  17. int maxBossDamage = 50;
  18.  
  19. int maxPlayerHealth = 300;
  20. int playerHealth = maxPlayerHealth;
  21. int minPlayerDamage = 20;
  22. int maxPlayerDamage = 40;
  23. int missStepCount = 0;
  24.  
  25. int scaleDamageSkill = 2;
  26. int missStepCountAffterScaleDamage = 3;
  27.  
  28. int helperDamage = 10;
  29. int lossHealtAmounthAfterHelperSpawn = 50;
  30. int helperCount = 0;
  31. int killHelperSkillDamage = 50;
  32.  
  33. int healAmount = 100;
  34. int missStepCountAffterHeal = 3;
  35.  
  36. Random random = new Random();
  37.  
  38. while (playerHealth > 0 && bossHealth > 0)
  39. {
  40. string userInput;
  41.  
  42. if (missStepCount <= 0)
  43. {
  44. Console.WriteLine($"Выберите действие:" +
  45. $"\n{RegularAttackCommand} - обычная атака. Наносит {minPlayerDamage} - {maxPlayerDamage} урона;" +
  46. $"\n{ScaleDamageCommand} - увеличить урон в {scaleDamageSkill} раза и пропустить {missStepCountAffterScaleDamage} хода;" +
  47. $"\n{SpawnHelperCommand} - призвать рыцаря, который будет наносить {helperDamage} урона каждый ход и потерять {lossHealtAmounthAfterHelperSpawn} хп;" +
  48. $"\n{KillHelperCommand} - уничтожить рыцаря и нанести боссу {killHelperSkillDamage} урона" +
  49. $"\n{HealCommand} - восстановить {healAmount} хп и пропустить {missStepCountAffterHeal} ходов");
  50.  
  51.  
  52. userInput = Console.ReadLine();
  53.  
  54. switch (userInput)
  55. {
  56. case RegularAttackCommand:
  57. int playerDamage = random.Next(minPlayerDamage, maxPlayerDamage);
  58. bossHealth -= playerDamage;
  59. break;
  60.  
  61. case ScaleDamageCommand:
  62. missStepCount += missStepCountAffterScaleDamage;
  63. minPlayerDamage *= scaleDamageSkill;
  64. maxPlayerDamage *= scaleDamageSkill;
  65. break;
  66.  
  67. case SpawnHelperCommand:
  68. helperCount++;
  69. playerHealth -= lossHealtAmounthAfterHelperSpawn;
  70. break;
  71.  
  72. case KillHelperCommand:
  73. if (helperCount > 0)
  74. {
  75. helperCount--;
  76. bossHealth -= killHelperSkillDamage;
  77. }
  78. else
  79. {
  80. Console.WriteLine($"У вас нет рыцарей!\n");
  81. continue;
  82. }
  83. break;
  84.  
  85. case HealCommand:
  86. playerHealth += healAmount;
  87. missStepCount += missStepCountAffterHeal;
  88.  
  89. if (playerHealth > maxPlayerHealth)
  90. {
  91. playerHealth = maxPlayerHealth;
  92. }
  93. break;
  94. }
  95. }
  96. else
  97. {
  98. missStepCount--;
  99. }
  100.  
  101. int bossDamage = random.Next(minBossDamage, maxBossDamage);
  102. playerHealth -= bossDamage;
  103.  
  104. bossHealth -= helperCount * helperDamage;
  105.  
  106. Console.WriteLine($"Ваше здоровье: {playerHealth}\nЗдоровье босса: {bossHealth}\n");
  107. }
  108.  
  109. if (playerHealth <= 0 && bossHealth <= 0)
  110. {
  111. Console.WriteLine("Ничья!");
  112. }
  113. else if (bossHealth <= 0)
  114. {
  115. Console.WriteLine("Вы победили!");
  116. }
  117. else if (playerHealth <= 0)
  118. {
  119. Console.WriteLine("Вы проиграли!");
  120. }
  121. }
  122. }
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement