EX7_015.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace DCGO.CardEffects.EX7
  5. {
  6. public class EX7_015 : CEntity_Effect
  7. {
  8. public override List<ICardEffect> CardEffects(EffectTiming timing, CardSource card)
  9. {
  10. List<ICardEffect> cardEffects = new List<ICardEffect>();
  11. #region Alternate Digivolution
  12. if (timing == EffectTiming.None)
  13. {
  14. bool PermanentCondition(Permanent targetPermanent)
  15. {
  16. if(targetPermanent.TopCard.HasLevel && targetPermanent.TopCard.IsLevel2)
  17. return targetPermanent.TopCard.CardTraits.Contains("NSp");
  18. return false;
  19. }
  20. cardEffects.Add(CardEffectFactory.AddSelfDigivolutionRequirementStaticEffect(
  21. permanentCondition: PermanentCondition,
  22. digivolutionCost: 0,
  23. ignoreDigivolutionRequirement: false,
  24. card: card,
  25. condition: null)
  26. );
  27. }
  28. #endregion
  29. #region All Turns
  30. if (timing == EffectTiming.None)
  31. {
  32. //Use this instead of activateClass?
  33. CannotReduceCostClass cannotReduceCostClass = new CannotReduceCostClass();
  34. cannotReduceCostClass.SetUpICardEffect("Players can't reduce play costs", CanUseCondition, card);
  35. cannotReduceCostClass.SetUpCannotReduceCostClass(
  36. playerCondition: PlayerCondition,
  37. targetPermanentsCondition: TargetPermanentsCondition,
  38. cardCondition: CardCondition);
  39. cardEffects.Add(cannotReduceCostClass);
  40. bool CanUseCondition(Hashtable hashtable)
  41. {
  42. return CardEffectCommons.IsExistOnBattleAreaDigimon(card);
  43. }
  44. bool PlayerCondition(Player player)
  45. {
  46. if (CardEffectCommons.IsExistOnBattleAreaDigimon(card))
  47. {
  48. return true;
  49. }
  50. return false;
  51. }
  52. bool TargetPermanentsCondition(List<Permanent> targetPermanents)
  53. {
  54. if (targetPermanents == null)
  55. {
  56. return true;
  57. }
  58. else
  59. {
  60. if (targetPermanents.Count((permanent) => permanent != null) == 0)
  61. {
  62. return true;
  63. }
  64. }
  65. return false;
  66. }
  67. bool CardCondition(CardSource cardSource)
  68. {
  69. return cardSource.HasPlayCost;
  70. }
  71. }
  72. #endregion
  73. return cardEffects;
  74. }
  75. }
  76. }