Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- namespace C_Sharp_Junior
- {
- class Program
- {
- static void Main(string[] args)
- {
- bool isExit = false;
- Arena arena = new Arena();
- while (isExit == false)
- {
- Console.Write("1 - Выбрать бойцов и начать бой\n2 - Информация о бойцах\n3 - Выход из игры\nКоманда:");
- bool successfulConversion = int.TryParse(Console.ReadLine(), out int userInput);
- if (successfulConversion == true)
- {
- switch (userInput)
- {
- case 1:
- arena.ChoosingFighter();
- break;
- case 2:
- arena.PersonInfo();
- break;
- case 3:
- isExit = true;
- break;
- }
- }
- Console.ReadKey();
- Console.Clear();
- }
- }
- }
- class Arena
- {
- private List<Warrior> _warriors;
- private List<Warrior> _warriorsUserInpyt;
- public Arena()
- {
- _warriors = new List<Warrior> { new Knight("Воин-Солдат", 100, 20, 70), new Magician("Маг-Черадей", 80, 50, 20, 100), new Engineer("Инжинер", 80, 30, 50, 15), new Archer("Лучник", 60, 15, 35, 20), new Healer("Медик", 150, 12, 20, 25) };
- _warriorsUserInpyt = new List<Warrior>();
- }
- public void PersonInfo()
- {
- for (int i = 0; i < _warriors.Count; i++)
- {
- _warriors[i].ShowInfo();
- }
- }
- public void ChoosingFighter()
- {
- Console.WriteLine("Выберите бойцов:\n1- Воин-Солдат\n2- Маг-Черадей\n3- Инжинер\n4- Лучник\n5- Медик\n");
- Console.Write("Боец №1: ");
- int userInpyt1 = ChoiceWar();
- Console.Write("Боуц №2: ");
- int userInpyt2 = ChoiceWar();
- _warriorsUserInpyt.Add(_warriors[userInpyt1]);
- _warriorsUserInpyt.Add(_warriors[userInpyt2]);
- Console.Clear();
- for (int i = 0; i < _warriorsUserInpyt.Count; i++)
- {
- _warriorsUserInpyt[i].ShowInfo();
- }
- Console.Write("\nНажмите кнопку для начала боя");
- Console.ReadKey();
- Console.Clear();
- bool endCombat = false;
- while (endCombat == false)
- {
- endCombat = Battle();
- }
- }
- private int ChoiceWar()
- {
- int userInput = 0;
- bool warriorChosenCorrectly = false;
- while (warriorChosenCorrectly == false)
- {
- bool successfulConversion = int.TryParse(Console.ReadLine(), out userInput);
- if (successfulConversion == true && userInput <= _warriors.Count && userInput > 0)
- {
- warriorChosenCorrectly = true;
- }
- else
- {
- Console.WriteLine("Бойца с таким номером нет. Выберите другова бойца.");
- }
- }
- return userInput - 1;
- }
- private bool Battle()
- {
- int round = 0;
- while (_warriorsUserInpyt[0].Health > 0 && _warriorsUserInpyt[1].Health > 0)
- {
- Console.WriteLine($"жизни бойца №1 {_warriorsUserInpyt[0].Health}");
- Console.WriteLine($"жизни бойца №2 {_warriorsUserInpyt[1].Health}");
- _warriorsUserInpyt[0].TakingDamage(_warriorsUserInpyt[1].Damage);
- _warriorsUserInpyt[1].TakingDamage(_warriorsUserInpyt[0].Damage);
- if (round == 2)
- {
- _warriorsUserInpyt[0].AbilityStrike();
- _warriorsUserInpyt[1].AbilityStrike();
- round = 0;
- }
- round++;
- }
- if (_warriorsUserInpyt[0].Health <= 0)
- {
- Console.WriteLine("Победил " + _warriorsUserInpyt[1].NameWarrior);
- }
- else if (_warriorsUserInpyt[1].Health <= 0)
- {
- Console.WriteLine("Победил " + _warriorsUserInpyt[0].NameWarrior);
- }
- Console.ReadKey();
- return true;
- }
- }
- class Warrior
- {
- public string NameWarrior { get; private set; }
- public int Armor { get; private set; }
- public int Health { get; private set; }
- public int Damage { get; private set; }
- public Warrior(string nameWarrior, int health, int damage, int armor)
- {
- NameWarrior = nameWarrior;
- Health = health;
- Damage = damage;
- Armor = armor;
- }
- public virtual void ShowInfo()
- {
- Console.WriteLine($"Тип: {NameWarrior}\nЗдоровье: {Health}\nБроня: {Armor}\nУрон: {Damage}");
- }
- public void TakingDamage(int damage)
- {
- Health -= Armor - damage;
- }
- public void ChangeHealthAbilityStrike()
- {
- int valueRestoringHealth = 200;
- Health = valueRestoringHealth;
- }
- public void ChangeDamageAbilityStrike()
- {
- int valueDamageEntrainment = 2;
- Damage *= valueDamageEntrainment;
- }
- public virtual void AbilityStrike()
- {
- }
- }
- class Knight : Warrior
- {
- public Knight(string nameWarrior, int health, int damage, int armor) : base(nameWarrior, health, damage, armor)
- {
- }
- public override void ShowInfo()
- {
- base.ShowInfo();
- Console.WriteLine("Способность: Режим ярости");
- Console.WriteLine(new string('-', 70));
- }
- public override void AbilityStrike()
- {
- ChangeDamageAbilityStrike();
- }
- }
- class Magician : Warrior
- {
- private int _mana;
- public Magician(string nameWarrior, int health, int damage, int armor, int mana) : base(nameWarrior, health, damage, armor)
- {
- _mana = mana;
- }
- public override void ShowInfo()
- {
- base.ShowInfo();
- Console.WriteLine($"Мана: {_mana}\nСпособность: Выстрел магическими шарами");
- Console.WriteLine(new string('-', 70));
- }
- public override void AbilityStrike()
- {
- int consumptionMana = 40;
- if (_mana > consumptionMana)
- {
- ChangeDamageAbilityStrike();
- _mana -= consumptionMana;
- }
- }
- }
- class Engineer : Warrior
- {
- private int _mechanisms;
- public Engineer(string nameWarrior, int health, int damage, int armor, int mechanisms) : base(nameWarrior, health, damage, armor)
- {
- _mechanisms = mechanisms;
- }
- public override void ShowInfo()
- {
- base.ShowInfo();
- Console.WriteLine($"Механизмы: {_mechanisms}\nСпособность: Постройка царь-пушки");
- Console.WriteLine(new string('-', 70));
- }
- public override void AbilityStrike()
- {
- int consumptionMechanisms = 50;
- if (_mechanisms >= consumptionMechanisms)
- {
- ChangeDamageAbilityStrike();
- _mechanisms -= consumptionMechanisms;
- }
- }
- }
- class Archer : Warrior
- {
- private int _arrows;
- public Archer(string nameWarrior, int health, int damage, int armor, int arrows) : base(nameWarrior, health, damage, armor)
- {
- _arrows = arrows;
- }
- public override void ShowInfo()
- {
- base.ShowInfo();
- Console.WriteLine($"Стрелы: {_arrows}\nСпособность: Шквал стрел");
- Console.WriteLine(new string('-', 70));
- }
- public override void AbilityStrike()
- {
- int ConsumptionArrows = 25;
- if (_arrows >= ConsumptionArrows)
- {
- ChangeDamageAbilityStrike();
- _arrows -= ConsumptionArrows;
- }
- }
- }
- class Healer : Warrior
- {
- private int _potions;
- public Healer(string nameWarrior, int health, int damage, int armor, int potions) : base(nameWarrior, health, damage, armor)
- {
- _potions = potions;
- }
- public override void ShowInfo()
- {
- base.ShowInfo();
- Console.WriteLine($"Зелья: {_potions}\nСпособность: Полное восстановление здоровье + баф");
- Console.Write(new string('-', 70));
- }
- public override void AbilityStrike()
- {
- int consumptionPotions = 10;
- if (_potions >= consumptionPotions)
- {
- ChangeHealthAbilityStrike();
- _potions -= consumptionPotions;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement