Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public abstract class Character
- {
- public int Health { get; set; }
- public void TakeDamage(int damage)
- {
- // Шаблонный метод
- int finalDamage = CalculateFinalDamage(damage);
- Health -= finalDamage;
- }
- // Абстрактный метод для переопределения в наследниках
- protected abstract int CalculateFinalDamage(int damage);
- }
- public class Warrior : Character
- {
- public int Armor { get; set; }
- protected override int CalculateFinalDamage(int damage)
- {
- // Учитываем броню при расчете урона
- int finalDamage = damage - Armor;
- return finalDamage > 0 ? finalDamage : 0;
- }
- }
- public class Rogue : Character
- {
- public int Agility { get; set; }
- protected override int CalculateFinalDamage(int damage)
- {
- // Учитываем гибкость при расчете урона
- int finalDamage = damage - (Agility / 2);
- return finalDamage > 0 ? finalDamage : 0;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement