Advertisement
Torgach

Untitled

Sep 4th, 2020 (edited)
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.89 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp18
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. //игрок
  10. char playerInput;
  11. int playerHealth = 100;
  12.  
  13. //использование 1-ой способности
  14. char playerAbilitySummonElemental;
  15. bool banAbilitySummonElemental = false;
  16.  
  17. // Элементали, с помощью которых будет наноситься урон Врагу
  18. int earthElementalDamage = 0;
  19. int chanceToStun = 0;
  20. bool earthElementalAbility = false;
  21. bool pickEarthElemetal = false;
  22.  
  23. int waterElementalDamage = 0;
  24. int chanceToCold = 0;
  25. bool waterElementalAbility = false;
  26. bool pickWaterElemetal = false;
  27.  
  28. int fireElementalDamage = 0;
  29. int chanceToBurn = 0;
  30. bool fireElementalAbility = false;
  31. bool pickFireElemetal = false;
  32.  
  33. // 2-ая способность
  34. char playerAbilitySwapElemental;
  35.  
  36. char playerAbilityUseElemental;
  37.  
  38. // Ограниченный запас "аптечек"
  39. int playerAbilityUseHealh = 5;
  40. bool playerAbilityEscape = false;
  41. int chanceToEscape = 0;
  42. //Враг
  43. int enemyHealth = 500;
  44. int enemyDamage = 0;
  45.  
  46.  
  47. Random rand = new Random();
  48. //int enemy
  49.  
  50. //Random rand = new Random();
  51. //enemyDamage = rand.Next(10, 35);
  52.  
  53. Console.WriteLine("Вы - Путник, который пробирается все дальше вглубь подземелья.\n" +
  54. "Спустя некоторое время вы натыкаетесь на врата нечеловеческих размеров...");
  55. Console.WriteLine("Вы проверяете свою сумку и находите 4 свитка заклинания: \n"
  56. + "1 - Призвать Элементаля\n"
  57. + "2 - Поменять Элементаля\n"
  58. + "3 - Использовать способность Элементаля\n"
  59. + "4 - Использовать лечебную мазь\n");
  60. Console.Write(" \"Открыть врата\"? ");
  61. Console.ReadLine();
  62. Console.WriteLine("Пришло время сражаться\n");
  63.  
  64.  
  65. //health1 -= Convert.ToSingle(rand.Next(0, damage2)) / 100 * armor1;
  66. //health2 -= Convert.ToSingle(rand.Next(0, damage1)) / 100 * armor2;
  67.  
  68.  
  69. while (playerHealth >= 0 && enemyHealth >= 0)
  70. {
  71. Console.WriteLine($"Ваше Здоровье: {playerHealth}.");
  72. Console.WriteLine($"Здоровье Узника: {enemyHealth}\n");
  73.  
  74.  
  75.  
  76. //Ход Игрока
  77. Console.Write("\"Ваши действия\": ");
  78. playerInput = Convert.ToChar(Console.ReadLine());
  79. switch (playerInput)
  80. {
  81. case '1': // 1 способность
  82. if (banAbilitySummonElemental == true)
  83. {
  84. Console.WriteLine("Вы уже призвали на поле боя Элементаля!");
  85. break;
  86. }
  87.  
  88. Console.WriteLine("Вы тяните руку к свитку...");
  89. Console.WriteLine("\"Призовите\":\n"
  90. + "z - \"Земляного элементаля\"\n"
  91. + "x - \"Водяного элементаля\"\n"
  92. + "c - \"Огненного элемнталя\"\n");
  93. Console.Write("Выбор: ");
  94. playerAbilitySummonElemental = Convert.ToChar(Console.ReadLine());
  95. switch (playerAbilitySummonElemental)
  96. {
  97. case 'z':
  98. Console.WriteLine("Рядом с вами появился \"Земляной элементаль\", Теперь вы можете его использовать!\n");
  99. pickEarthElemetal = true;
  100. banAbilitySummonElemental = true;
  101. break;
  102. case 'x':
  103. Console.WriteLine("Рядом с вами появился \"Водяной элементаль\", Теперь вы можете его использовать!\n");
  104. banAbilitySummonElemental = true;
  105. pickWaterElemetal = true;
  106. break;
  107. case 'c':
  108. Console.WriteLine("Рядом с вами появился \"Огененный элементаль\", Теперь вы можете его использовать!\n");
  109. banAbilitySummonElemental = true;
  110. pickFireElemetal = true;
  111. break;
  112. default:
  113. Console.WriteLine("У вас не вышло произнести заклинание!");
  114. break;
  115. }
  116. break;
  117.  
  118. case '2': // 2 способность
  119. if (banAbilitySummonElemental == false)
  120. {
  121. Console.WriteLine("Вы не призвали элементаля!\n");
  122. break;
  123. }
  124.  
  125. Console.WriteLine("Вы решаете поменять элементаля на ... ");
  126. Console.WriteLine("z - \"Земляного элементаля\"\n"
  127. + "x - \"Водяного элементаля\"\n"
  128. + "c - \"Огненного элемнталя\"\n");
  129. Console.Write("Выбор: ");
  130. playerAbilitySwapElemental = Convert.ToChar(Console.ReadLine());
  131.  
  132. switch (playerAbilitySwapElemental)
  133. {
  134. case 'z': // выбор на земляного
  135. if (pickFireElemetal == true || pickWaterElemetal == true)
  136. {
  137. pickEarthElemetal = true;
  138. pickFireElemetal = false;
  139. pickWaterElemetal = false;
  140. Console.WriteLine("Вы призвали Земляного Элементаля!");
  141. }
  142. else
  143. {
  144. Console.WriteLine("Вы УЖЕ призвали на поле боя Земляного Элементаля!");
  145. }
  146. break;
  147. case 'x': // выбор на водяного
  148. if (pickEarthElemetal == true || pickFireElemetal == true)
  149. {
  150. pickWaterElemetal = true;
  151. pickEarthElemetal = false;
  152. pickFireElemetal = false;
  153. Console.WriteLine("Вы призвали Водяного Элементаля!");
  154. }
  155. else
  156. {
  157. Console.WriteLine("Вы УЖЕ призвали на поле боя Водяного Элементаля!");
  158. }
  159. break;
  160. case 'c': // выбор на огненного
  161. if (pickEarthElemetal == true || pickWaterElemetal == true)
  162. {
  163. pickFireElemetal = true;
  164. pickEarthElemetal = false;
  165. pickWaterElemetal = false;
  166. Console.WriteLine("Вы призвали Огненного Элементаля!");
  167. }
  168. else
  169. {
  170. Console.WriteLine("Вы УЖЕ призвали на поле боя Огненного Элементаля!");
  171. }
  172. break;
  173. default:
  174. Console.WriteLine("У вас не вышло произнести заклинание!");
  175. break;
  176. }
  177. break;
  178.  
  179. case '3': // 3 способность
  180. if (banAbilitySummonElemental == false)
  181. {
  182. Console.WriteLine("Призовите Элементаля!\n");
  183. break;
  184. }
  185.  
  186. if (pickEarthElemetal == true)
  187. {
  188. Console.WriteLine("Элементаль содрагает землю и кидает булыжник огромных размеров в Узника!");
  189. earthElementalDamage = rand.Next(5, 51);
  190. enemyHealth -= earthElementalDamage;
  191.  
  192. if (rand.Next(1, 11) > (5 + chanceToStun))
  193. {
  194. earthElementalAbility = true;
  195. chanceToStun++;
  196. }
  197. else
  198. {
  199. Console.WriteLine("Элементаль не смог прогреметь заклинание");
  200. chanceToStun = 0;
  201. }
  202. Console.WriteLine("Булыжник наносит: " + earthElementalDamage + " урона");
  203. }
  204. else if (pickWaterElemetal == true)
  205. {
  206. Console.WriteLine("Элементаль проводит водяную атаку");
  207. //WaterElemental = enemyHealth - (Convert.ToInt32(rand.Next(0, 36)));
  208. waterElementalDamage = rand.Next(0, 36);
  209. enemyHealth -= waterElementalDamage;
  210. //if (rand.Next(1, 11) > 4) waterElementalAbility = true;
  211. if (rand.Next(1, 11) > (4 + chanceToCold))
  212. {
  213. waterElementalAbility = true;
  214. chanceToCold++;
  215. }
  216. else
  217. {
  218. Console.WriteLine("Элементаль не смог пробурлить заклинание");
  219. chanceToCold = 0;
  220. }
  221. Console.WriteLine("Атака наносит: " + waterElementalDamage + " урона");
  222. }
  223. else if (pickFireElemetal == true)
  224. {
  225. Console.WriteLine("Элементаль накаляет воздух и проводит огненную атаку!");
  226. fireElementalDamage = rand.Next(20, 61);
  227. enemyHealth -= fireElementalDamage;
  228. if (rand.Next(1, 14) > (7 + chanceToBurn))
  229. {
  230. fireElementalAbility = true;
  231. chanceToBurn++;
  232. }
  233. else
  234. {
  235. Console.WriteLine("Элементаль не смог пробурлить заклинание");
  236. chanceToBurn = 0;
  237. }
  238. Console.WriteLine("Огненный шар наносит: " + fireElementalDamage + " урона");
  239. }
  240. break;
  241. case '4': // лечебная мазь
  242. if (playerAbilityUseHealh > 0)
  243. {
  244. playerHealth += rand.Next(50, 81);
  245. if (playerHealth > 100) playerHealth = 100;
  246. if(rand.Next(1,11) > (5 + chanceToEscape))
  247. {
  248. Console.WriteLine("Вы успели спрятаться!");
  249. playerAbilityEscape = true;
  250. chanceToEscape++;
  251. if (chanceToEscape >= 10) chanceToEscape = 0;
  252. }
  253. Console.WriteLine("Вы используете лечебную мазь и теперь у вас " + playerHealth + " хп");
  254. }
  255. else
  256. {
  257. Console.WriteLine("Вы опускаете руку в сумку и не находите лечебную мазь!");
  258. }
  259. break;
  260.  
  261. //
  262. default:
  263. Console.WriteLine("Выбрали неверное действие! Ход Узника...\n");
  264. //
  265. break;
  266.  
  267. }
  268.  
  269. //Ход Врага
  270. if(earthElementalAbility == true)
  271. {
  272. Console.WriteLine("Узник оглушен и пропускает свой ход!\n");
  273. earthElementalAbility = false;
  274. continue;
  275. }
  276. if(playerAbilityEscape ==true)
  277. {
  278. playerAbilityEscape = false;
  279. continue;
  280. }
  281.  
  282. Console.WriteLine("Ход Узника!");
  283. enemyDamage = rand.Next(15, 41);
  284. if(waterElementalAbility == true)
  285. {
  286. enemyDamage -= waterElementalDamage / 2;
  287. Console.WriteLine("Водяной элементаль мешает Узнику провести атаку\n");
  288. waterElementalAbility = false;
  289. }
  290. playerHealth -= enemyDamage;
  291. Console.WriteLine("Узник наносит " + enemyDamage + " урона и у Вас отстается " + playerHealth + " хп!\n");
  292.  
  293. if(fireElementalAbility == true)
  294. {
  295. Console.WriteLine("Узник горит!");
  296. enemyHealth -= rand.Next(10, 20);
  297. fireElementalAbility = false;
  298. }
  299.  
  300.  
  301. }
  302.  
  303. if (playerHealth <= 0)
  304. {
  305. Console.WriteLine("Вы умерли");
  306. }
  307. else if(enemyHealth <=0)
  308. {
  309. Console.WriteLine("Узник повержен!");
  310. }
  311. }
  312. }
  313. }
  314.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement