BT17_006.cs 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. namespace DCGO.CardEffects.BT17
  4. {
  5. public class BT17_006 : CEntity_Effect
  6. {
  7. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  8. {
  9. List<ICardEffect> cardEffects = new List<ICardEffect>();
  10. #region Your Turn - ESS
  11. if (timing == EffectTiming.OnAddDigivolutionCards)
  12. {
  13. ActivateClass activateClass = new ActivateClass();
  14. activateClass.SetUpICardEffect("Digivolve into SoC trash card", CanUseCondition, card);
  15. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true,
  16. EffectDescription());
  17. activateClass.SetIsInheritedEffect(true);
  18. activateClass.SetHashString("DigivolveTrash_BT17_006");
  19. cardEffects.Add(activateClass);
  20. string EffectDescription()
  21. {
  22. return
  23. "[Your Turn] (Once Per Turn) When an effect places a Tamer card in this Digimon's digivolution cards, this Digimon may digivolve into a Digimon card with the [SoC] trait in your trash.";
  24. }
  25. bool CanUseCondition(Hashtable hashtable)
  26. {
  27. return CardEffectCommons.IsExistOnBattleArea(card) &&
  28. CardEffectCommons.IsOwnerTurn(card) &&
  29. CardEffectCommons.CanTriggerOnAddDigivolutionCard(
  30. hashtable: hashtable,
  31. permanentCondition: permanent => permanent == card.PermanentOfThisCard(),
  32. cardEffectCondition: cardEffect => cardEffect.EffectSourceCard != null,
  33. cardCondition: cardSource => cardSource.IsTamer) &&
  34. CardEffectCommons.HasMatchConditionOwnersCardInTrash(card, CanSelectSoCCardCondition);
  35. }
  36. bool CanSelectSoCCardCondition(CardSource cardSource)
  37. {
  38. return cardSource.IsDigimon &&
  39. cardSource.ContainsTraits("SoC") &&
  40. cardSource.CanPlayCardTargetFrame(card.PermanentOfThisCard().PermanentFrame, true, activateClass);
  41. }
  42. bool CanActivateCondition(Hashtable hashtable)
  43. {
  44. return CardEffectCommons.IsExistOnBattleArea(card);
  45. }
  46. IEnumerator ActivateCoroutine(Hashtable hashtable)
  47. {
  48. yield return ContinuousController.instance.StartCoroutine(CardEffectCommons.DigivolveIntoHandOrTrashCard(
  49. targetPermanent: card.PermanentOfThisCard(),
  50. cardCondition: CanSelectSoCCardCondition,
  51. payCost: true,
  52. reduceCostTuple: null,
  53. fixedCostTuple: null,
  54. ignoreDigivolutionRequirementFixedCost: -1,
  55. isHand: false,
  56. activateClass: activateClass,
  57. successProcess: null));
  58. }
  59. }
  60. #endregion
  61. return cardEffects;
  62. }
  63. }
  64. }