EX12_042.cs 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. // Gatomon
  5. namespace DCGO.CardEffects.EX12
  6. {
  7. public class EX12_042 : CEntity_Effect
  8. {
  9. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  10. {
  11. List<ICardEffect> cardEffects = new List<ICardEffect>();
  12. #region Alternate Digivolution Cost
  13. if (timing == EffectTiming.None)
  14. {
  15. bool PermanentCondition(Permanent targetPermanent)
  16. {
  17. return targetPermanent.TopCard.EqualsCardName("Salamon");
  18. }
  19. cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 2, ignoreDigivolutionRequirement: false, card: card, condition: null));
  20. }
  21. if (timing == EffectTiming.None)
  22. {
  23. bool PermanentCondition(Permanent targetPermanent)
  24. {
  25. return targetPermanent.TopCard.EqualsTraits("NSp")
  26. || targetPermanent.TopCard.EqualsTraits("VB");
  27. }
  28. cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(permanentCondition: PermanentCondition, digivolutionCost: 2, ignoreDigivolutionRequirement: false, card: card, condition: null, level: 3));
  29. }
  30. #endregion
  31. #region Blocker
  32. if (timing == EffectTiming.None)
  33. {
  34. cardEffects.Add(CardEffectFactory.BlockerSelfStaticEffect(isInheritedEffect: false, card: card, condition: null));
  35. }
  36. #endregion
  37. #region Shared OP/WA
  38. string SharedEffectName = "Add top security to hand, then <Recovery +1>";
  39. string SharedEffectHash = "EX12_042_OP_WA";
  40. CardEffectFactory.ActivateClassesForSharedEffects
  41. (ref cardEffects, timing, card,
  42. SharedEffectName,
  43. SharedActivateCoroutine,
  44. SharedEffectDescription,
  45. optional: false,
  46. maxCountPerTurn: 1,
  47. hashValue: SharedEffectHash,
  48. onPlay: true,
  49. whenAttacking: true);
  50. string SharedEffectDescription(string tag)
  51. {
  52. return $"[{tag}] [Once Per Turn] Add your top security card to the hand. Then, <Recovery +1>.";
  53. }
  54. IEnumerator SharedActivateCoroutine(Hashtable hashtable, ActivateClass activateClass)
  55. {
  56. if (card.Owner.SecurityCards.Count() > 0)
  57. {
  58. yield return ContinuousController.instance.StartCoroutine(CardObjectController.AddHandCards(new List<CardSource>() { card.Owner.SecurityCards[0] }, false, activateClass));
  59. yield return ContinuousController.instance.StartCoroutine(new IReduceSecurity(player: card.Owner, refSkillInfos: ref ContinuousController.instance.nullSkillInfos, activateClass).ReduceSecurity());
  60. }
  61. yield return ContinuousController.instance.StartCoroutine(new IRecovery(card.Owner, 1, activateClass).Recovery());
  62. }
  63. #endregion
  64. #region Inherited Barrier
  65. if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
  66. {
  67. cardEffects.Add(CardEffectFactory.BarrierSelfEffect(isInheritedEffect: true, card: card, condition: null));
  68. }
  69. #endregion
  70. return cardEffects;
  71. }
  72. }
  73. }