Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- internal class Program
- {
- static void Main(string[] args)
- {
- const string CommandAttack = "1";
- const string CommandFireball = "2";
- const string CommandExplosion = "3";
- const string CommandHealHpAndMp = "4";
- int playerMaxHealthPoints = 100;
- int playerHealthPoints = playerMaxHealthPoints;
- int playerMaxManaPoints = 50;
- int playerManaPoints = playerMaxManaPoints;
- int playerAttackDamageMin = 10;
- int playerAttackDamageMax = 20;
- int damageFireball = 25;
- int manaCostFireball = 20;
- int damageExplosion = 35;
- int manaCostExplosion = 30;
- int healHpAmount = 35;
- int healManaAmount = 25;
- int healsLeft = 3;
- int bossHp = 150;
- int bossDamageMin = 10;
- int bossDamageMax = 25;
- bool canUseExplosion = false;
- Random random = new Random();
- while (playerHealthPoints > 0 && bossHp > 0)
- {
- int damageToBoss;
- int damageToPlayer;
- Console.Clear();
- Console.WriteLine($"Герой: HP {playerHealthPoints}/{playerMaxHealthPoints}, MP {playerManaPoints}/{playerMaxManaPoints}, Зелья восстановления: {healsLeft}");
- Console.WriteLine($"Босс: HP {bossHp}");
- Console.Write($"\n{CommandAttack} - Провести обычную атаку.\n{CommandFireball} - Ударить Огненным шаром." +
- $"\n{CommandExplosion} - Взорвать.\n{CommandHealHpAndMp} - Восстановить здоровье и ману.\nТвой выбор: ");
- string userInput = Console.ReadLine();
- switch (userInput)
- {
- case CommandAttack:
- canUseExplosion = false;
- damageToBoss = random.Next(playerAttackDamageMin, playerAttackDamageMax + 1);
- bossHp -= damageToBoss;
- Console.WriteLine($"Ты провел обычну атаку и нанес {damageToBoss} урона!");
- break;
- case CommandFireball:
- if (playerManaPoints >= manaCostFireball)
- {
- canUseExplosion = true;
- playerManaPoints -= manaCostFireball;
- bossHp -= damageFireball;
- Console.WriteLine($"Огненный шар нанес {damageFireball} урона, он горит и ты можешь использовать ВЗРЫВ!");
- }
- else
- {
- Console.WriteLine($"Недостаточно маны!\nИз-за ошибки ты ничего не нанес боссу!");
- }
- break;
- case CommandExplosion:
- if (canUseExplosion)
- {
- if (playerManaPoints >= manaCostExplosion)
- {
- canUseExplosion = false;
- bossHp -= damageExplosion;
- playerManaPoints -= manaCostExplosion;
- Console.WriteLine($"БАБАХ! Босс получил {damageExplosion} урона!");
- }
- else
- {
- Console.WriteLine($"Недостаточно маны! Будь внимательным!");
- }
- }
- else
- {
- Console.WriteLine($"Враг не горит! Используй сперва Огненный шар!");
- }
- break;
- case CommandHealHpAndMp:
- canUseExplosion = false;
- if (healsLeft > 0)
- {
- healsLeft--;
- playerHealthPoints += healHpAmount;
- playerManaPoints += healManaAmount;
- if (playerHealthPoints > playerMaxHealthPoints)
- {
- playerHealthPoints = playerMaxHealthPoints;
- }
- if (playerManaPoints > playerMaxManaPoints)
- {
- playerManaPoints = playerMaxManaPoints;
- }
- Console.WriteLine($"Ты востановил {healHpAmount} здоровья и {healManaAmount} маны.");
- }
- else
- {
- Console.WriteLine("Зелья восстановления закончились!");
- }
- break;
- default:
- Console.WriteLine($"Ты оступился! Поэтому пропускаешь ход!");
- break;
- }
- damageToPlayer = random.Next(bossDamageMin, bossDamageMax + 1);
- playerHealthPoints -= damageToPlayer;
- Console.WriteLine($"Босс ударил на {damageToPlayer} урона!");
- Console.ReadKey();
- }
- if (playerHealthPoints <= 0 && bossHp <= 0)
- {
- Console.WriteLine("Удивительно! Ты убил босса, но и он успел нанести тебе смертельный удар!\nНИЧЬЯ!");
- }
- else if (playerHealthPoints <= 0)
- {
- Console.WriteLine("ПОРАЖЕНИЕ!");
- }
- else if (bossHp <= 0)
- {
- Console.WriteLine("ПОБЕДА!");
- }
- Console.ReadKey();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment