CanNotBeDeletedByBattle.cs 1.6 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 deleted by battle
  9. public static CanNotBeDestroyedByBattleClass CanNotBeDestroyedByBattleStaticEffect(Func<Permanent, Permanent, Permanent, CardSource, bool> canNotBeDestroyedByBattleCondition, Func<Permanent, bool> permanentCondition, bool isInheritedEffect, CardSource card, Func<bool> condition, string effectName)
  10. {
  11. CanNotBeDestroyedByBattleClass canNotBeDestroyedByBattleClass = new CanNotBeDestroyedByBattleClass();
  12. canNotBeDestroyedByBattleClass.SetUpICardEffect(effectName, CanUseCondition, card);
  13. canNotBeDestroyedByBattleClass.SetUpCanNotBeDestroyedByBattleClass(canNotBeDestroyedByBattleCondition, permanentCondition: PermanentCondition);
  14. if (isInheritedEffect)
  15. {
  16. canNotBeDestroyedByBattleClass.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(canNotBeDestroyedByBattleClass))
  27. {
  28. if (permanentCondition == null || permanentCondition(permanent))
  29. {
  30. return true;
  31. }
  32. }
  33. }
  34. return false;
  35. }
  36. return canNotBeDestroyedByBattleClass;
  37. }
  38. #endregion
  39. }