Advertisement
Pro_Unit

Abilities

Jun 10th, 2023
707
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 0.56 KB | None | 0 0
  1. using System.Linq;
  2.  
  3. using UnityEngine;
  4.  
  5. namespace CompositeWithScriptableObject.Abilities
  6. {
  7.     using Strategies;
  8.  
  9.     [CreateAssetMenu(fileName = "Abilities", menuName = "Composite With ScriptableObject/Abilities/Composite")]
  10.     public class Abilities : Ability
  11.     {
  12.         [SerializeField] private Ability[] _abilities;
  13.  
  14.         private IDamageStrategy _strategy;
  15.  
  16.         protected override IDamageStrategy Strategy =>
  17.             _strategy ??= new CompositeDamageStrategy(Strategies());
  18.  
  19.         private IDamageStrategy[] Strategies() =>
  20.             _abilities.Cast<IDamageStrategy>().ToArray();
  21.     }
  22. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement