EX6_019.cs 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. namespace DCGO.CardEffects.EX6
  4. {
  5. public class EX6_019 : CEntity_Effect
  6. {
  7. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  8. {
  9. List<ICardEffect> cardEffects = new List<ICardEffect>();
  10. #region Barrier
  11. if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
  12. {
  13. cardEffects.Add(
  14. CardEffectFactory.BarrierSelfEffect(isInheritedEffect: false, card: card, condition: null));
  15. }
  16. #endregion
  17. #region When Attacking - ESS
  18. if (timing == EffectTiming.OnAllyAttack)
  19. {
  20. ActivateClass activateClass = new ActivateClass();
  21. activateClass.SetUpICardEffect("Draw 1", CanUseCondition, card);
  22. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, 1, false,
  23. EffectDescription());
  24. activateClass.SetIsInheritedEffect(true);
  25. activateClass.SetHashString("Draw1_EX6_019");
  26. cardEffects.Add(activateClass);
  27. string EffectDescription()
  28. {
  29. return
  30. "[When Attacking] [Once Per Turn] If this Digimon has the [Angel]/[Archangel]/[Three Great Angels] trait, [Draw 1].";
  31. }
  32. bool CanUseCondition(Hashtable hashtable)
  33. {
  34. return CardEffectCommons.CanTriggerOnAttack(hashtable, card);
  35. }
  36. bool CanActivateCondition(Hashtable hashtable)
  37. {
  38. if (CardEffectCommons.IsExistOnBattleArea(card))
  39. {
  40. if (card.Owner.LibraryCards.Count >= 1)
  41. {
  42. if (card.PermanentOfThisCard().TopCard.ContainsTraits("Angel") ||
  43. card.PermanentOfThisCard().TopCard.ContainsTraits("Archangel") ||
  44. card.PermanentOfThisCard().TopCard.ContainsTraits("Three Great Angels") ||
  45. card.PermanentOfThisCard().TopCard.ContainsTraits("ThreeGreatAngels"))
  46. {
  47. return true;
  48. }
  49. }
  50. }
  51. return false;
  52. }
  53. IEnumerator ActivateCoroutine(Hashtable hashtable)
  54. {
  55. yield return ContinuousController.instance.StartCoroutine(
  56. new DrawClass(card.Owner, 1, activateClass).Draw());
  57. }
  58. }
  59. #endregion
  60. return cardEffects;
  61. }
  62. }
  63. }