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 Learn1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Warrior[] warriors = { new Warrior("Иллидан", 130, 10, 25), new Knight("Гаррош", 160, 7, 22), new Rogue("Рагнарос", 180, 2, 33, 2), new Paladin("Нефариан", 220, 0, 29), new Mage("Смертокрыл", 500, 0, 15) };
- for (int i = 0; i < warriors.Length; i++)
- {
- Console.Write(i + " ");
- warriors[i].ShowInfo();
- }
- Console.WriteLine("Выберите Первого бойца:");
- int righWarriorIndex = Convert.ToInt32(Console.ReadLine());
- Warrior rightWarrior = warriors[righWarriorIndex];
- Console.WriteLine("Выберите Второго бойца:");
- int leftWarriorIndex = Convert.ToInt32(Console.ReadLine());
- Warrior leftWarrior = warriors[leftWarriorIndex];
- while (leftWarrior.Health > 0 && rightWarrior.Health > 0)
- {
- Console.WriteLine();
- leftWarrior.TakeDamage(rightWarrior.Damage);
- rightWarrior.TakeDamage(leftWarrior.Damage);
- leftWarrior.ShowInfo();
- rightWarrior.ShowInfo();
- }
- }
- }
- class Warrior
- {
- private string _name;
- private int _health;
- private int _armor;
- private int _damage;
- public Warrior(string name, int health, int armor, int damage)
- {
- _name = name;
- _health = health;
- _armor = armor;
- _damage = damage;
- }
- public int Health
- {
- get
- {
- return _health;
- }
- }
- public int Damage
- {
- get
- {
- return _damage;
- }
- }
- public void Pray()
- {
- _armor += 3;
- }
- public void ShowInfo()
- {
- Console.WriteLine($"{_name}: ХП - {_health}, Броня - {_armor}, Дамаг - {_damage}");
- }
- public void TakeDamage(int damage)
- {
- _health -= damage - _armor;
- }
- }
- class Knight : Warrior
- {
- public Knight(string name, int health, int armor, int damage) : base(name, health, armor, damage)
- {
- }
- public int DoubleDamage(int damage, int health)
- {
- if (health < 30)
- {
- int doubleDamage = damage * damage;
- return doubleDamage;
- }
- else
- {
- return damage;
- }
- }
- }
- class Rogue : Warrior
- {
- public Rogue(string name, int health, int armor, int damage, int attackSpeed) : base(name, health, armor, damage * attackSpeed)
- {
- }
- public int CurseDamage(int damage, int health)
- {
- if (Health < 50)
- {
- return damage += 10;
- }
- else
- {
- return damage;
- }
- }
- }
- class Paladin : Warrior
- {
- public Paladin(string name, int health, int armor, int damage) : base(name, health, armor, damage)
- {
- }
- public int GrateHeal(int health)
- {
- if (health < 20)
- {
- return health += 50;
- }
- else
- {
- return health;
- }
- }
- }
- class Mage : Warrior
- {
- public Mage(string name, int health, int armor, int damage) : base(name, health, armor, damage)
- {
- }
- public void TakeDamagePyro(int damage, int health)
- {
- health -= damage * 2;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement