Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp18
- {
- class Program
- {
- static void Main(string[] args)
- {
- //игрок
- char playerInput;
- int playerHealth = 100;
- //использование 1-ой способности
- char playerAbilitySummonElemental;
- bool banAbilitySummonElemental = false;
- // Элементали, с помощью которых будет наноситься урон Врагу
- int earthElementalDamage = 0;
- int chanceToStun = 0;
- bool earthElementalAbility = false;
- bool pickEarthElemetal = false;
- int waterElementalDamage = 0;
- int chanceToCold = 0;
- bool waterElementalAbility = false;
- bool pickWaterElemetal = false;
- int fireElementalDamage = 0;
- int chanceToBurn = 0;
- bool fireElementalAbility = false;
- bool pickFireElemetal = false;
- // 2-ая способность
- char playerAbilitySwapElemental;
- char playerAbilityUseElemental;
- // Ограниченный запас "аптечек"
- int playerAbilityUseHealh = 5;
- bool playerAbilityEscape = false;
- int chanceToEscape = 0;
- //Враг
- int enemyHealth = 500;
- int enemyDamage = 0;
- Random rand = new Random();
- //int enemy
- //Random rand = new Random();
- //enemyDamage = rand.Next(10, 35);
- Console.WriteLine("Вы - Путник, который пробирается все дальше вглубь подземелья.\n" +
- "Спустя некоторое время вы натыкаетесь на врата нечеловеческих размеров...");
- Console.WriteLine("Вы проверяете свою сумку и находите 4 свитка заклинания: \n"
- + "1 - Призвать Элементаля\n"
- + "2 - Поменять Элементаля\n"
- + "3 - Использовать способность Элементаля\n"
- + "4 - Использовать лечебную мазь\n");
- Console.Write(" \"Открыть врата\"? ");
- Console.ReadLine();
- Console.WriteLine("Пришло время сражаться\n");
- //health1 -= Convert.ToSingle(rand.Next(0, damage2)) / 100 * armor1;
- //health2 -= Convert.ToSingle(rand.Next(0, damage1)) / 100 * armor2;
- while (playerHealth >= 0 && enemyHealth >= 0)
- {
- Console.WriteLine($"Ваше Здоровье: {playerHealth}.");
- Console.WriteLine($"Здоровье Узника: {enemyHealth}\n");
- //Ход Игрока
- Console.Write("\"Ваши действия\": ");
- playerInput = Convert.ToChar(Console.ReadLine());
- switch (playerInput)
- {
- case '1': // 1 способность
- if (banAbilitySummonElemental == true)
- {
- Console.WriteLine("Вы уже призвали на поле боя Элементаля!");
- break;
- }
- Console.WriteLine("Вы тяните руку к свитку...");
- Console.WriteLine("\"Призовите\":\n"
- + "z - \"Земляного элементаля\"\n"
- + "x - \"Водяного элементаля\"\n"
- + "c - \"Огненного элемнталя\"\n");
- Console.Write("Выбор: ");
- playerAbilitySummonElemental = Convert.ToChar(Console.ReadLine());
- switch (playerAbilitySummonElemental)
- {
- case 'z':
- Console.WriteLine("Рядом с вами появился \"Земляной элементаль\", Теперь вы можете его использовать!\n");
- pickEarthElemetal = true;
- banAbilitySummonElemental = true;
- break;
- case 'x':
- Console.WriteLine("Рядом с вами появился \"Водяной элементаль\", Теперь вы можете его использовать!\n");
- banAbilitySummonElemental = true;
- pickWaterElemetal = true;
- break;
- case 'c':
- Console.WriteLine("Рядом с вами появился \"Огененный элементаль\", Теперь вы можете его использовать!\n");
- banAbilitySummonElemental = true;
- pickFireElemetal = true;
- break;
- default:
- Console.WriteLine("У вас не вышло произнести заклинание!");
- break;
- }
- break;
- case '2': // 2 способность
- if (banAbilitySummonElemental == false)
- {
- Console.WriteLine("Вы не призвали элементаля!\n");
- break;
- }
- Console.WriteLine("Вы решаете поменять элементаля на ... ");
- Console.WriteLine("z - \"Земляного элементаля\"\n"
- + "x - \"Водяного элементаля\"\n"
- + "c - \"Огненного элемнталя\"\n");
- Console.Write("Выбор: ");
- playerAbilitySwapElemental = Convert.ToChar(Console.ReadLine());
- switch (playerAbilitySwapElemental)
- {
- case 'z': // выбор на земляного
- if (pickFireElemetal == true || pickWaterElemetal == true)
- {
- pickEarthElemetal = true;
- pickFireElemetal = false;
- pickWaterElemetal = false;
- Console.WriteLine("Вы призвали Земляного Элементаля!");
- }
- else
- {
- Console.WriteLine("Вы УЖЕ призвали на поле боя Земляного Элементаля!");
- }
- break;
- case 'x': // выбор на водяного
- if (pickEarthElemetal == true || pickFireElemetal == true)
- {
- pickWaterElemetal = true;
- pickEarthElemetal = false;
- pickFireElemetal = false;
- Console.WriteLine("Вы призвали Водяного Элементаля!");
- }
- else
- {
- Console.WriteLine("Вы УЖЕ призвали на поле боя Водяного Элементаля!");
- }
- break;
- case 'c': // выбор на огненного
- if (pickEarthElemetal == true || pickWaterElemetal == true)
- {
- pickFireElemetal = true;
- pickEarthElemetal = false;
- pickWaterElemetal = false;
- Console.WriteLine("Вы призвали Огненного Элементаля!");
- }
- else
- {
- Console.WriteLine("Вы УЖЕ призвали на поле боя Огненного Элементаля!");
- }
- break;
- default:
- Console.WriteLine("У вас не вышло произнести заклинание!");
- break;
- }
- break;
- case '3': // 3 способность
- if (banAbilitySummonElemental == false)
- {
- Console.WriteLine("Призовите Элементаля!\n");
- break;
- }
- if (pickEarthElemetal == true)
- {
- Console.WriteLine("Элементаль содрагает землю и кидает булыжник огромных размеров в Узника!");
- earthElementalDamage = rand.Next(5, 51);
- enemyHealth -= earthElementalDamage;
- if (rand.Next(1, 11) > (5 + chanceToStun))
- {
- earthElementalAbility = true;
- chanceToStun++;
- }
- else
- {
- Console.WriteLine("Элементаль не смог прогреметь заклинание");
- chanceToStun = 0;
- }
- Console.WriteLine("Булыжник наносит: " + earthElementalDamage + " урона");
- }
- else if (pickWaterElemetal == true)
- {
- Console.WriteLine("Элементаль проводит водяную атаку");
- //WaterElemental = enemyHealth - (Convert.ToInt32(rand.Next(0, 36)));
- waterElementalDamage = rand.Next(0, 36);
- enemyHealth -= waterElementalDamage;
- //if (rand.Next(1, 11) > 4) waterElementalAbility = true;
- if (rand.Next(1, 11) > (4 + chanceToCold))
- {
- waterElementalAbility = true;
- chanceToCold++;
- }
- else
- {
- Console.WriteLine("Элементаль не смог пробурлить заклинание");
- chanceToCold = 0;
- }
- Console.WriteLine("Атака наносит: " + waterElementalDamage + " урона");
- }
- else if (pickFireElemetal == true)
- {
- Console.WriteLine("Элементаль накаляет воздух и проводит огненную атаку!");
- fireElementalDamage = rand.Next(20, 61);
- enemyHealth -= fireElementalDamage;
- if (rand.Next(1, 14) > (7 + chanceToBurn))
- {
- fireElementalAbility = true;
- chanceToBurn++;
- }
- else
- {
- Console.WriteLine("Элементаль не смог пробурлить заклинание");
- chanceToBurn = 0;
- }
- Console.WriteLine("Огненный шар наносит: " + fireElementalDamage + " урона");
- }
- break;
- case '4': // лечебная мазь
- if (playerAbilityUseHealh > 0)
- {
- playerHealth += rand.Next(50, 81);
- if (playerHealth > 100) playerHealth = 100;
- if(rand.Next(1,11) > (5 + chanceToEscape))
- {
- Console.WriteLine("Вы успели спрятаться!");
- playerAbilityEscape = true;
- chanceToEscape++;
- if (chanceToEscape >= 10) chanceToEscape = 0;
- }
- Console.WriteLine("Вы используете лечебную мазь и теперь у вас " + playerHealth + " хп");
- }
- else
- {
- Console.WriteLine("Вы опускаете руку в сумку и не находите лечебную мазь!");
- }
- break;
- //
- default:
- Console.WriteLine("Выбрали неверное действие! Ход Узника...\n");
- //
- break;
- }
- //Ход Врага
- if(earthElementalAbility == true)
- {
- Console.WriteLine("Узник оглушен и пропускает свой ход!\n");
- earthElementalAbility = false;
- continue;
- }
- if(playerAbilityEscape ==true)
- {
- playerAbilityEscape = false;
- continue;
- }
- Console.WriteLine("Ход Узника!");
- enemyDamage = rand.Next(15, 41);
- if(waterElementalAbility == true)
- {
- enemyDamage -= waterElementalDamage / 2;
- Console.WriteLine("Водяной элементаль мешает Узнику провести атаку\n");
- waterElementalAbility = false;
- }
- playerHealth -= enemyDamage;
- Console.WriteLine("Узник наносит " + enemyDamage + " урона и у Вас отстается " + playerHealth + " хп!\n");
- if(fireElementalAbility == true)
- {
- Console.WriteLine("Узник горит!");
- enemyHealth -= rand.Next(10, 20);
- fireElementalAbility = false;
- }
- }
- if (playerHealth <= 0)
- {
- Console.WriteLine("Вы умерли");
- }
- else if(enemyHealth <=0)
- {
- Console.WriteLine("Узник повержен!");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement