BT25_062.cs 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. // Kokuwamon
  4. namespace DCGO.CardEffects.BT25
  5. {
  6. public class BT25_062 : CEntity_Effect
  7. {
  8. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  9. {
  10. List<ICardEffect> cardEffects = new List<ICardEffect>();
  11. #region Alternate Digivolution Requirement
  12. if (timing == EffectTiming.None)
  13. {
  14. static bool PermanentCondition(Permanent targetPermanent)
  15. {
  16. return targetPermanent.TopCard.HasTSTraits;
  17. }
  18. cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 0, ignoreDigivolutionRequirement: false, card: card, condition: null, level: 2));
  19. }
  20. #endregion
  21. #region Start Of Your Main Phase
  22. if (timing == EffectTiming.OnStartMainPhase)
  23. {
  24. ActivateClass activateClass = new ActivateClass();
  25. activateClass.SetUpICardEffect("Digivolve into a [Machine]/[Cyborg]/[TS] trait Digimon in hand for free", CanUseCondition, card);
  26. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDescription());
  27. cardEffects.Add(activateClass);
  28. string EffectDescription()
  29. {
  30. return "[Start of Your Main Phase] If you have 4 or less memory, this Digimon may digivolve into a [Machine], [Cyborg] or [TS] trait Digimon card in the hand without paying the cost.";
  31. }
  32. bool CanUseCondition(Hashtable hashtable)
  33. {
  34. return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
  35. }
  36. bool CanActivateCondition(Hashtable hashtable)
  37. {
  38. return CardEffectCommons.IsExistOnBattleAreaDigimon(card)
  39. && CardEffectCommons.IsOwnerTurn(card)
  40. && card.Owner.MemoryForPlayer <= 4;
  41. }
  42. bool CanSelectCardCondition(CardSource cardSource)
  43. {
  44. return cardSource.IsDigimon
  45. && (cardSource.EqualsTraits("Machine")
  46. || cardSource.EqualsTraits("Cyborg")
  47. || cardSource.HasTSTraits);
  48. }
  49. IEnumerator ActivateCoroutine(Hashtable hashtable)
  50. {
  51. yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
  52. card.PermanentOfThisCard(),
  53. digivolvingCard => CanSelectCardCondition(digivolvingCard),
  54. payCost: false,
  55. reduceCostTuple: null,
  56. fixedCostTuple: null,
  57. ignoreDigivolutionRequirementFixedCost: -1,
  58. isHand: true,
  59. activateClass: activateClass,
  60. successProcess: null
  61. ));
  62. }
  63. }
  64. #endregion
  65. #region All Turns - Inherited Effect
  66. if (timing == EffectTiming.None)
  67. {
  68. bool Condition()
  69. {
  70. return true;
  71. }
  72. cardEffects.Add(CardEffectFactory.ChangeSelfDPStaticEffect(
  73. changeValue: 1000,
  74. isInheritedEffect: true,
  75. card: card,
  76. condition: Condition));
  77. }
  78. #endregion
  79. return cardEffects;
  80. }
  81. }
  82. }