ST19_10.cs 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. namespace DCGO.CardEffects.ST19
  4. {
  5. public class ST19_10 : CEntity_Effect
  6. {
  7. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  8. {
  9. List<ICardEffect> cardEffects = new List<ICardEffect>();
  10. #region Alternate Digivolution
  11. if (timing == EffectTiming.None)
  12. {
  13. bool PermanentCondition(Permanent targetPermanent)
  14. {
  15. return targetPermanent.TopCard.IsLevel4 &&
  16. (targetPermanent.TopCard.ContainsCardName("Tyrannomon") || targetPermanent.TopCard.ContainsCardName("Raremon"));
  17. }
  18. cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(
  19. permanentCondition: PermanentCondition,
  20. digivolutionCost: 3,
  21. ignoreDigivolutionRequirement: false,
  22. card: card,
  23. condition: null)
  24. );
  25. }
  26. #endregion
  27. #region Armor Purge
  28. if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
  29. {
  30. cardEffects.Add(CardEffectFactory.ArmorPurgeEffect(card: card));
  31. }
  32. #endregion
  33. #region DigiXros
  34. if (timing == EffectTiming.None)
  35. {
  36. AddDigiXrosConditionClass addDigiXrosConditionClass = new AddDigiXrosConditionClass();
  37. addDigiXrosConditionClass.SetUpICardEffect($"DigiXros -2", CanUseCondition, card);
  38. addDigiXrosConditionClass.SetUpAddDigiXrosConditionClass(getDigiXrosCondition: GetDigiXros);
  39. addDigiXrosConditionClass.SetNotShowUI(true);
  40. cardEffects.Add(addDigiXrosConditionClass);
  41. bool CanUseCondition(Hashtable hashtable)
  42. {
  43. return true;
  44. }
  45. DigiXrosCondition GetDigiXros(CardSource cardSource)
  46. {
  47. if (cardSource == card)
  48. {
  49. DigiXrosConditionElement elementTyrannomonRaremon =
  50. new DigiXrosConditionElement(CanSelectCardConditionTyrannomonRaremon, "Lv.4 w/[Tyrannomon]/[Raremon] in name");
  51. bool CanSelectCardConditionTyrannomonRaremon(CardSource conditionCardSource)
  52. {
  53. return conditionCardSource &&
  54. conditionCardSource.Owner == card.Owner &&
  55. conditionCardSource.IsDigimon &&
  56. conditionCardSource.HasLevel && conditionCardSource.IsLevel4 &&
  57. (conditionCardSource.ContainsCardName("Tyrannomon") ||
  58. conditionCardSource.ContainsCardName("Raremon"));
  59. }
  60. DigiXrosConditionElement elementPuppet =
  61. new DigiXrosConditionElement(CanSelectCardConditionPuppet, "Lv.4 w/[Puppet] trait");
  62. bool CanSelectCardConditionPuppet(CardSource conditionCardSource)
  63. {
  64. return conditionCardSource &&
  65. conditionCardSource.Owner == card.Owner &&
  66. conditionCardSource.IsDigimon &&
  67. conditionCardSource.HasLevel && conditionCardSource.IsLevel4 &&
  68. conditionCardSource.ContainsTraits("Puppet");
  69. }
  70. List<DigiXrosConditionElement> elements = new List<DigiXrosConditionElement>()
  71. { elementTyrannomonRaremon, elementPuppet };
  72. DigiXrosCondition digiXrosCondition = new DigiXrosCondition(elements, null, 2);
  73. return digiXrosCondition;
  74. }
  75. return null;
  76. }
  77. }
  78. #endregion
  79. #region Barrier - ESS
  80. if (timing == EffectTiming.WhenPermanentWouldBeDeleted)
  81. {
  82. cardEffects.Add(CardEffectFactory.BarrierSelfEffect(isInheritedEffect: true, card: card, condition: null));
  83. }
  84. #endregion
  85. return cardEffects;
  86. }
  87. }
  88. }