Advertisement
Pro_Unit

Untitled

Jun 10th, 2023
521
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.07 KB | Gaming | 0 0
  1. public abstract class Character
  2. {
  3.     public int Health { get; set; }
  4.  
  5.     public void TakeDamage(int damage)
  6.     {
  7.         // Шаблонный метод
  8.         int finalDamage = CalculateFinalDamage(damage);
  9.         Health -= finalDamage;
  10.     }
  11.  
  12.     // Абстрактный метод для переопределения в наследниках
  13.     protected abstract int CalculateFinalDamage(int damage);
  14. }
  15.  
  16. public class Warrior : Character
  17. {
  18.     public int Armor { get; set; }
  19.  
  20.     protected override int CalculateFinalDamage(int damage)
  21.     {
  22.         // Учитываем броню при расчете урона
  23.         int finalDamage = damage - Armor;
  24.         return finalDamage > 0 ? finalDamage : 0;
  25.     }
  26. }
  27.  
  28. public class Rogue : Character
  29. {
  30.     public int Agility { get; set; }
  31.  
  32.     protected override int CalculateFinalDamage(int damage)
  33.     {
  34.         // Учитываем гибкость при расчете урона
  35.         int finalDamage = damage - (Agility / 2);
  36.         return finalDamage > 0 ? finalDamage : 0;
  37.     }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement