TamerBecomesDigimonThatCanNotDigivolve.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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 Tamer becomes a Digimon that can't digivolve
  9. public static IEnumerator BecomeDigimonThatCantDigivolve(Permanent targetPermanent, int DP, EffectDuration effectDuration, ICardEffect activateClass)
  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. if (DP < 0) yield break;
  16. CardSource card = activateClass.EffectSourceCard;
  17. bool PermanentCondition(Permanent permanent) => permanent == targetPermanent;
  18. bool CanUseCondition()
  19. {
  20. return IsPermanentExistsOnBattleArea(targetPermanent);
  21. }
  22. //treat as Digimon
  23. TreatAsDigimonClass treatAsDigimonClass = CardEffectFactory.TreatAsDigimonStaticEffect(
  24. permanentCondition: PermanentCondition,
  25. isInheritedEffect: false,
  26. card: card,
  27. condition: CanUseCondition);
  28. AddEffectToPermanent(
  29. targetPermanent: targetPermanent,
  30. effectDuration: effectDuration,
  31. card: card,
  32. cardEffect: treatAsDigimonClass,
  33. timing: EffectTiming.None);
  34. //change origin DP
  35. ChangeBaseDPClass changeBaseDPClass = CardEffectFactory.ChangeBaseDPStaticEffect(
  36. targetPermanent: targetPermanent,
  37. changeValue: DP,
  38. isInheritedEffect: false,
  39. card: card,
  40. condition: CanUseCondition);
  41. AddEffectToPermanent(
  42. targetPermanent: targetPermanent,
  43. effectDuration: effectDuration,
  44. card: card,
  45. cardEffect: changeBaseDPClass,
  46. timing: EffectTiming.None);
  47. //can't Digivolve
  48. CanNotDigivolveClass canNotEvolveClass = CardEffectFactory.CanNotDigivolveStaticEffect(
  49. permanentCondition: PermanentCondition,
  50. cardCondition: (cardSource) => true,
  51. isInheritedEffect: false,
  52. card: card,
  53. condition: CanUseCondition,
  54. effectName: "Can't digivolve");
  55. AddEffectToPermanent(
  56. targetPermanent: targetPermanent,
  57. effectDuration: effectDuration,
  58. card: card,
  59. cardEffect: canNotEvolveClass,
  60. timing: EffectTiming.None);
  61. yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateBuffEffect(targetPermanent));
  62. }
  63. #endregion
  64. }