CanNotBeRemoved.cs 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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 Static effect that can't be removed
  9. public static CanNotBeRemovedClass CanNotBeRemovedStaticEffect(Func<Permanent, bool> permanentCondition, bool isInheritedEffect, CardSource card, Func<bool> condition, string effectName)
  10. {
  11. CanNotBeRemovedClass canNotBeRemovedClass = new CanNotBeRemovedClass();
  12. canNotBeRemovedClass.SetUpICardEffect(effectName, CanUseCondition, card);
  13. canNotBeRemovedClass.SetUpCanNotBeRemovedClass(permanentCondition: PermanentCondition);
  14. if (isInheritedEffect)
  15. {
  16. canNotBeRemovedClass.SetIsInheritedEffect(true);
  17. }
  18. bool CanUseCondition(Hashtable hashtable)
  19. {
  20. return condition == null || condition();
  21. }
  22. bool PermanentCondition(Permanent permanent)
  23. {
  24. if (CardEffectCommons.IsPermanentExistsOnBattleArea(permanent))
  25. {
  26. if (!permanent.TopCard.CanNotBeAffected(canNotBeRemovedClass))
  27. {
  28. if (permanentCondition == null || permanentCondition(permanent))
  29. {
  30. return true;
  31. }
  32. }
  33. }
  34. return false;
  35. }
  36. return canNotBeRemovedClass;
  37. }
  38. #endregion
  39. }