CanNotBeDeletedByBattle.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System;
  4. using System.Linq;
  5. using UnityEngine;
  6. public partial class CardEffectCommons
  7. {
  8. #region Target 1 Digimon can't be deleted by battle
  9. public static IEnumerator GainCanNotBeDeletedByBattle(Permanent targetPermanent, Func<Permanent, Permanent, Permanent, CardSource, bool> canNotBeDestroyedByBattleCondition, EffectDuration effectDuration, ICardEffect activateClass, string effectName)
  10. {
  11. if (targetPermanent == null) yield break;
  12. if (!IsPermanentExistsOnBattleArea(targetPermanent)) yield break;
  13. if (activateClass == null) yield break;
  14. if (activateClass.EffectSourceCard == null) yield break;
  15. CardSource card = activateClass.EffectSourceCard;
  16. bool PermanentCondition(Permanent attacker) => attacker == targetPermanent;
  17. bool CanUseCondition()
  18. {
  19. if (IsPermanentExistsOnBattleArea(targetPermanent))
  20. {
  21. if (!targetPermanent.TopCard.CanNotBeAffected(activateClass))
  22. {
  23. return true;
  24. }
  25. }
  26. return false;
  27. }
  28. CanNotBeDestroyedByBattleClass canNotBeDestroyedByBattleClass = CardEffectFactory.CanNotBeDestroyedByBattleStaticEffect(
  29. canNotBeDestroyedByBattleCondition: canNotBeDestroyedByBattleCondition,
  30. permanentCondition: PermanentCondition,
  31. isInheritedEffect: false,
  32. card: card,
  33. condition: CanUseCondition,
  34. effectName: effectName);
  35. AddEffectToPermanent(
  36. targetPermanent: targetPermanent,
  37. effectDuration: effectDuration,
  38. card: card,
  39. cardEffect: canNotBeDestroyedByBattleClass,
  40. timing: EffectTiming.None);
  41. if (!targetPermanent.TopCard.CanNotBeAffected(activateClass))
  42. {
  43. yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateBuffEffect(targetPermanent));
  44. }
  45. }
  46. #endregion
  47. }