ImmuneFromDPMinus.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 reduce DP
  9. public static IEnumerator GainImmuneFromDPMinus(Permanent targetPermanent, Func<ICardEffect, bool> cardEffectCondition, 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. ImmuneFromDPMinusClass immuneFromDPMinusClass = CardEffectFactory.ImmuneFromDPMinusStaticEffect(
  29. permanentCondition: PermanentCondition,
  30. cardEffectCondition: cardEffectCondition,
  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: immuneFromDPMinusClass,
  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. }