AddSkillClass.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using System;
  5. public class AddSkillClass : ICardEffect, IAddSkillEffect
  6. {
  7. Func<CardSource, bool> _cardSourceCondition = null;
  8. Func<CardSource, List<ICardEffect>, EffectTiming, List<ICardEffect>> _getEffects = null;
  9. EffectTiming? _limitedTiming = null;
  10. public void SetUpAddSkillClass(Func<CardSource, bool> cardSourceCondition, Func<CardSource, List<ICardEffect>, EffectTiming, List<ICardEffect>> getEffects, EffectTiming? limitTiming = null)
  11. {
  12. _cardSourceCondition = cardSourceCondition;
  13. _getEffects = getEffects;
  14. _limitedTiming = limitTiming;
  15. }
  16. public bool ShouldAddEffect(EffectTiming timing)
  17. {
  18. if (_limitedTiming == null)
  19. return true;
  20. return timing == _limitedTiming;
  21. }
  22. public List<ICardEffect> GetCardEffect(CardSource card, List<ICardEffect> getCardEffect, EffectTiming timing)
  23. {
  24. if (_cardSourceCondition(card))
  25. {
  26. getCardEffect = _getEffects(card, getCardEffect, timing);
  27. }
  28. SetEffectSourceCard(card);
  29. return getCardEffect;
  30. }
  31. }