Advertisement
Pro_Unit

Strategy

Jun 10th, 2023
589
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.12 KB | None | 0 0
  1. public interface IDamageStrategy
  2. {
  3.     int CalculateFinalDamage(int damage);
  4. }
  5.  
  6. public class Character
  7. {
  8.     public int Health { get; set; }
  9.     private IDamageStrategy _damageStrategy;
  10.  
  11.     public Character(IDamageStrategy damageStrategy)
  12.     {
  13.         _damageStrategy = damageStrategy;
  14.     }
  15.  
  16.     public void TakeDamage(int damage)
  17.     {
  18.         int finalDamage = _damageStrategy.CalculateFinalDamage(damage);
  19.         Health -= finalDamage;
  20.     }
  21. }
  22.  
  23. public class WarriorDamageStrategy : IDamageStrategy
  24. {
  25.     public int Armor { get; set; }
  26.  
  27.     public int CalculateFinalDamage(int damage)
  28.     {
  29.         // Учитываем броню при расчете урона
  30.         int finalDamage = damage - Armor;
  31.         return finalDamage > 0 ? finalDamage : 0;
  32.     }
  33. }
  34.  
  35. public class RogueDamageStrategy : IDamageStrategy
  36. {
  37.     public int Agility { get; set; }
  38.  
  39.     public int CalculateFinalDamage(int damage)
  40.     {
  41.         // Учитываем гибкость при расчете урона
  42.         int finalDamage = damage - (Agility / 2);
  43.         return finalDamage > 0 ? finalDamage : 0;
  44.     }
  45. }
  46.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement