BT21_029_token.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. namespace DCGO.CardEffects.Tokens
  4. {
  5. public class BT21_029_token : CEntity_Effect
  6. {
  7. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  8. {
  9. List<ICardEffect> cardEffects = new List<ICardEffect>();
  10. #region Cant Suspend
  11. if (timing == EffectTiming.None)
  12. {
  13. bool CanUseCondition()
  14. {
  15. if (CardEffectCommons.IsExistOnBattleArea(card))
  16. {
  17. if (CardEffectCommons.IsOwnerTurn(card))
  18. {
  19. return true;
  20. }
  21. }
  22. return false;
  23. }
  24. cardEffects.Add(CardEffectFactory.CantSuspendStaticEffect(
  25. permanentCondition: permanent => permanent == card.PermanentOfThisCard(),
  26. isInheritedEffect: false,
  27. card: card,
  28. condition: CanUseCondition,
  29. effectName: "[Your Turn] This Digimon can't suspend."
  30. ));
  31. }
  32. #endregion
  33. #region On Deletion
  34. if (timing == EffectTiming.OnDestroyedAnyone)
  35. {
  36. ActivateClass activateClass = new ActivateClass();
  37. activateClass.SetUpICardEffect("Trash top security", CanUseCondition, card);
  38. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, false, EffectDiscription());
  39. cardEffects.Add(activateClass);
  40. string EffectDiscription()
  41. {
  42. return "[On Deletion] Trash your top security card.";
  43. }
  44. bool CanUseCondition(Hashtable hashtable)
  45. {
  46. return CardEffectCommons.CanTriggerOnDeletion(hashtable, card, activateClass);
  47. }
  48. bool CanActivateCondition(Hashtable hashtable)
  49. {
  50. return card.Owner.SecurityCards.Count > 0;
  51. }
  52. IEnumerator ActivateCoroutine(Hashtable hashtable)
  53. {
  54. yield return ContinuousController.instance.StartCoroutine(new IDestroySecurity(
  55. player: card.Owner,
  56. destroySecurityCount: 1,
  57. cardEffect: activateClass,
  58. fromTop: true).DestroySecurity());
  59. }
  60. }
  61. #endregion
  62. return cardEffects;
  63. }
  64. }
  65. }