BT22_004.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. // Wanyamon
  4. namespace DCGO.CardEffects.BT22
  5. {
  6. public class BT22_004 : CEntity_Effect
  7. {
  8. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  9. {
  10. List<ICardEffect> cardEffects = new List<ICardEffect>();
  11. #region ESS
  12. if (timing == EffectTiming.OnAddDigivolutionCards)
  13. {
  14. ActivateClass activateClass = new ActivateClass();
  15. activateClass.SetUpICardEffect("Digivolve into a [CS] digimon", CanUseCondition, card);
  16. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDiscription());
  17. activateClass.SetIsInheritedEffect(true);
  18. activateClass.SetHashString("BT22_004_Digivolve");
  19. cardEffects.Add(activateClass);
  20. string EffectDiscription()
  21. {
  22. return "[Your Turn] [Once Per Turn] When effects place [CS] trait Digimon cards in this Digimon's digivolution cards, it may digivolve into a [CS] trait Digimon card in the hand with the digivolution cost reduced by 1.";
  23. }
  24. bool CanUseCondition(Hashtable hashtable)
  25. {
  26. return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
  27. CardEffectCommons.IsOwnerTurn(card) &&
  28. CardEffectCommons.CanTriggerOnAddDigivolutionCard(hashtable, IsThisPermanent, null, IsCsDigimon);
  29. }
  30. bool CanActivateCondition(Hashtable hashtable)
  31. {
  32. return CardEffectCommons.IsExistOnBattleAreaDigimon(card) &&
  33. CardEffectCommons.HasMatchConditionOwnersHand(card, CanSelectEvoCondition);
  34. }
  35. bool IsThisPermanent(Permanent permanent)
  36. {
  37. return CardEffectCommons.IsPermanentExistsOnBattleAreaDigimon(permanent) && permanent == card.PermanentOfThisCard().TopCard.PermanentOfThisCard();
  38. }
  39. bool IsCsDigimon(CardSource cardSource)
  40. {
  41. return cardSource.IsDigimon && cardSource.HasCSTraits;
  42. }
  43. bool CanSelectEvoCondition(CardSource cardSource)
  44. {
  45. return IsCsDigimon(cardSource) && cardSource.CanPlayCardTargetFrame(card.PermanentOfThisCard().TopCard.PermanentOfThisCard().PermanentFrame, true, activateClass);
  46. }
  47. IEnumerator ActivateCoroutine(Hashtable hashtable)
  48. {
  49. yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
  50. targetPermanent: card.PermanentOfThisCard().TopCard.PermanentOfThisCard(),
  51. cardCondition: CanSelectEvoCondition,
  52. payCost: true,
  53. reduceCostTuple: (reduceCost: 1, reduceCostCardCondition: null),
  54. fixedCostTuple: null,
  55. ignoreDigivolutionRequirementFixedCost: -1,
  56. isHand: true,
  57. activateClass: activateClass,
  58. successProcess: null));
  59. }
  60. }
  61. #endregion
  62. return cardEffects;
  63. }
  64. }
  65. }