ChangeDigivolutionCost.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using System;
  4. using System.Linq;
  5. using UnityEngine;
  6. public partial class CardEffectCommons
  7. {
  8. #region Player gains effect to change digivolution cost until calculatintg fixed cost
  9. public static Func<EffectTiming, ICardEffect> ChangeDigivolutionCostPlayerEffect(
  10. Func<Permanent, bool> permanentCondition,
  11. Func<CardSource, bool> cardCondition,
  12. Func<SelectCardEffect.Root, bool> rootCondition,
  13. int changeValue,
  14. bool setFixedCost,
  15. ICardEffect activateClass)
  16. {
  17. if (activateClass == null) return null;
  18. if (activateClass.EffectSourceCard == null) return null;
  19. bool Condition()
  20. {
  21. return true;
  22. }
  23. bool PermanentCondition(Permanent permanent)
  24. {
  25. return permanentCondition == null || permanentCondition(permanent);
  26. }
  27. bool CardCondition(CardSource cardSource)
  28. {
  29. return cardCondition == null || cardCondition(cardSource);
  30. }
  31. bool RootCondition(SelectCardEffect.Root root)
  32. {
  33. return rootCondition == null || rootCondition(root);
  34. }
  35. ChangeCostClass changeCostClass = CardEffectFactory.ChangeDigivolutionCostStaticEffect(
  36. changeValue: changeValue,
  37. permanentCondition: PermanentCondition,
  38. cardCondition: CardCondition,
  39. rootCondition: RootCondition,
  40. isInheritedEffect: false,
  41. card: activateClass.EffectSourceCard,
  42. condition: Condition,
  43. setFixedCost: setFixedCost);
  44. return GetCardEffectByEffectTiming(timing: EffectTiming.None, cardEffect: changeCostClass);
  45. }
  46. #endregion
  47. }