EX8_046.cs 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. namespace DCGO.CardEffects.EX8
  4. {
  5. public class EX8_046 : CEntity_Effect
  6. {
  7. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  8. {
  9. List<ICardEffect> cardEffects = new List<ICardEffect>();
  10. #region On Deletion
  11. if (timing == EffectTiming.OnDestroyedAnyone)
  12. {
  13. ActivateClass activateClass = new ActivateClass();
  14. activateClass.SetUpICardEffect("By trashing 1 card, Draw 2", CanUseCondition, card);
  15. activateClass.SetUpActivateClass(CanActivateCondition, ActivateCoroutine, -1, true, EffectDiscription());
  16. cardEffects.Add(activateClass);
  17. string EffectDiscription()
  18. {
  19. return "[On Deletion] By trashing 1 card with the [Mineral] or [Rock] trait in your hand, <Draw 2>.";
  20. }
  21. bool HasMineralOrRock(CardSource source)
  22. {
  23. return source.ContainsTraits("Mineral") || source.ContainsTraits("Rock");
  24. }
  25. bool CanUseCondition(Hashtable hashtable)
  26. {
  27. return CardEffectCommons.CanTriggerOnDeletion(hashtable, card, activateClass);
  28. }
  29. bool CanActivateCondition(Hashtable hashtable)
  30. {
  31. return CardEffectCommons.CanActivateOnDeletion(card, activateClass);
  32. }
  33. IEnumerator ActivateCoroutine(Hashtable hashtable)
  34. {
  35. if(CardEffectCommons.HasMatchConditionOwnersHand(card, HasMineralOrRock))
  36. {
  37. SelectHandEffect selectHandEffect = GManager.instance.GetComponent<SelectHandEffect>();
  38. selectHandEffect.SetUp(
  39. selectPlayer: card.Owner,
  40. canTargetCondition: HasMineralOrRock,
  41. canTargetCondition_ByPreSelecetedList: null,
  42. canEndSelectCondition: null,
  43. maxCount: 1,
  44. canNoSelect: false,
  45. canEndNotMax: false,
  46. isShowOpponent: true,
  47. selectCardCoroutine: CardTrashedCoroutine,
  48. afterSelectCardCoroutine: null,
  49. mode: SelectHandEffect.Mode.Discard,
  50. cardEffect: activateClass);
  51. yield return StartCoroutine(selectHandEffect.Activate());
  52. IEnumerator CardTrashedCoroutine(CardSource source)
  53. {
  54. if (source != null)
  55. yield return ContinuousController.instance.StartCoroutine(new DrawClass(card.Owner, 2, activateClass).Draw());
  56. }
  57. }
  58. }
  59. }
  60. #endregion
  61. #region Blocker - ESS
  62. if (timing == EffectTiming.None)
  63. {
  64. cardEffects.Add(CardEffectFactory.BlockerSelfStaticEffect(
  65. isInheritedEffect: true,
  66. card: card,
  67. condition: null));
  68. }
  69. #endregion
  70. return cardEffects;
  71. }
  72. }
  73. }