Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace ConsoleApp1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Random rand = new Random();
- int hpPlayer = 100;
- int chanceStun = 30;
- int armorPlayer = 10;
- int healthPotionCount = 5;
- int regenerationStepCount = 0;
- bool isInvisible = false;
- int spellReadingCount = 0;
- int currentDamage = 0;
- int hpBoss = 500;
- int armorBoss = 30;
- int damageBoss = 25;
- bool isBossStuned = false;
- int userInput = 0;
- Console.WriteLine("Перед вами финальный босс. ");
- while (true)
- {
- Console.WriteLine("");
- Console.WriteLine($"Ваши жизни {hpPlayer}, броня {armorPlayer}");
- Console.WriteLine($"Жизни босса {hpBoss}, броня {armorBoss}");
- if (spellReadingCount == 0)
- {
- Console.WriteLine("1. Удар молнии (-20 хп, шанс стана 30%)");
- Console.WriteLine("2. Кислотные брызги (-10 хп, -5 брони");
- Console.WriteLine("3. Огненный шар (-50 хп, броня поглощает часть ущерба)");
- Console.WriteLine("4. Dragon slayer (-200 хп, броня поглощает часть ущерба, действует и на мага)");
- Console.WriteLine("5. Невидимость (Следующее заклинание отнимает х1.5 ущерб, неуязвимость во время действия. Можно пить склянки, время активации 2 хода)");
- Console.WriteLine("6. Каменная кожа (+5 брони на весь бой, эффекты складываются, максимум 75%)");
- Console.WriteLine("7. Регенерация (+5хп каждый ход в течении 10 ходов. Эффект не складывается");
- Console.WriteLine($"8. Выпить Зелье лечения (+60 хп, {healthPotionCount} в наличии)");
- Console.WriteLine("9. Пропустить ход");
- Console.WriteLine("");
- Console.Write("Что применяете:");
- userInput = Convert.ToInt32(Console.ReadLine());
- }
- else
- {
- Console.WriteLine("Вы продолжаете читать заклинание");
- }
- switch (userInput)
- {
- case 1:
- currentDamage = Convert.ToInt32(20 + 20 * Convert.ToInt32(isInvisible) * 1.5f);
- hpBoss -= currentDamage;
- if (rand.Next(0, 100) <= chanceStun) isBossStuned = true;
- isInvisible = false;
- Console.WriteLine($"Вы бьете молнией на {currentDamage} ущерба");
- break;
- case 2:
- currentDamage = Convert.ToInt32(10 + 10 * Convert.ToInt32(isInvisible) * 0.5f);
- hpBoss -= currentDamage;
- if (armorBoss > 0) armorBoss -= 5;
- isInvisible = false;
- Console.WriteLine($"Вы плюнули кислотой на {currentDamage} ущерба");
- break;
- case 3:
- currentDamage = Convert.ToInt32((50 + 50 * Convert.ToInt32(isInvisible) * 0.5f) / 100f * (100 - armorBoss));
- hpBoss -= currentDamage;
- isInvisible = false;
- Console.WriteLine($"Огненный шар взрывается рядом с боссом и наносит {currentDamage} ущерба");
- break;
- case 4:
- currentDamage = Convert.ToInt32((200 + 200 * Convert.ToInt32(isInvisible) * 0.5f) / 100f * (100 - armorBoss));
- hpBoss -= currentDamage;
- Console.Write($"Мощная вспышка озаряет поле боя наносит {currentDamage} ущерба боссу и ");
- currentDamage = Convert.ToInt32(200 / 100 * (100 - armorPlayer));
- hpPlayer -= currentDamage;
- Console.WriteLine($"{currentDamage} ущерба вам");
- isInvisible = false;
- break;
- case 5:
- if (spellReadingCount > 0)
- {
- spellReadingCount--;
- if (spellReadingCount == 0)
- {
- isInvisible = true;
- Console.WriteLine("Теперь вы невидимы!");
- }
- }
- else
- {
- spellReadingCount = 1;
- Console.WriteLine("Вы начинаете исчезать");
- }
- break;
- case 6:
- if (armorPlayer < 75) armorPlayer += 5;
- isInvisible = false;
- Console.WriteLine("Вы усиливаете свою броню");
- break;
- case 7:
- regenerationStepCount = 10;
- isInvisible = false;
- Console.WriteLine("Вы накладываете на себя регенерацию");
- break;
- case 8:
- if (healthPotionCount > 0)
- {
- healthPotionCount--;
- hpPlayer += 60;
- if (hpPlayer > 100) hpPlayer = 100;
- Console.WriteLine("Вы применяете бутылку лечения");
- } else
- {
- Console.WriteLine("Вы целый ход роетесть в сумке, но кажется бутылок больше нет.");
- }
- break;
- case 9:
- Console.WriteLine("Вы пропускаете ход");
- break;
- default:
- Console.WriteLine("Вы попытались применить заклинание, которое еще не освоили и зря потратили ход.");
- break;
- }
- if (regenerationStepCount > 0 && hpPlayer > 0)
- {
- regenerationStepCount--;
- hpPlayer += 5;
- if (hpPlayer > 100) hpPlayer = 100;
- Console.WriteLine("+5хп за регенерацию");
- if (regenerationStepCount == 0) Console.WriteLine("Эффект регенерации закончен");
- }
- if (hpBoss > 0 && hpPlayer > 0)
- {
- if (isBossStuned)
- {
- Console.WriteLine("Босс в шоке и пропускает ход");
- isBossStuned = false;
- }
- else
- {
- if (hpBoss < 200)
- {
- hpBoss += 50;
- Console.WriteLine("Босс колдует на себя лечение");
- }
- else
- {
- if (isInvisible)
- {
- Console.WriteLine("Босс вас не видит и рыскает по арене в поисках вас");
- }
- else
- {
- currentDamage = Convert.ToInt32(damageBoss / 100f * (100 - armorPlayer));
- hpPlayer -= currentDamage;
- Console.WriteLine($"Босс бьет вас Тупой Секирой Ужаса и наносит {currentDamage} ущерба");
- }
- }
- }
- }
- if (hpBoss <= 0 || hpPlayer <= 0)
- {
- break;
- }
- }
- if (hpBoss <= 0 && hpPlayer <= 0)
- {
- Console.WriteLine("Босс повержен и ваша родина в безопасности. Однако вы не пережили битвы. Вас будут помнить как героя");
- }
- else if(hpPlayer <= 0)
- {
- Console.WriteLine("Вы пали в битве в главным боссом. Вас будут помнить как героя который старался, но не смог, хотя и не долго, ведь ваша родина скоро будет уничтожена");
- }
- else if (hpBoss <= 0)
- {
- Console.WriteLine("Босс повержен и ваша родина в безопасности. Вы лежите на арене без сил.");
- Console.WriteLine("Спустя время когда силы возвращаются к вам, вы собираете волшебные артефакты из коллекции босса и уходите.");
- Console.WriteLine("Но перед этим издалека кидаете еще пару Dragon slayer'ов по замку... На всякий случай...");
- }
- Console.WriteLine("Конец игры");
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement