TamerBecomesDigimonThatCanNotDigivolve.cs 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. changeBaseDPClass.SetActivatedTime(DateTime.Now);
  42. AddEffectToPermanent(
  43. targetPermanent: targetPermanent,
  44. effectDuration: effectDuration,
  45. card: card,
  46. cardEffect: changeBaseDPClass,
  47. timing: EffectTiming.None);
  48. //can't Digivolve
  49. CanNotDigivolveClass canNotEvolveClass = CardEffectFactory.CanNotDigivolveStaticEffect(
  50. permanentCondition: PermanentCondition,
  51. cardCondition: (cardSource) => true,
  52. isInheritedEffect: false,
  53. card: card,
  54. condition: CanUseCondition,
  55. effectName: "Can't digivolve");
  56. AddEffectToPermanent(
  57. targetPermanent: targetPermanent,
  58. effectDuration: effectDuration,
  59. card: card,
  60. cardEffect: canNotEvolveClass,
  61. timing: EffectTiming.None);
  62. yield return ContinuousController.instance.StartCoroutine(GManager.instance.GetComponent<Effects>().CreateBuffEffect(targetPermanent));
  63. }
  64. #endregion
  65. }