Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- internal class Program
- {
- static void Main(string[] args)
- {
- const string MagicFireballCommand = "Fireball";
- const string MagicHealthRegenCommand = "Regen";
- const string MagicVampireCommand = "Vampire";
- const string MagicSplitDamageCommand = "Split damage";
- const string NormalPunchCommand = "Punch";
- const string RunAwayCommand = "Run!";
- Random random = new Random();
- int minPlayerDamage = 1;
- int maxPlayerDamage = 20;
- int playerDamage;
- int minStartPlayerHealth = 50;
- int maxStartPlayerHealth = 100;
- int manaPlayer = 10;
- int maxManaPlayer = 50;
- int manaPlayerRegen = 2;
- float playerHealth = random.Next(minStartPlayerHealth, maxStartPlayerHealth);
- int minEnemyDamage = 2;
- int maxEnemyDamage = 30;
- int enemyDamage;
- int minStartEnemyHealth = 80;
- int maxStartEnemyHealth = 200;
- int enemyHealth = random.Next(minStartEnemyHealth, maxStartEnemyHealth);
- int fireballDamage = 20;
- int quantityRegenHealth = 35;
- float coefficentVampireHealthRegen = 0.5f;
- int numberOfMagicVampireAttack = 0;
- int numberOfRunAwayCommand = 0;
- int minNumberForCriticalDamage = 1;
- int maxNumberForCriticalDamage = 5;
- int minCoefficentCriticalDamage = 2;
- int maxCoefficentCriticalDamage = 4;
- int coefficentCriticalDamage;
- int probablyCriticalDamage;
- int needNumberForCriticalDamage;
- while (playerHealth > 0 && enemyHealth > 0 && numberOfRunAwayCommand == 0)
- {
- string? userInput;
- int quantityManaForMagicFireball = 3;
- int quantityManaForMagicVampire = 5;
- int quantityManaForMagicHealthRegen = 5;
- int quantityManaForMagicSplitDamage = 4;
- int coefficentSplitDamage = 2;
- probablyCriticalDamage = random.Next(minNumberForCriticalDamage, maxNumberForCriticalDamage);
- needNumberForCriticalDamage = random.Next(minNumberForCriticalDamage, maxNumberForCriticalDamage);
- coefficentCriticalDamage = random.Next(minCoefficentCriticalDamage, maxCoefficentCriticalDamage);
- playerDamage = random.Next(minPlayerDamage, maxPlayerDamage);
- enemyDamage = random.Next(minEnemyDamage, maxEnemyDamage);
- Console.WriteLine($"{playerHealth} - здоровья игрока. {manaPlayer} - мана игрока.");
- Console.WriteLine($"{enemyHealth} - здоровья босса.");
- Console.WriteLine();
- Console.WriteLine($"У вас есть несколько комнд для боя с боссом:\n" +
- $"{NormalPunchCommand} - нанести обычный удар.\n" +
- $"{MagicFireballCommand} - удар огненным шаром. Необходимо {quantityManaForMagicFireball} ед маны.\n" +
- $"{MagicVampireCommand} - забрать половину нанесенного урона себе. Необходимо {quantityManaForMagicVampire} маны и" +
- $"Меньше 50% здоровья\n" +
- $"{MagicHealthRegenCommand} - восстановить {quantityRegenHealth} жизней. Необходимо {quantityManaForMagicHealthRegen} маны\n" +
- $"{MagicSplitDamageCommand} - уменьшить урон наносимый противником в 2 раза. Можно использовать " +
- $"только после применения {MagicVampireCommand}. Необходимо {quantityManaForMagicSplitDamage} маны\n" +
- $"{RunAwayCommand} - сбежать с поля боя.");
- Console.WriteLine();
- Console.Write("Введите команду: ");
- userInput = Console.ReadLine();
- switch (userInput)
- {
- case NormalPunchCommand:
- if (probablyCriticalDamage == needNumberForCriticalDamage)
- {
- playerDamage *= coefficentCriticalDamage;
- enemyHealth -= playerDamage;
- }
- else
- {
- enemyHealth -= playerDamage;
- }
- break;
- case MagicFireballCommand:
- if (manaPlayer >= quantityManaForMagicFireball)
- {
- manaPlayer -= quantityManaForMagicFireball;
- enemyHealth -= fireballDamage;
- manaPlayer -= quantityManaForMagicFireball;
- }
- else
- {
- if (probablyCriticalDamage == needNumberForCriticalDamage)
- {
- playerDamage *= coefficentCriticalDamage;
- enemyHealth -= playerDamage;
- }
- else
- {
- enemyHealth -= playerDamage;
- }
- }
- break;
- case MagicVampireCommand:
- if (manaPlayer >= quantityManaForMagicVampire && playerHealth <= maxStartPlayerHealth * coefficentVampireHealthRegen && numberOfMagicVampireAttack <= manaPlayer)
- {
- manaPlayer -= quantityManaForMagicVampire;
- enemyHealth -= playerDamage;
- playerHealth += playerDamage * coefficentVampireHealthRegen;
- numberOfMagicVampireAttack++;
- }
- else
- {
- if (probablyCriticalDamage == needNumberForCriticalDamage)
- {
- playerDamage *= coefficentCriticalDamage;
- enemyHealth -= playerDamage;
- }
- else
- {
- enemyHealth -= playerDamage;
- }
- }
- break;
- case MagicHealthRegenCommand:
- if (manaPlayer >= quantityManaForMagicHealthRegen)
- {
- playerHealth += quantityRegenHealth;
- manaPlayer -= quantityManaForMagicHealthRegen;
- if (playerHealth > maxStartPlayerHealth)
- {
- playerHealth = maxStartPlayerHealth;
- }
- }
- else
- {
- if (probablyCriticalDamage == needNumberForCriticalDamage)
- {
- playerDamage *= coefficentCriticalDamage;
- enemyHealth -= playerDamage;
- }
- else
- {
- enemyHealth -= playerDamage;
- }
- }
- break;
- case MagicSplitDamageCommand:
- if (numberOfMagicVampireAttack > 0 && quantityManaForMagicSplitDamage <= manaPlayer)
- {
- enemyDamage = enemyDamage / coefficentSplitDamage;
- manaPlayer -= quantityManaForMagicSplitDamage;
- }
- else
- {
- if (probablyCriticalDamage == needNumberForCriticalDamage)
- {
- playerDamage *= coefficentCriticalDamage;
- enemyHealth -= playerDamage;
- }
- else
- {
- enemyHealth -= playerDamage;
- }
- }
- break;
- case RunAwayCommand:
- numberOfRunAwayCommand++;
- Console.Clear();
- break;
- default:
- Console.WriteLine("Вы промахнулись и нанесли 0 единиц урона.\nНажмите любую клавишу...");
- Console.ReadKey();
- break;
- }
- if (manaPlayer > maxManaPlayer)
- {
- manaPlayer = maxManaPlayer;
- }
- if (playerHealth > maxStartPlayerHealth)
- {
- playerHealth = maxStartPlayerHealth;
- }
- if (numberOfRunAwayCommand > 0)
- {
- Console.WriteLine($"Вы сбежали с поля боя.\n" +
- $"Ваши жизни {playerHealth}\n" +
- $"Жизни противника: {enemyHealth}\n" +
- $"Нажмите любую клавишу...");
- Console.ReadKey();
- return;
- }
- if (probablyCriticalDamage == needNumberForCriticalDamage)
- {
- enemyDamage *= coefficentCriticalDamage;
- playerHealth -= enemyDamage;
- }
- else
- {
- playerHealth -= enemyDamage;
- }
- manaPlayer += manaPlayerRegen;
- Console.Clear();
- }
- if (playerHealth <= 0 && enemyHealth > 0)
- {
- Console.WriteLine($"Босс победил.\n" +
- $"Ваши жизни {playerHealth}\n" +
- $"Жизни противника: {enemyHealth}\n");
- }
- else if (playerHealth > 0 && enemyHealth <= 0)
- {
- Console.WriteLine($"Вы победили!\n" +
- $"Ваши жизни {playerHealth}\n" +
- $"Жизни противника: {enemyHealth}\n");
- }
- else if (playerHealth <= 0 && enemyHealth <= 0)
- {
- Console.WriteLine($"Ничья. Оба мертвы.\n" +
- $"Ваши жизни {playerHealth}\n" +
- $"Жизни противника: {enemyHealth}\n");
- }
- Console.ReadKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment