Ascension.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System;
  4. using System.Linq;
  5. using UnityEngine;
  6. public partial class CardEffectFactory
  7. {
  8. #region Trigger effect of [Ascension] on oneself
  9. public static ICardEffect AscensionSelfEffect(bool isInheritedEffect, CardSource card, Func<bool> condition, bool isLinkedEffect = false)
  10. {
  11. ActivateClass activateClass = new ActivateClass();
  12. activateClass.SetUpICardEffect("Ascension", CanUseCondition, card);
  13. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, DataBase.AscensionEffectDescription());
  14. activateClass.SetIsInheritedEffect(isInheritedEffect);
  15. activateClass.SetIsLinkedEffect(isLinkedEffect);
  16. bool CanUseCondition(Hashtable hashtable)
  17. {
  18. return CardEffectCommons.CanTriggerAscension(hashtable, card)
  19. && (condition == null || condition());
  20. }
  21. bool CanActivateCondition(Hashtable hashtable)
  22. {
  23. return CardEffectCommons.CanActivateAscension(hashtable, card);
  24. }
  25. IEnumerator ActivateCoroutine(Hashtable _hashtable)
  26. {
  27. return CardEffectCommons.AscensionProcess(_hashtable, activateClass, card);
  28. }
  29. return activateClass;
  30. }
  31. #endregion
  32. }