BT25_002.cs 3.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. // Frimon
  5. namespace DCGO.CardEffects.BT25
  6. {
  7. public class BT25_003 : CEntity_Effect
  8. {
  9. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  10. {
  11. List<ICardEffect> cardEffects = new List<ICardEffect>();
  12. #region Inherited
  13. if (timing == EffectTiming.OnAllyAttack)
  14. {
  15. ActivateClass activateClass = new ActivateClass();
  16. activateClass.SetUpICardEffect("By trashing top security, digivolve into card with [Glowing Dawn] trait for 1 less", CanUseCondition, card);
  17. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, true, EffectDescription());
  18. activateClass.SetHashString("BT25_003_Inherited");
  19. activateClass.SetIsInheritedEffect(true);
  20. cardEffects.Add(activateClass);
  21. string EffectDescription()
  22. {
  23. return "[When Attacking] [Once Per Turn] By trashing your top security card, this Digimon may digivolve into a [Glowing Dawn] trait card in the hand with the cost reduced by 1.";
  24. }
  25. bool CanUseCondition(Hashtable hashtable)
  26. {
  27. return CardEffectCommons.IsExistOnBattleAreaDigimon(card)
  28. && CardEffectCommons.CanTriggerOnAttack(hashtable, card);
  29. }
  30. bool CanActivateCondition(Hashtable hashtable)
  31. {
  32. return CardEffectCommons.IsExistOnBattleAreaDigimon(card)
  33. && card.Owner.SecurityCards.Any();
  34. }
  35. bool CardCondition(CardSource cardSource)
  36. {
  37. return CardEffectCommons.IsExistOnHand(cardSource)
  38. && cardSource.EqualsTraits("Glowing Dawn");
  39. }
  40. IEnumerator ActivateCoroutine(Hashtable hashtable)
  41. {
  42. #region Make Selection for Trashing Security
  43. yield return ContinuousController.instance.StartCoroutine(new IDestroySecurity(
  44. player: card.Owner,
  45. destroySecurityCount: 1,
  46. cardEffect: activateClass,
  47. fromTop: true).DestroySecurity());
  48. #endregion
  49. if (CardEffectCommons.HasMatchConditionOwnersHand(card, CardCondition))
  50. {
  51. yield return ContinuousController.instance.StartCoroutine(
  52. CardEffectCommons.DigivolveIntoHandOrTrashCard(
  53. targetPermanent: card.PermanentOfThisCard(),
  54. cardCondition: CardCondition,
  55. payCost: true,
  56. reduceCostTuple: (1, null),
  57. fixedCostTuple: null,
  58. ignoreDigivolutionRequirementFixedCost: -1,
  59. isHand: true,
  60. activateClass: activateClass,
  61. successProcess: null));
  62. }
  63. }
  64. }
  65. #endregion
  66. return cardEffects;
  67. }
  68. }
  69. }